内核版本 4.9 以上的 Linux 系统开启/关闭 BBR 的方法

了解计算机网络的人都知道,在 TCP 连接中,为了维持连接的可靠性,引入了拥塞控制和流量管理的方法。

而 BBR 就是一项由 Google 开源的 TCP 拥塞控制算法,在网络优化、加速等方面都有着极其可观的效果,某种程度上来说也可以算是一大神器了。

下面就来介绍一下怎么在 Linux 系统下开启和关闭 BBR 吧。

内核版本确定

从 Linux 4.9 版本开始,TCP BBR 就已经成为了 Linux 系统内核的一部分。因此,开启 BBR 的首要前提就是当前系统内核版本大于等于 4.9。

查看当前内核版本:

1
uname -r

只有返回的值大于等于 4.9 时才可以进行下一步操作,否则需要先手动将内核版本升级至 4.9 以上(这里不再赘述)

开启 BBR

整个开启过程其实很简单,在特定文件中写入几行配置就行了。

修改系统配置

使用 echo 写入配置:

1
2
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

保存生效

修改完之后需要保存才能生效:

1
sysctl -p

验证开启状态

操作完后最好验证一下 BBR 是否正常开启并启动。

查看内核开启情况

1
sysctl net.ipv4.tcp_available_congestion_control

显示内容如下,包含含“bbr”字样则 BBR 已正常开启

1
2
# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno

查看 BBR 是否启动

1
lsmod | grep bbr

显示如下则已启动成功(后面的数字不一定跟我这里一样)

1
2
# lsmod | grep bbr
tcp_bbr 20480 14

关闭 BBR

前面开启 BBR 时我们写入了两行配置,关闭 BBR 只需要将这两行配置删掉即可。编辑 /etc/sysctl.conf 文件:

1
vim /etc/sysctl.conf

移动光标至文件最底端(vim 编辑器在普通模式下输入一个 G 即可跳转到文件结尾),将如下两行配置删除(前面开启 BBR 时添加的):

1
2
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

保存文件并退出后我们需要重新加载一下配置:

1
sysctl -p

最后再重启一下系统(必须)就会发现 BBR 已经关闭啦!你可以用上面“验证开启状态”步骤中的命令测试一下,已经没有“bbr”字样了。