Linux 开启 BBR 教程:Ubuntu、Debian、CentOS 一键开启 BBR 加速与检测(2026 最新)
Linux 服务器怎么开启 BBR?这篇教程从零开始介绍 BBR 的作用、适用场景以及开启条件,包含 Ubuntu、Debian、CentOS、Rocky Linux、AlmaLinux 等主流发行版的完整开启命令,并提供一键检测脚本、验证方法、常见问题和回滚教程。无论是 VPS、云服务器还是独立服务器,都可以按照本文快速完成 BBR 配置,提升 TCP 网络传输效率。

很多人在买了 VPS、云服务器,或者部署了站点、代理服务之后,第一反应就是想办法“提速”。如果你的业务主要依赖 TCP 传输,那么 BBR 往往是一个值得优先尝试的优化项。
- 判断当前 Linux 系统是否支持 BBR
- 用通用方法开启 BBR
- 补充 Ubuntu、Debian、CentOS 的常用命令
- 提供一个一键检测 BBR 状态的脚本
- 告诉你怎么验证是否生效,以及怎么回滚
如果你只是想快速操作,可以直接看文中的“快速开启”和“分发行版命令”部分。
一、BBR 是什么,有什么用
BBR 是 Google 推出的 TCP 拥塞控制算法,全称是 Bottleneck Bandwidth and Round-trip propagation time。
和传统的 cubic、reno 相比,BBR 的思路不是一味保守地探测网络拥塞,而是尽量估算链路的实际带宽和往返时延,从而更高效地利用网络资源。
在下面这些场景里,开启 BBR 往往比较有意义:
- 服务器带宽够用,但访问延迟偏高
- 海外服务器面向国内访问,或者国内访问海外服务
- 文件下载、上传、Web 服务、反向代理等 TCP 流量较多
- 链路质量一般,希望连接速度更稳一点
不过也要提前说清楚,BBR 不是万能加速器。如果瓶颈在以下环节,开了 BBR 也不一定会有明显变化:
- 带宽本身太小
- 线路质量太差
- CPU 或磁盘性能不足
- 对端服务限速
- 业务主要走 UDP,而不是 TCP
二、开启前需要满足什么条件
通常满足下面几个条件,就可以开始尝试:
- Linux 内核版本建议
4.9及以上 - 系统支持
sysctl - 当前内核已经包含
bbr
常见可操作的发行版包括:
- Ubuntu
- Debian
- CentOS
- AlmaLinux
- Rocky Linux
- Fedora
- openSUSE
如果你用的是比较新的云服务器镜像,大概率已经具备基本条件。
三、先检查系统是否支持 BBR
正式修改配置前,建议先做 3 个检查。
1. 查看内核版本
uname -r
如果输出类似:
5.15.0-105-generic
一般说明内核版本已经比较新。
如果版本明显低于 4.9,那就不要急着往下配了,先考虑升级内核,否则很可能根本没有 bbr 可用。
2. 查看当前使用的拥塞控制算法
sysctl net.ipv4.tcp_congestion_control
常见输出如下:
net.ipv4.tcp_congestion_control = cubic
这表示系统当前默认使用的是 cubic。
3. 查看系统支持哪些拥塞控制算法
sysctl net.ipv4.tcp_available_congestion_control
如果输出中包含 bbr,例如:
net.ipv4.tcp_available_congestion_control = reno cubic bbr
那就说明当前系统已经支持 BBR,可以直接继续。
如果没有 bbr,常见原因一般是:
- 内核版本过低
- 当前内核没有编译 BBR 模块
- 系统镜像过旧
这种情况下,正确思路不是反复改配置,而是先升级或更换内核。
四、通用开启方法
这是适用于大多数 Linux 发行版的通用方案。
1. 备份当前配置
sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak
2. 编辑 /etc/sysctl.conf
可以用你熟悉的编辑器:
sudo nano /etc/sysctl.conf
或者:
sudo vim /etc/sysctl.conf
在文件末尾添加下面两行:
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
这两项分别表示:
net.core.default_qdisc=fq:将默认队列调度算法设置为fqnet.ipv4.tcp_congestion_control=bbr:把 TCP 拥塞控制算法切换为bbr
3. 立即加载配置
sudo sysctl -p
如果返回结果类似:
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
通常就表示已经加载成功。
五、快速开启命令
如果你确认系统已经支持 bbr,也可以直接用下面这组命令快速完成配置:
sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
这里要注意一点:如果你的 /etc/sysctl.conf 里本来已经存在同名配置,最好先手动检查,避免重复追加。
六、Ubuntu / Debian / CentOS 分发行版命令
下面把实际操作里最常见的几个系统单独列出来,方便你直接复制使用。
Ubuntu
先检查内核和可用算法:
uname -r
sysctl net.ipv4.tcp_available_congestion_control
如果结果里已经有 bbr,直接执行:
sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak
sudo bash -c 'cat >> /etc/sysctl.conf <<EOF
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF'
sudo sysctl -p
sysctl net.ipv4.tcp_congestion_control
Debian
Debian 的思路和 Ubuntu 基本一致:
uname -r
sysctl net.ipv4.tcp_available_congestion_control
sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak
sudo bash -c 'cat >> /etc/sysctl.conf <<EOF
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF'
sudo sysctl -p
sysctl net.ipv4.tcp_congestion_control
如果你使用的是比较老的 Debian 镜像,发现没有 bbr,就优先升级内核,不要直接硬套配置。
CentOS 7
CentOS 7 需要先特别注意内核版本,因为它的默认内核偏老。
先检查:
uname -r
sysctl net.ipv4.tcp_available_congestion_control
如果输出里已经有 bbr,那么同样可以直接开启:
sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak
sudo bash -c 'cat >> /etc/sysctl.conf <<EOF
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF'
sudo sysctl -p
sysctl net.ipv4.tcp_congestion_control
如果没有 bbr,通常说明当前内核不支持。这种情况下应先升级到支持 BBR 的新内核,再继续配置。
CentOS Stream / AlmaLinux / Rocky Linux
这些系统通常内核较新,处理方式和上面相同:
uname -r
sysctl net.ipv4.tcp_available_congestion_control
sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak
sudo bash -c 'cat >> /etc/sysctl.conf <<EOF
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF'
sudo sysctl -p
sysctl net.ipv4.tcp_congestion_control
七、如何验证 BBR 是否已经生效
配置完之后,不建议只看一眼 sysctl -p 的输出就结束,最好再做一次确认。
1. 查看当前算法
sysctl net.ipv4.tcp_congestion_control
如果看到:
net.ipv4.tcp_congestion_control = bbr
说明系统当前默认算法已经切换成功。
2. 查看 BBR 模块
lsmod | grep bbr
常见输出类似:
tcp_bbr 20480 12
这表示 BBR 模块已经加载。
有些系统上这里未必一定有明显输出,但如果 tcp_congestion_control 已经显示为 bbr,通常也说明它已经处于可用状态。
八、一键检测 BBR 状态脚本
如果你不想每次手动敲好几条命令,可以直接保存一个检测脚本。
脚本内容
#!/usr/bin/env bash
echo "==== BBR Status Check ===="
echo
echo "[1] Kernel Version"
uname -r
echo
echo "[2] Available Congestion Control"
sysctl net.ipv4.tcp_available_congestion_control
echo
echo "[3] Current Congestion Control"
sysctl net.ipv4.tcp_congestion_control
echo
echo "[4] Default Queue Discipline"
sysctl net.core.default_qdisc
echo
echo "[5] Kernel Module"
lsmod | grep bbr || echo "tcp_bbr module not shown"
echo
echo "[6] Result"
if sysctl net.ipv4.tcp_congestion_control 2>/dev/null | grep -q "bbr"; then
echo "BBR appears to be enabled."
else
echo "BBR does not appear to be enabled."
fi
使用方法
先创建脚本文件:
nano check_bbr.sh
把上面的内容保存进去,然后赋予执行权限:
chmod +x check_bbr.sh
最后执行:
./check_bbr.sh
如果你希望更方便,也可以直接放到 /usr/local/bin 下面,之后就能像命令一样使用。
九、怎么判断开启后有没有提升
很多教程只讲“怎么开”,却不讲“开完怎么看”。实际上,验证效果比开启本身更重要。你可以重点观察这几类变化:
- 网站首包时间是否更快
- 长距离 SSH、SCP、rsync 传输是否更稳定
- TCP 下载速度是否更平滑
- 高延迟场景下是否不容易突然掉速
如果你想做一个简单对比,可以在开启前后分别执行一次:
curl -o /dev/null -s -w 'time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n' https://example.com
然后比较连接建立时间、首包时间和总耗时是否有变化。
十、常见问题
1. sysctl -p 报错怎么办
通常先排查这几项:
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.core.default_qdisc
常见原因有:
- 参数写错
- 内核不支持 BBR
- 当前系统不识别
fq - 配置文件里有重复或冲突项
如果 tcp_available_congestion_control 里压根没有 bbr,那重点就不是修配置,而是升级内核。
2. 开启后速度没变化,是不是没成功
不一定。这类情况很常见,因为网络性能的瓶颈未必就在 TCP 拥塞控制上。比如:
- 本来线路就很好,优化空间很小
- 对端服务有限速
- 业务高峰时瓶颈在 CPU 或磁盘
- 实际流量大多不是 TCP
所以正确判断方式不是“感觉快没快”,而是做前后对比测试。
3. 重启后配置失效怎么办
如果你已经把配置写进 /etc/sysctl.conf,理论上重启后仍然会生效。重启后可以再次执行:
sysctl net.ipv4.tcp_congestion_control
如果结果不是 bbr,需要进一步检查:
- 是否有初始化脚本覆盖配置
- 是否有面板程序或优化脚本重写了 sysctl 参数
- 是否切换了内核
十一、如何关闭 BBR 或恢复默认设置
如果你想切回默认的 cubic,把配置改成下面这样即可:
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=cubic
然后重新加载:
sudo sysctl -p
如果你前面已经做过备份,也可以直接恢复:
sudo cp /etc/sysctl.conf.bak /etc/sysctl.conf
sudo sysctl -p
十二、推荐的实际操作顺序
建议按下面这个顺序来:
- 先用
uname -r检查内核版本 - 再用
sysctl net.ipv4.tcp_available_congestion_control看是否支持bbr - 确认支持后,备份
/etc/sysctl.conf - 写入
fq和bbr配置 - 执行
sudo sysctl -p - 再用检测命令或脚本确认是否生效
- 最后再做一次前后测速对比
十三、总结
Linux 开启 BBR 的核心其实就是:
- 系统内核支持
bbr - 配置文件里写入下面两行
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
然后执行:
sudo sysctl -p
对多数新系统来说,这件事并不复杂,几分钟就能完成。真正值得你多花一点时间的,反而是“确认系统是否支持”和“开启前后是否真的有提升”。


