首页 系统相关 正文
  • 本文约695字,阅读需3分钟
  • 140
  • 0

linux开启bbr提升网络速度

摘要

BBR (Bottleneck Bandwidth and Round-trip propagation time) 是 Linux 上最经典的网络拥塞控制优化方式之一,可以显著提升 TCP 吞吐、降低延迟(尤其在跨地域或高丢包网络中)。 下面我教你 从检测 → 启用 → 验证 全流程(支持 CentOS / Ubuntu / Debian / openEu...

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 是否有效

可以使用 iperf3speedtest-clicurl 测试速度前后差异:

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 冲突)。

标签:linux
    评论
    友情链接