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 版本演进

版本内核要求特点
BBRv14.9+经典版,稳定可靠,所有 VPS 都能用
BBRv25.x+改善了公平性(不抢其他连接的带宽),但吞吐量略低于 v1
BBRv36.x+最新版,结合 v1 的速度和 v2 的公平性。需手动编译内核或等发行版更新

目前绝大多数 VPS 用的都是 BBRv1(内核自带),已经足够了。

效果对比

场景CUBIC(默认)BBR提升
洛杉矶→国内下载2-5 MB/s10-30 MB/s3-5x
欧洲→国内1-3 MB/s5-15 MB/s3-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