BBR (Bottleneck Bandwidth and Round-trip propagation time) 是 Google 开发的 TCP 拥塞控制算法。简单说:让数据传得更快、更稳。
为什么 BBR 对 VPS 特别有效?
默认的 TCP 拥塞控制算法(CUBIC)是为局域网设计的——假设丢包就是网络拥堵了,会立即降速。但在 VPS 跨国场景中,丢包可能是物理距离和中间路由导致的,并非真正的拥堵。BBR 不依赖丢包来判断带宽,而是持续探测实际可用带宽,在高延迟跨国链路中效果拔群。
一键开启(Linux 4.9+ 内核)
# 写入配置
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
# 使生效
sysctl -p
# 验证是否开启
sysctl net.ipv4.tcp_congestion_control
# 输出应为: net.ipv4.tcp_congestion_control = bbr
# 查看可用的拥塞控制算法
sysctl net.ipv4.tcp_available_congestion_control
BBR 版本演进
| 版本 | 内核要求 | 特点 |
|---|---|---|
| BBRv1 | 4.9+ | 经典版,稳定可靠,所有 VPS 都能用 |
| BBRv2 | 5.x+ | 改善了公平性(不抢其他连接的带宽),但吞吐量略低于 v1 |
| BBRv3 | 6.x+ | 最新版,结合 v1 的速度和 v2 的公平性。需手动编译内核或等发行版更新 |
目前绝大多数 VPS 用的都是 BBRv1(内核自带),已经足够了。
效果对比
| 场景 | CUBIC(默认) | BBR | 提升 |
|---|---|---|---|
| 洛杉矶→国内下载 | 2-5 MB/s | 10-30 MB/s | 3-5x |
| 欧洲→国内 | 1-3 MB/s | 5-15 MB/s | 3-10x |
| 丢包 1% 时 | 几乎不可用 | 影响不大 | 天差地别 |
进阶:内核参数优化
# 追加到 /etc/sysctl.conf
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_slow_start_after_idle = 0
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
sysctl -p