RockyLinux开启BBR拥塞控制
如果你用的是 RockyLinux,并且觉得服务器下载慢、视频卡顿、跨国访问延迟高,开启 BBR 拥塞控制通常能带来明显改善。
BBR 是 Google 提出的 TCP 拥塞控制算法,能更充分地利用带宽、降低排队延迟。
本文从零开始,带你在 RockyLinux 上安全开启 BBR,并验证是否生效。
操作前先确认内核和当前拥塞控制算法
RockyLinux 8 及以上版本默认内核通常已包含 BBR 模块,但需要手动启用。
首先登录服务器,用以下命令检查内核版本:
uname -r
如果内核版本是 4.9 或更高,一般支持 BBR。
接着查看当前可用的拥塞控制算法:
sysctl net.ipv4.tcp_available_congestion_control
输出中如果包含 bbr,说明内核已支持。
再检查当前正在使用的算法:
sysctl net.ipv4.tcp_congestion_control
如果显示 cubic 或 reno,就需要继续下面的步骤。
加载 BBR 模块并修改内核参数
先加载 BBR 模块,并确保开机自动加载:
modprobe tcp_bbr
echo "tcp_bbr" >> /etc/modules-load.d/bbr.conf
然后编辑 sysctl 配置文件。
推荐新建一个独立文件,避免直接修改主配置文件:
vi /etc/sysctl.d/99-bbr.conf
写入以下内容:
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
保存退出后,应用配置:
sysctl --system
验证 BBR 是否成功开启
依次执行以下命令,检查是否生效:
sysctl net.ipv4.tcp_congestion_control
sysctl net.core.default_qdisc
lsmod | grep bbr
预期结果:tcp_congestion_control 显示 bbr,default_qdisc 显示 fq,lsmod 能列出 tcp_bbr 模块。
如果都符合,说明 BBR 已开启。
你还可以用 ss -i 查看现有连接的拥塞控制算法,例如:
ss -i | grep bbr
常见报错和避坑说明
sysctl: cannot stat /proc/sys/net/ipv4/tcp_congestion_control:通常是因为内核版本过低,建议先升级内核或更换系统。- 修改后重启失效:检查
/etc/sysctl.d/99-bbr.conf是否保存成功,并确认执行过sysctl --system。 modprobe: FATAL: Module tcp_bbr not found:说明当前内核未编译 BBR 模块,需要升级内核或使用支持 BBR 的发行版。- 不要同时启用多个拥塞控制算法:
tcp_congestion_control只能指定一个值,写多个会导致报错。 - 生产环境建议先测试:在业务低峰期操作,并提前备份重要数据。
效果验证与进一步优化
开启后可以用 curl 或 wget 下载一个测试文件,对比开启前后的速度。
也可以使用 iperf3 进行带宽测试。
如果发现速度没有提升,可能是中间网络设备不支持或带宽本身已跑满。
另外,fq 队列规则配合 BBR 效果更好,但某些旧网卡驱动可能需要调整为 fq_codel。
如果遇到网络不稳定,可以尝试:
sysctl net.core.default_qdisc=fq_codel
sysctl -w net.core.default_qdisc=fq_codel
最后,如果这篇文章帮你解决了 RockyLinux 开启 BBR 的问题,可以分享给更多需要加速网络访问的朋友。