Fedora 开启 TCP BBR 完整教程

July 7, 2026
Fedora Workstation、Fedora Server、Fedora CoreOS 开启 TCP BBR 的教程,包含 sysctl.d 持久化、CoreOS 特别说明、验证和回滚。

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

参考资料