如何使用 BBR 脚本优化 VPS 网络 TCP 拥塞控制?

文章导读
使用 BBR 脚本优化 VPS 网络的核心是升级 Linux 内核至 4.9 以上并启用 net.ipv4.tcp_congestion_control=bbr 参数。该方案适用于 CentOS 7、Debian 9 等默认内核较旧的 VPS 环境,主要风险在于内核升级可能导致系统启动失败,操作前务必备份快照。
📋 目录
  1. A 命令速用版
  2. B 为什么会这样
  3. C 分步处理
  4. D 怎么验证是否生效
  5. E 常见坑
  6. F 常见问题
  7. G 参考来源
A A

使用 BBR 脚本优化 VPS 网络的核心是升级 Linux 内核至 4.9 以上并启用 net.ipv4.tcp_congestion_control=bbr 参数。该方案适用于 CentOS 7、Debian 9 等默认内核较旧的 VPS 环境,主要风险在于内核升级可能导致系统启动失败,操作前务必备份快照。

先说结论:BBR 脚本能自动完成内核升级与参数配置,是解决 VPS 高延迟、高丢包场景下吞吐量不足的高效手段,但必须确保内核版本≥4.9 且配合 fq 队列规则。

  • 适合:海外 VPS、跨运营商访问、默认内核低于 4.9 的 CentOS 7/Debian 9 系统。
  • 先准备:备份服务器快照、确认 root 权限、检查当前内核版本 uname -r。
  • 验收:执行 sysctl net.ipv4.tcp_congestion_control 确认返回 bbr,且 lsmod | grep bbr 有输出。

命令速用版

若确认系统为 CentOS 7、Debian 或 Ubuntu 主流发行版,可直接使用 teddysun 维护的一键脚本自动完成内核升级与 BBR 启用。

wget `--no-check-certificate` https://github.com/teddysun/across/raw/master/bbr.sh
chmod +x bbr.sh
./bbr.sh

脚本执行完毕后按提示重启 VPS,重启后无需额外配置即可生效。若不愿使用脚本,可手动执行以下命令永久启用(需确保内核已支持):

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

为什么会这样

BBR 是 Google 开发的 TCP 拥塞控制算法,旨在解决传统算法在高延迟、高丢包链路上带宽利用率低的问题。传统算法如 Cubic 依赖丢包判断拥堵,一旦检测到丢包便大幅降速;而 BBR 通过测量瓶颈带宽和往返时间(RTT)主动调整发送速率,能更充分地利用可用带宽。部分

分步处理

操作前请确认当前内核版本,BBR 自 Linux 4.9 起正式集成,低于该版本无法原生启用。

如何使用 BBR 脚本优化 VPS 网络 TCP 拥塞控制?

1. 检查内核版本
执行 uname -r,若主版本号小于 4.9(如 CentOS 7 默认的 3.10.0),必须先升级内核。一键脚本会自动处理此步骤,手动升级需使用 ELRepo 源(CentOS)或 HWE 内核(Ubuntu)。

2. 启用 BBR 模块
若使用脚本,重启后自动加载。若手动配置,需确保 tcp_bbr 模块存在,执行 lsmod | grep tcp_bbr,若无输出可尝试 sudo modprobe tcp_bbr。

3. 配置系统参数
必须同时设置队列调度器和拥塞控制算法。将 net.core.default_qdisc=fq 和 net.ipv4.tcp_congestion_control=bbr 写入/etc/sysctl.conf,并执行 sysctl -p 使其生效。漏配 fq 队列规则会导致 BBR 无法发挥效果。

怎么验证是否生效

重启系统后,通过以下三条命令确认配置已持久化且模块已加载。

如何使用 BBR 脚本优化 VPS 网络 TCP 拥塞控制?

1. 确认当前算法
执行 sysctl net.ipv4.tcp_congestion_control,预期输出 net.ipv4.tcp_congestion_control = bbr。

2. 确认队列规则
执行 sysctl net.core.default_qdisc,预期输出 net.core.default_qdisc = fq。

3. 确认模块加载
执行 lsmod | grep bbr,若有 tcp_bbr 字样说明模块已就绪。也可使用 ss -ti 观察连接状态中的 bbr 标识。

常见坑

1. 只改算法不改队列
仅设置 tcp_congestion_control=bbr 而忽略 default_qdisc=fq,BBR 实际无法生效,必须两者配合。

2. 内核升级风险
CentOS 7 默认内核 3.10 不支持 BBR,升级内核涉及底层系统变更,生产环境操作前务必备份快照,防止升级后无法启动。

如何使用 BBR 脚本优化 VPS 网络 TCP 拥塞控制?

3. 临时生效误以为永久
使用 sysctl -w 命令仅当前运行时生效,重启后失效。必须写入/etc/sysctl.conf 配置文件才能持久化。

常见问题

CentOS 7 默认支持 BBR 吗?

不支持。CentOS 7 默认内核版本为 3.10,低于 BBR 所需的 4.9 版本,必须先升级内核才能启用。

开启 BBR 后需要重启服务器吗?

若使用一键脚本升级内核,必须重启;若内核已满足版本要求仅修改 sysctl 配置,执行 sysctl -p 后可立即生效无需重启。

BBR 会影响服务器安全性吗?

不会。BBR 仅调整 TCP 传输层的拥塞控制逻辑,不涉及防火墙规则或数据加密,属于内核网络栈的标准功能。

参考来源

  • Linux 怎么配置 TCP BBR 加速_Linux 开启 BBR 拥塞控制算法教程【技巧】
  • 如何优化宝塔面板的服务器网络速度_开启 BBR 拥塞控制算法
  • CentOS7 实战:BBR 加速优化 VPS 网络性能 (实测对比)
  • 网络协议优化在海外 VPS 上的配置与调优
  • 一键为 VPS 开启 BBR 拥塞控制算法加速你的 VPS 网络速度
  • BBR 加速原理及开启使用方法