如果你租的是一台国外的 VPS,大概率已经被网络延迟折磨过了——SSH 输入卡半秒才显示、网站加载像在拨号、下载个文件得泡杯茶等着。这些问题很多时候不是带宽不够,而是 TCP 拥塞控制算法在拖后腿。Google 开源的 BBR (Bottleneck Bandwidth and Round-trip propagation time) 就是专门来解决这个问题的,而且效果相当显著。
本文将从 BBR 的原理讲起,手把手带你在一台 Linux VPS 上完成安装、启用、验证的全流程——全程只用几条命令,不需要编译内核,十分钟之内搞定。
BBR 解决的问题
TCP 拥塞控制的简单解释
在互联网上传输数据时,如果发送方一股脑地把数据全扔出去,网络中间的路由器缓冲区会被塞满,导致丢包。丢包之后发送方又得重传,效率反而更差。拥塞控制算法的任务就是找到一个合适的发送速率——既不太慢浪费带宽,也不太快导致丢包。
传统的拥塞控制算法(如 CUBIC、Reno)基于丢包来判断网络拥塞:一旦检测到丢包,就大幅降低发送速率。这个思路在十年前的网络环境下还算合理,但在今天的高带宽、高延迟网络中,丢包并不一定是拥塞造成的(比如无线网络的随机丢包),误判会导致速率被不必要地压低。
BBR 的创新思路
BBR 不再盯着丢包看,而是直接测量网络的瓶颈带宽和往返时延。它会持续探测网络的实际可用带宽,在保证不制造额外排队延迟的前提下,把发送速率推到上限。
换个好理解的说法:传统算法像是一个开车时一看到红灯就急刹车的人;BBR 则像是一个时刻观察路况、始终以最合理速度行驶的老司机。在存在一定丢包率的弱网环境下(比如跨太平洋的国际线路),BBR 的性能可达传统算法的数倍。
BBR 的版本与选择
Google 原版 BBR 只是一个起点,社区在此基础上衍生出了多个增强版本:
| 版本 | 特点 | 适合场景 |
|---|---|---|
| 原版 BBR | Google 官方实现,稳定可靠 | 生产环境首选 |
| BBR 魔改版 | 更激进的抢占带宽策略 | 高丢包国际线路 |
| BBRplus | 在原版基础上优化了启动速度 | 短连接多的场景 |
| 锐速 (Lotserver) | 国产付费/破解方案,多倍发包 | 不推荐,浪费流量且可能被封 |
建议:对于大多数用户,原版 BBR 足够。如果你的线路丢包严重(超过 3%),可以考虑魔改版。锐速虽然效果明显,但通过双倍发包实现加速,会消耗额外流量,且部分服务商视为滥用。
安装前的准备工作
系统要求检查
安装 BBR 需要满足以下条件:
如果机器还没定:我这台用的是年付不到 30 美元的一档,同价位的横向实测和选购要点记在另一处——VPS 选购指南。
- 操作系统:CentOS 6+、Debian 7+、Ubuntu 12+(基本上你能买到的 VPS 都满足)
- 虚拟化架构:KVM、Xen、VMware可以;OpenVZ 不可以(OpenVZ 共享宿主机内核,无法单独升级)
- 内核版本:最低 4.9。BBR 从 Linux 4.9 开始内置
- 注意:BBR 和锐速不能共存——一个需要升级内核(BBR),一个需要降级内核(锐速),二选一
怎么判断你的 VPS 是什么虚拟化
登录 SSH,执行:
systemd-detect-virt
输出 kvm 就可以装 BBR;输出 openvz 就与 BBR 无缘了。
查看当前内核版本:
uname -r
如果版本号低于 4.9,后面的一键脚本会自动帮你升级内核。
安装步骤:使用一键脚本
最省事的方式是使用社区维护的一键脚本。这里以 chiakge 的 Linux-NetSpeed 脚本为例,它集成了多款加速方案,一个脚本全部搞定。
第一步:下载并运行脚本
wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh"
chmod +x tcp.sh
./tcp.sh
运行后会看到如下菜单:
0. 升级脚本
————————————内核管理————————————
1. 安装 BBR/BBR魔改版内核
2. 安装 BBRplus版内核
3. 安装 Lotserver(锐速)内核
————————————加速管理————————————
4. 使用BBR加速
5. 使用BBR魔改版加速
6. 使用暴力BBR魔改版加速(不支持部分系统)
7. 使用BBRplus版加速
8. 使用Lotserver(锐速)加速
————————————杂项管理————————————
9. 卸载全部加速
10. 系统配置优化
11. 退出脚本
————————————————————————————————
当前状态: 未安装 BBR 加速内核
请输入数字 [0-11]:
第二步:先装内核,再启加速
- 输入
1并回车,安装 BBR/BBR魔改版内核。 - 脚本会自动下载并安装新内核,完成后会提示你重启。
- 重启服务器:
reboot - 重启后重新连接 SSH,再次运行脚本:
./tcp.sh - 这次输入
4并回车,启用 BBR 加速。
几秒钟后脚本会输出 “BBR 启动成功”。不放心的话输入 11 退出,然后继续看下面的验证步骤。
如果想换加速方案
这个脚本支持随时切换。假设你装了 BBR 但效果不理想想试试魔改版:重新运行 ./tcp.sh,先输入 9 卸载全部加速,再按上面的流程安装新内核、启用新加速即可。
验证 BBR 是否生效
装完之后怎么确认 BBR 真的在跑?三条命令,逐一检查:
检查 1:看内核模块
lsmod | grep bbr
如果 BBR 正在运行,输出类似:
tcp_bbr 20480 15
如果没有任何输出,说明 BBR 没有加载。
检查 2:看 sysctl 配置
sysctl net.ipv4.tcp_congestion_control
期望输出:
net.ipv4.tcp_congestion_control = bbr
如果显示 cubic 或 reno,说明系统还在用默认算法。
检查 3:看内核版本
uname -r
版本号应该 ≥ 4.9。如果你用的是 BBRplus 内核,版本号可能是 4.14 或更高。
三条全部过关,BBR 就确认生效了。
效果测试:装之前 vs 装之后
想知道 BBR 到底有没有用,可以装之前和装之后分别跑一下测速:
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -
或者用更直观的方式:从你的本地电脑下载 VPS 上的一个大文件:
# 在 VPS 上生成一个 100MB 的测试文件
dd if=/dev/zero of=/tmp/testfile bs=1M count=100
# 在本地下載(替换 IP)
wget http://你的VPS的IP/testfile -O /dev/null
装 BBR 前后的下载速度差异,就是加速效果的最直观体现。根据经验,跨太平洋线路(如美国西海岸到中国大陆)在启用 BBR 后速度提升从 20% 到 300% 不等,取决于具体线路质量。
以下是一台洛杉矶 CN2 GIA 线路 VPS 的实测对比(同时段、同文件、同本地网络):
- CUBIC(默认算法):单线程下载 2.3 MB/s,丢包率 2.1%
- BBR(原版):单线程下载 8.7 MB/s,丢包率 0.5%
- BBR 魔改版:单线程下载 11.2 MB/s,丢包率 0.3%
可以看到,BBR 不仅提升了吞吐量,还通过更智能的拥塞控制降低了丢包。但要注意:魔改版提升虽大,偶尔会在低延迟网络中抢占过多带宽——如果你的 VPS 和其他服务共享同一台宿主机,用原版 BBR 最稳妥。
常见问题
重启后 BBR 失效了?
检查 /etc/sysctl.conf 是否包含以下两行:
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
如果没有,手动加上,然后执行 sysctl -p 使其生效。注意 fq (Fair Queuing) 是 BBR 推荐的队列调度算法,不要省略。
装了 BBR 后 SSH 变卡了?
极少数情况下 BBR 和某些网络环境水土不服,反而更差。卸载命令:
./tcp.sh # 输入 9 卸载全部加速
然后系统会自动回退到 CUBIC 算法,恢复到装之前的状态。
OpenVZ 真的完全没希望吗?
OpenVZ 无法换内核,所以不能装 BBR。但可以尝试以下替代方案:
- 开启 TCP Fast Open(
net.ipv4.tcp_fastopen = 3) - 优化 TCP 窗口大小
- 使用 KCPTUN 等 UDP 加速方案
- 直接换一台 KVM 架构的 VPS
结语
BBR 是 Linux VPS 优化中最“划算”的改动之一——几条命令、一次重启,零成本换取可观的网络性能提升。如果你还停留在默认的 CUBIC 算法,不妨花十分钟跑一遍本文的流程。
装完之后想进一步压榨性能?以下优化可以和 BBR 叠加使用:
- TCP Fast Open:
sysctl -w net.ipv4.tcp_fastopen=3,减少 TCP 握手的一次 RTT,对短连接(如 HTTP 请求)提升明显 - 调整 TCP 缓冲区:默认的缓冲区通常偏保守,在高带宽延迟积(BDP)场景下可以适当增大
- 搭配 CDN:如果面向国内用户,Cloudflare + BBR 是公认的高性价比组合——CF 负责静态资源加速,BBR 负责源站到 CF 的回源链路优化
简单总结一下:先确认你的 VPS 是 KVM 架构,跑一键脚本装内核,重启后启用 BBR,用三条验证命令确认生效,然后跑个测速看效果。全程不超过 10 分钟,零成本,收益实实在在。更多 VPS 调优技巧,见本站运维系列。
相关阅读:VPS 测试脚本、Linux 放行端口