在 linux 中开启 bbr 加速网络传输

BBR 加速 (Bottleneck Bandwidth and RTT) 是一种拥塞控制算法,由 Google 开发并集成到 Linux 内核中。它的主要目标是在高带宽、高延迟的网络环境中提高 TCP 吞吐量并减少延迟。

BBR 的工作原理是通过测量网络的“瓶颈带宽”(Bottleneck Bandwidth)和“往返时间”(Round-trip Time)来控制发送速率。与传统的基于丢包的拥塞控制算法(如 Reno、Cubic)不同,BBR 不依赖于丢包作为网络拥塞的信号,而是尝试主动探测网络的最佳发送速率,从而在不造成大量丢包的情况下充分利用网络带宽。

注意

并非所有情况下开启 BBR 都会获得更好的传输效率。在低延迟、高带宽的网络中, BBR 效果可能不那么明显甚至可能会带来额外的开销。

以下是使用记录:

首先 uname -r 查看内核是否在 4.9 以上。
执行 lsmod | grep bbr,如果结果中没有 tcp_bbr 则执行:


modprobe tcp_bbr
echo "tcp_bbr" |  tee --append /etc/modules-load.d/modules.conf


echo "net.core.default_qdisc=fq" |  tee --append /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" |  tee --append /etc/sysctl.conf

使用 sysctl -p 从配置文件加载内核参数使其立即生效。

验证设置是否生效:

执行:

sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

如果结果都有 bbr ,说明开启成功。执行 lsmod | grep bbr,看到有 tcp_bbr 模块即说明 BBR 已启动。