bbr是google开发的tcp拥塞控制算法,通过精准探测瓶颈带宽和降低排队延迟来提升高延迟、高丢包链路下的吞吐量;在宝塔服务器上启用后可使首屏加载和大文件下载提速20%–50%,但需内核≥4.9并配合fq队列规则才能生效。

BBR 是什么,为什么它能提升宝塔服务器的网络速度
BBR(Bottleneck Bandwidth and RTT)是 Google 开发的 TCP 拥塞控制算法,不是传统“加大带宽”的方案,而是通过更精准地探测和利用瓶颈带宽、降低排队延迟,来提升高丢包、高延迟链路下的吞吐量。对宝塔面板托管的网站、API 或下载服务来说,尤其在跨运营商(如电信访移动用户)、国际线路或云服务器出口受限场景下,sysctl net.ipv4.tcp_congestion_control 切换为 bbr 后,首屏加载、大文件下载完成时间常有 20%–50% 改善。
注意:BBR 仅作用于出向连接(服务器发给客户端的数据),且依赖内核支持 —— 宝塔运行在 CentOS 7/8、Ubuntu 16.04+、Debian 9+ 等较新系统上才默认可用;老内核(如 CentOS 7 默认 3.10.0-xx)需先升级内核再启用。
检查当前拥塞控制算法并确认 BBR 可用
登录服务器后,直接执行:
sysctl net.ipv4.tcp_congestion_control
如果返回 net.ipv4.tcp_congestion_control = cubic(或 reno),说明尚未启用 BBR。接着验证内核是否内置 BBR:
lsmod | grep bbr
有输出(如 tcp_bbr)表示模块已加载;若无输出,尝试手动加载:
sudo modprobe tcp_bbr
再运行
lsmod | grep bbr确认。若报错
Module not found,说明内核版本太低(apt install linux-image-generic-hwe-16.04,CentOS 用 ELRepo 源装 kernellt)。永久启用 BBR 并避免重启失效
BBR 不是“开个开关”就一劳永逸。必须同时配置两处,缺一不可:
- 启用 BBR 模块:写入
/etc/modules - 切换默认拥塞算法:写入
/etc/sysctl.conf
操作步骤如下:
- 执行
echo "tcp_bbr" | sudo tee -a /etc/modules
- 执行
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
- 执行
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
- 立即生效:
sudo sysctl -p
⚠️ 常见坑:只改 tcp_congestion_control 但漏掉 default_qdisc=fq,会导致 BBR 实际无法发挥效果(BBR 必须搭配 fq 队列规则才能精确调度)。另外,某些宝塔一键脚本或 Docker 环境会覆盖 /etc/sysctl.conf,建议启用后定期检查 sysctl net.ipv4.tcp_congestion_control 输出是否仍为 bbr。
验证 BBR 是否真正生效及观察效果
单纯看 sysctl 输出还不够。真实生效需满足两个条件:模块加载 + 当前连接使用 BBR。验证方法:
ss -i
找一个活跃的 HTTP 或 SSH 连接(比如本地 curl 宝塔面板端口),查看其 ca_state 和 cc 字段。若出现 cc=bbr 且 ca_state=CA_Open,说明该连接正在用 BBR。
更直观的方式是用宝塔「监控」页观察「网络IO」曲线变化:启用 BBR 后,在并发下载或压测时,Recv 波动应更平滑、峰值更高,retransmit(重传包)计数增长明显放缓。
注意:BBR 效果依赖实际网络路径。如果服务器本身带宽被限速(如腾讯云按流量计费实例的突发带宽)、或客户端网络极差(如弱信号 4G),优化幅度有限。别指望它把 1Mbps 线路变成 10Mbps,但它能让这 1Mbps 更“稳”、更“满”。










