BBR 是 Google 开发的 TCP 拥塞控制算法,在跨境、长距离或有丢包的线路上,通常能明显提升下载速度和稳定性。本文介绍如何在 Linux 开启 BBR 加速,适用于 Debian、Ubuntu、CentOS Stream、Rocky Linux、AlmaLinux 等 KVM 架构的 VPS 与独立服务器。我们只给出透明的手动方法,不推荐使用来路不明的“一键脚本”。
BBR 需要 Linux 内核 4.9 或更高版本。先查看内核与系统版本:
uname -r
cat /etc/os-release
Debian 10+、Ubuntu 18.04+、Rocky/AlmaLinux 8+ 的默认内核都已支持 BBR。如果是 CentOS 7(内核 3.10),系统已停止维护,建议在客户中心重装为较新的系统,而不是强行升级内核。
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
如果可用列表中没有 bbr,可尝试手动加载模块:
modprobe tcp_bbr
sysctl net.ipv4.tcp_available_congestion_control
将配置写入 /etc/sysctl.d/ 下的独立文件,便于以后管理和回滚。default_qdisc 设为 fq,拥塞控制设为 bbr:
echo "net.core.default_qdisc=fq" | tee /etc/sysctl.d/99-bbr.conf
echo "net.ipv4.tcp_congestion_control=bbr" | tee -a /etc/sysctl.d/99-bbr.conf
sysctl --system
该配置在重启后依然有效,Debian/Ubuntu 与 CentOS/Rocky/AlmaLinux 命令完全相同。
sysctl net.ipv4.tcp_congestion_control
sysctl net.core.default_qdisc
lsmod | grep bbr
第一条输出 bbr、第二条输出 fq 即表示开启成功。lsmod 中出现 tcp_bbr 表示模块已加载;如果内核把 BBR 直接编译进内核,lsmod 可能没有输出,但只要 sysctl 显示 bbr 即为正常。
可以在开启前后分别下载同一个大文件或使用 iperf3 对比速度。若需要恢复默认的 cubic 算法:
rm -f /etc/sysctl.d/99-bbr.conf
sysctl -w net.ipv4.tcp_congestion_control=cubic
sysctl -w net.core.default_qdisc=fq_codel
容器与宿主机共享内核,无法自行加载内核模块或修改拥塞控制。KVM 架构 VPS 和独立服务器可以正常开启。
BBR 在高延迟、轻微丢包的线路上效果最明显;若瓶颈在本地宽带、客户端或带宽上限,提升会很有限。可用 mtr 排查线路丢包。
非官方修改版需要替换内核,稳定性无保障,生产环境建议使用发行版内核自带的原版 BBR。
如仍无法解决,可提交工单联系 IMIDC 7×24 技术支持,请附上 uname -r 与 sysctl 输出。