Rocky Linux / AlmaLinux / RHEL 开启 TCP BBR 完整教程
更新日期:2026-07-07
Rocky Linux、AlmaLinux 和 RHEL 属于同一条企业 Linux 生态,开启 BBR 的核心方式一致:确认内核支持 tcp_bbr,然后通过 /etc/sysctl.d/ 写入持久化配置。RHEL 官方文档也建议通过 sysctl 命令和 /etc/sysctl.d/ 管理运行时内核参数。
适用版本
- RHEL 8、9、10
- Rocky Linux 8、9、10
- AlmaLinux 8、9、10
- Oracle Linux 在多数场景也可以参考,但 Oracle UEK 的差异见单独文章
先确认系统和内核:
cat /etc/os-release
uname -r
sysctl net.ipv4.tcp_available_congestion_control
开启 BBR
sudo modprobe tcp_bbr 2>/dev/null || true
echo tcp_bbr | sudo tee /etc/modules-load.d/bbr.conf >/dev/null
sudo tee /etc/sysctl.d/99-bbr.conf >/dev/null <<'EOF'
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF
sudo sysctl --system
验证
sysctl net.core.default_qdisc
sysctl net.ipv4.tcp_congestion_control
sysctl net.ipv4.tcp_available_congestion_control
如果当前有外连 TCP 会话,可以看连接详情:
ss -tin state established | grep -m 5 bbr
tuned 和企业环境注意事项
RHEL 系服务器常见 tuned profile。tuned 主要用于整套性能策略,不一定会覆盖这两个 BBR 参数,但企业环境里最好把变更记录在配置管理里,例如 Ansible、Puppet、Terraform provisioner 或内部基线脚本,避免后续被系统基线覆盖。
如果是数据库、消息队列、内部低延迟局域网服务,不要只因为 BBR 热门就开启。BBR 更适合跨地域、长 RTT、轻微丢包的公网 TCP 传输。
云厂商镜像注意事项
- AWS、Azure、Google Cloud、Oracle Cloud 的企业 Linux 镜像通常支持 sysctl.d。
- 如果是安全加固镜像,可能裁剪模块或限制加载,需要先查 available_congestion_control。
- 如果看不到 bbr,优先使用发行版官方内核或云厂商支持的内核。
回滚
sudo rm -f /etc/sysctl.d/99-bbr.conf /etc/modules-load.d/bbr.conf
sudo sysctl -w net.ipv4.tcp_congestion_control=cubic
sudo sysctl --system
参考资料
- RHEL 9 kernel runtime parameters: https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/managing_monitoring_and_updating_the_kernel/configuring-kernel-parameters-at-runtime_managing-monitoring-and-updating-the-kernel
- RHEL 8 kernel runtime parameters: https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/managing_monitoring_and_updating_the_kernel/configuring-kernel-parameters-at-runtime_managing-monitoring-and-updating-the-kernel
- Linux sysctl.d manual: https://man7.org/linux/man-pages/man5/sysctl.d.5.html
- Google BBR project: https://github.com/google/bbr