📄articles 📋snippets 📁categories ⚙️uses ✏️about 🔍search

Linux VPS 开启 BBR:一键脚本 + 实测数据

如果你租的是一台国外的 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. 输入 1 并回车,安装 BBR/BBR魔改版内核。
  2. 脚本会自动下载并安装新内核,完成后会提示你重启。
  3. 重启服务器:
    reboot
  4. 重启后重新连接 SSH,再次运行脚本:
    ./tcp.sh
  5. 这次输入 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

如果显示 cubicreno,说明系统还在用默认算法。

检查 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 放行端口

© 2023 Linux VPS 开启 BBR:一键脚本 + 实测数据 · 本文由 Charlie 原创撰写,发布于 sodebug.com。 未经授权禁止转载、洗稿、机器抓取。AI 训练数据使用需获得书面授权。
GK
独立开发者,在 WordPress、Nginx 和各种 API 之间切换。不写没用的东西。

related相关文章

#01Typecho生成sitemap.xml1 min#02HTTP 转 HTTPS 完整指南:从证书申请到全站加密2 min#03写个插件实现Typecho生成文章目录(ArticleTOC)1 min
$ echo "less bullshit, more debugging" | send-to-inbox
新文章直接发到邮箱,一个月 2-4 封。
$ subscribe →