linux开启bbr提升网络速度
BBR (Bottleneck Bandwidth and Round-trip propagation time) 是 Linux 上最经典的网络拥塞控制优化方式之一,可以显著提升 TCP 吞吐、降低延迟(尤其在跨地域或高丢包网络中)。
下面我教你 从检测 → 启用 → 验证 全流程(支持 CentOS / Ubuntu / Debian / openEuler / Kylin / 等主流发行版)。
🧠 一、查看当前内核版本
BBR 需要 Linux 内核 ≥ 4.9
uname -r
示例输出:
5.10.0-23-amd64
✅ 如果版本 ≥ 4.9,可以直接开启。
❌ 如果低于 4.9,需要升级内核(下面会讲)。
🚀 二、开启 BBR(无需重启)
执行以下命令启用:
modprobe tcp_bbr
然后编辑配置:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
立即加载:
sysctl -w net.core.default_qdisc=fq
sysctl -w net.ipv4.tcp_congestion_control=bbr
🔍 三、验证是否生效
查看当前 TCP 拥塞算法:
sysctl net.ipv4.tcp_congestion_control
输出应为:
net.ipv4.tcp_congestion_control = bbr
再确认模块加载成功:
lsmod | grep bbr
输出类似:
tcp_bbr 20480 3
✅ 表示成功启用。
⚙️ 四、(如内核太旧)升级内核
如果你的内核版本 < 4.9,例如:
3.10.0-1160.el7.x86_64
这是 CentOS 7 默认版本,不支持 BBR。
解决办法如下:
▶ 1. 升级内核(CentOS 7)
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml -y
grub2-set-default 0
reboot
重启后再执行:
uname -r
应显示 5.x 或更高版本。
然后重复上面 第二步 启用 BBR。
🐧 五、Ubuntu / Debian 启用 BBR
Ubuntu 18+(内核自带)
sudo modprobe tcp_bbr
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
验证:
sysctl net.ipv4.tcp_congestion_control
🧩 六、openEuler / Kylin / 其他国产系统
这些系统基于较新内核(通常 ≥ 4.19),可直接开启:
modprobe tcp_bbr
sysctl -w net.core.default_qdisc=fq
sysctl -w net.ipv4.tcp_congestion_control=bbr
sysctl -p
🧪 七、测试 BBR 是否有效
可以使用 iperf3、speedtest-cli 或 curl 测试速度前后差异:
iperf3 -c <server_ip> -P 4
BBR 的典型特征是:
- RTT 更低
- 丢包后恢复更快
- 带宽利用率提升显著
🧾 八、一键启用脚本(适用于所有系统)
#!/bin/bash
modprobe tcp_bbr
grep -q "tcp_congestion_control" /etc/sysctl.conf || {
cat >> /etc/sysctl.conf <<EOF
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF
}
sysctl -p
sysctl net.ipv4.tcp_congestion_control
lsmod | grep bbr
保存为 enable_bbr.sh 后执行:
bash enable_bbr.sh
是否方便告诉我:
- 你的系统是哪个发行版?(比如 CentOS7、Ubuntu20.04、Kylin、openEuler)
- 是物理机、虚拟机还是 K8s 节点?
我可以帮你输出一份定制命令(避免不兼容或 kernel 冲突)。