Linux系统中启用TCP BBR可提升网络性能,需先确认内核≥4.9,再通过临时设置、永久配置、一键脚本、或手动加载模块四种方式启用,并验证fq队列与bbr算法生效。

如果您在Linux系统中运行网络服务,但发现吞吐量偏低、延迟偏高或跨运营商访问缓慢,则可能是当前TCP拥塞控制算法未优化所致。BBR算法由Google提出,可显著改善长肥管道(Long Fat Network)下的带宽利用率与往返时延表现。以下是启用TCP BBR的多种可行方法:
一、验证内核版本并确认BBR支持
BBR自Linux内核4.9起正式集成,需确保当前系统内核版本不低于此要求,否则无法加载BBR模块或启用对应参数。
1、执行命令查看当前内核版本:uname -r
2、若输出版本号如5.15.0-100-generic或4.19.216等,且主版本≥4.9,则满足前提条件;若为3.10.0-1160或4.4.0-252等低于4.9的版本,必须先升级内核。
3、检查系统是否已内置BBR模块:运行lsmod | grep tcp_bbr,若无输出,不代表不支持,仅说明尚未加载;若返回tcp_bbr及其内存地址,则模块已就绪。
二、临时启用BBR(重启后失效)
该方式适用于快速测试BBR效果,无需修改配置文件,所有设置仅在当前运行时生效,适合验证兼容性与性能提升幅度。
1、设置默认队列调度器为fq(Fair Queueing),适配BBR行为:sudo sysctl -w net.core.default_qdisc=fq
2、切换IPv4拥塞控制算法为bbr:sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
3、立即验证当前生效算法:sysctl net.ipv4.tcp_congestion_control,预期输出为net.ipv4.tcp_congestion_control = bbr
三、永久启用BBR(写入系统配置)
通过修改/etc/sysctl.conf持久化关键参数,确保每次系统启动后自动应用BBR配置,避免手动重复设置。
1、向配置文件追加两行参数:echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
2、继续追加拥塞控制设定:echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
3、加载全部新配置使参数即时生效:sudo sysctl -p
4、确认参数已写入并激活:sudo sysctl net.ipv4.tcp_congestion_control与sudo sysctl net.core.default_qdisc应分别返回bbr和fq
四、使用teddysun一键脚本安装(含内核升级)
针对CentOS/RHEL/Debian/Ubuntu等主流发行版,teddysun维护的脚本可自动完成内核升级(如升至5.15+)、BBR启用及模块加载,特别适用于原生内核过旧且无手动升级经验的用户。
1、下载脚本:wget --no-check-certificate -O /opt/bbr.sh https://github.com/teddysun/across/raw/master/bbr.sh
2、赋予执行权限:chmod 755 /opt/bbr.sh
3、以root身份运行:sudo /opt/bbr.sh
4、按提示输入y确认重启,重启完成后执行uname -r与lsmod | grep bbr验证结果。
五、手动加载BBR模块并设为开机自启
部分系统(如某些定制化嵌入式Linux或精简版容器宿主机)可能未默认加载tcp_bbr内核模块,需显式调用modprobe并配置模块自动加载机制。
1、手动加载模块:sudo modprobe tcp_bbr
2、确认模块已载入:sudo lsmod | grep tcp_bbr,应有非空输出
3、配置开机自动加载:向/etc/modules-load.d/modules.conf写入模块名:echo "tcp_bbr" | sudo tee /etc/modules-load.d/modules.conf
4、同步更新sysctl配置(同方法三步骤1–3),确保参数与模块协同生效。










