BBR(Bottleneck Bandwidth and Round-trip propagation time)是 Google 于 2016 年提出的 TCP 拥塞控制算法,已合并进 Linux 4.9+ 内核。与传统的 CUBIC 相比,BBR 能在网络存在轻微丢包和延迟抖动的场景下维持更高的吞吐量,非常适合跨地区、跨洋的 VPS 网络环境。本文带你一步步检查内核版本、开启 BBR 并验证生效。
本文要点
- 确认 Linux 内核 ≥ 4.9,搬瓦工最新系统镜像均已满足
- 两步修改
/etc/sysctl.conf即可永久启用 - 用
ss或sysctl命令验证是否生效 - BBR 与系统原有参数兼容,无需担心副作用
什么是 TCP 拥塞控制
TCP 拥塞控制负责在网络出现拥塞时调节发送速率,防止大量数据包同时涌入导致丢包加剧。Linux 历史上默认使用 CUBIC 算法,它依赖检测丢包来判断拥塞,在高延迟或轻微随机丢包的环境中容易误判,吞吐量损失较大。
BBR 改变了思路:它不再等丢包,而是持续测量带宽与延迟,主动推算最优发送速率,从而在相同物理链路上取得更高的实际传输速度。
检查内核版本
BBR 需要 Linux 内核 4.9 或更高版本。搬瓦工默认提供的 Debian 12、Ubuntu 22.04 等系统均已满足,但如果你使用的是较旧的镜像,请先确认:
uname -r
# 输出示例:6.1.0-21-amd64
# 确保版本号主版本 >= 4,次版本 >= 9(或主版本 >= 5)OpenVZ 架构限制
开启 BBR
编辑 /etc/sysctl.conf,在文件末尾追加两行:
# 开启 BBR 拥塞控制
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr- 用编辑器打开配置文件:
nano /etc/sysctl.conf - 在末尾追加上述两行,保存退出(Ctrl+O → Enter → Ctrl+X)
- 立即应用配置:
sysctl -p - 无需重启,BBR 即时生效
fq 队列调度器
net.core.default_qdisc = fq 将排队规则改为 Fair Queue,这是 BBR 的推荐搭配,能更好地利用 BBR 的速率控制能力。绝大多数 Linux 发行版内核均已内置 fq 模块,无需额外安装。验证 BBR 是否生效
执行以下任一命令确认启用状态:
# 方法一:确认当前拥塞算法
sysctl net.ipv4.tcp_congestion_control
# 期望输出:net.ipv4.tcp_congestion_control = bbr
# 方法二:通过 ss 查看已建立连接使用的算法
ss -tni | grep bbr
# 有活跃连接时会显示 bbr 字样
# 方法三:查看内核已加载的拥塞算法列表
sysctl net.ipv4.tcp_available_congestion_control效果与注意事项
| 场景 | BBR 效果 | 备注 |
|---|---|---|
| 跨地区高延迟传输 | 吞吐量提升明显 | 延迟越高提升越显著 |
| 本地低延迟局域网 | 改善有限 | CUBIC 已足够 |
| 轻微随机丢包 | 仍维持高速 | BBR 不因丢包降速 |
| 严重网络拥塞 | 优于 CUBIC,但仍受物理限制 | 并非万能 |
BBR 对网站访客的影响
小结
- 内核 ≥ 4.9(KVM 架构)才能使用 BBR,搬瓦工主流套餐均满足
- 在
/etc/sysctl.conf追加两行,sysctl -p立即生效,无需重启 - 用
sysctl net.ipv4.tcp_congestion_control验证结果 - 高延迟、轻丢包场景下效果最明显,是 VPS 调优的第一步
常见问题
BBR 和 BBR2 有什么区别?
BBR2 是 BBR 的改进版,在公平性与拥塞响应上更优,但目前需要较新的内核(5.x+)且仍处于实验阶段。日常使用 BBR(v1)已绰绰有余,搬瓦工 KVM 套餐开箱即用。
开启 BBR 后能提升多少速度?
取决于网络环境,延迟越高、丢包越多提升越大。实测跨洋场景下吞吐量提升 30%~200% 不等,本地低延迟环境则提升有限。
BBR 会影响服务器稳定性吗?
不会。BBR 是内核成熟功能,已大规模部署在 Google 自有网络,只修改拥塞控制算法,不影响其他系统功能。
重启后 BBR 会失效吗?
不会。写入 /etc/sysctl.conf 是持久化配置,重启后内核会自动应用。