Debian 13 / 12 / 11 开启 TCP BBR 完整教程

July 7, 2026
Debian 13、Debian 12、Debian 11 开启 TCP BBR 的完整教程,包含内核检查、sysctl.d 持久化配置、验证、回滚和云服务器注意事项。

Debian 13 / 12 / 11 开启 TCP BBR 完整教程

更新日期:2026-07-07

Debian 11、12、13 的默认内核都已经满足 TCP BBR 的常见使用条件。正常 KVM 云服务器、独立服务器、虚拟机都可以直接开启;如果是 LXC、OpenVZ 或受限容器,需要先确认宿主机是否允许修改内核网络参数。

先确认内核和可用算法

cat /etc/debian_version
uname -r
sysctl net.ipv4.tcp_available_congestion_control

如果输出里已经有 bbr,可以直接配置。如果没有,尝试加载模块:

sudo modprobe tcp_bbr 2>/dev/null || true
sysctl net.ipv4.tcp_available_congestion_control

仍然看不到 bbr 时,先升级到 Debian 官方内核,不建议在生产机器上随意混装来路不明的内核包。

Debian 开启 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

期望看到:

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

如果想看当前连接是否正在使用 BBR:

ss -tin state established | grep -m 5 bbr

没有输出不一定是失败。先建立一个活跃外连 TCP 连接,比如下载文件或跑 iperf3,再重新查看。

Debian 云服务器注意事项

  • Hetzner、OVH、Vultr、Linode、DigitalOcean 等 KVM 云主机通常可以直接配置。
  • LXC 容器可能只能看到宿主机允许的参数,改 sysctl 会报 permission denied 或不持久。
  • 如果 root qdisc 显示 mq,不一定代表 fq 没生效。多队列网卡可能会显示 mq,具体子队列仍可能使用 fq。
  • 不要同时套用一整包 sysctl 优化参数。先只开 BBR 和 fq,观察吞吐、延迟和丢包。

回滚

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
sysctl net.ipv4.tcp_congestion_control

现有 TCP 连接可能继续沿用建立时的拥塞控制算法。重新建立连接后再观察。

参考资料