Linode开启Google BBR


熟悉科学上网的同学可能会知道,由于境内外网络环境复杂,延迟高、丢包率高,许多基于TCP协议的翻墙工具会存在传输速度低且不稳定的问题。这在很大程度上是因为,TCP协议可以使用多种拥塞控制算法,而最常用的CUBIC算法存在着无法全速发送数据、易被丢包干扰、容易产生锯齿状波动等问题。因此,各种TCP单边加速工具层出不穷,如锐速(Appex)、ZetaTCP。但这些工具需要较高的运行权限且大部分是收费使用并不开源,因此从安全、成本和可靠性的角度会让使用者有更多顾虑。
好在,2016年09月,Google向Linux Kernel提交了Google BBR的Pull Request。Google BBR是一种新的TCP拥塞控制算法,在Google的内部广域网(B4)中已经进行了广泛的测试,该算法可以充分利用网络带宽,特别是可以在20%以内丢包率下保持较高的带宽。 bbr 下面介绍下如何在Linode上开启Google BBR加速。 1、进入Linode管理后台,点击VPS操作系统的“Edit”链接进入编辑界面: 在编辑界面修改“Boot Settings”中的“Kernel”选项,只要是4.9.0及其以上的内核都是支持Google BRR的: 保存之后重启VPS。

2、重启完成后,使用SSH登录VPS,执行以下命令

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

再执行如下命令

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

如果得到类似这样的输出: 如果结果都有bbr, 则证明你的内核已开启BBR。

在别的教程中有提到使用lsmod |grep bbr来判断BBR是否打开,但是在linode上执行这个命令是不会得到输出的。 网上找到一种说法:

Linode自带的内核都是把模块都编译一块的,所以lsmod里看不到正常,lsmod是看额外加载的模块的。

应该就是这样了。