Fedora 开启 TCP BBR 完整教程
更新日期:2026-07-07
Fedora 的内核更新节奏较快,通常很适合直接开启 TCP BBR。普通 Fedora Server / Workstation 可以使用 /etc/sysctl.d/;Fedora CoreOS 这类不可变系统则更适合通过 Ignition、Butane 或机器配置来管理 sysctl。
普通 Fedora 服务器
先检查版本和可用算法:
cat /etc/fedora-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
ss -tin state established | grep -m 5 bbr
Fedora CoreOS 注意事项
Fedora CoreOS 官方文档说明,内核参数可以通过 /proc/sys 下的 sysctl 机制控制,但生产环境应通过系统配置方式持久化,而不是手工 SSH 上去改文件。
临时测试可以用:
sudo sysctl -w net.core.default_qdisc=fq
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
长期使用建议把 /etc/sysctl.d/99-bbr.conf 写入 Ignition/Butane 配置,由集群或镜像构建流程下发。
Fedora 上的常见问题
为什么 reboot 后没了?
先确认配置写在 /etc/sysctl.d/99-bbr.conf,而不是只执行了 sysctl -w。sysctl -w 是运行时修改,重启会丢失。
Fedora Desktop 也需要开吗?
如果只是日常桌面上网,收益不一定明显。BBR 更适合服务器作为发送端,为远距离用户提供下载、代理、API 或流媒体传输。
和 firewalld、SELinux 有冲突吗?
正常不会。BBR 是 TCP 拥塞控制算法,和防火墙规则、SELinux 策略不是同一层。
回滚
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
参考资料
- Fedora CoreOS sysctl docs: https://docs.fedoraproject.org/en-US/fedora-coreos/sysctl/
- Linux sysctl.d manual: https://man7.org/linux/man-pages/man5/sysctl.d.5.html
- systemd-sysctl manual: https://man7.org/linux/man-pages/man8/systemd-sysctl.8.html
- Google BBR project: https://github.com/google/bbr