Linux 系统开启 BBR

   Updated: 2021-10-16 22:14       Linux 系统开启 BBR有 1 条评论

注意:某些系统下安装 BBR 会切换系统内核,切换后多半会导致失联

BBR 是什么?

BBR 是 Google 提出的一种新型拥塞控制算法,可以使 Linux 服务器显著地提高吞吐量和减少 TCP 连接的延迟。Google 已经开源了该算法,从 Linux 内核 4.9 开始,已经默认编译了 BBR 模块,可以直接通过参数开启 BBR。

BBR 解决了两个问题:

  1. 在有一定丢包率的网络链路上充分利用带宽。非常适合高延迟,高带宽的网络链路。
  2. 降低网络链路上的 buffer 占用率,从而降低延迟。非常适合慢速接入网络的用户。

开启 BBR

如果 Linux Kernel 内核版本低于 4.9,需要先安装 BBR 再开启 BBR;Linux Kernel 内核为 4.9 及以上版本,已经默认编译了 TCP BBR 模块,所以可以直接通过参数开启 BBR 加速。

查看内核版本:

uname -r

CentOS 7

CentOS 7 内核低于 4.9,需要先安装 BBR,再开启。CentOS 8,默认也已经安装了 BBR。

1、SSH 登录 VPS

2、获取 root 权限:

sudo -i

3、运行加速脚本:

wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh

根据提示安装并启用 BBR Plus(中间某些步骤可能需要重启 VPS 才能生效)。

如果提示命令不能运行,先 yum -y install wget 安装 wget。

遇到/boot/grub/grub.conf not found 和 /boot/grub2/grub.cfg not found 错误的解决方法:解决/BOOT/GRUB/GRUB.CONF NOT FOUND 和 /BOOT/GRUB2/GRUB.CFG NOT FOUND 问题

CentOS 8、Ubuntu 16 等

Ubuntu 18.04 默认的内核就是 4.15 版本,Ubuntu 20.04 默认的内核是 5.4 版本。

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

# 执行如下语句,输出应为 net.ipv4.tcp_available_congestion_control = bbr cubic reno
sudo sysctl net.ipv4.tcp_available_congestion_control

# 执行如下语句,输出应为 bbr
sudo sysctl -n net.ipv4.tcp_congestion_control

# 执行如下语句,返回值有 tcp_bbr 模块即说明 bbr 已启动!
lsmod | grep bbr

故障

开启 BBR 后可能导致之前搭建的网络服务(如 Trojan)不可用,原因一般为防火墙原因。开启 BBR 后,可能会导致 Firewalld 自动停止。

# 启动 firewall
systemctl start firewalld
# 设置开机自启
systemctl enable firewalld
# 查看已放行的端口
firewall-cmd --zone=public --list-ports

参考链接

1 comment on “Linux 系统开启 BBR

  1. Pingback: Oracle Cloud VPS | 盆盆罐罐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注