BBR (Bottleneck Bandwidth and RTT) 是 Google 提供的 TCP 拥塞控制算法,适用于复杂网络环境下的 TCP 加速。
首先需要准备的条件
- Debian 8.x 或者 Debian 9.x 系统,当然也适合 Ubuntu 14.04 或 Ubuntu 16.04
- 如果是虚拟机,那么得使用 KVM 或 Xen 等可以修改内核的平台
- 如果不是新的机器,请事先做好备份,因为内核万一挂了机器启动不起来是一件及其麻烦的事情
升级内核
BBR 只支持 4.9.x 以上的内核,所以我们需要更新升级以下
如果你使用的是 Debian 9.x,那么这一步可以直接跳过,其他三个内核版本较旧的系统,我们可以使用 Ubuntu 打包好的内核安装包
首先,找到 4.9.x 以上版本的稳定内核,这里我们推荐使用 LTS 版本,目前最新的是 4.9.40 下载安装即可
mkdir kernel-tmp && cd kernel-tmp
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.40/linux-headers-4.9.40-040940_4.9.40-040940.201707271932_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.40/linux-headers-4.9.40-040940-generic_4.9.40-040940.201707271932_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.40/linux-image-4.9.40-040940-generic_4.9.40-040940.201707271932_amd64.deb
sudo dpkg -i *.deb
安装完以后直接 reboot 重启,一切顺利的话请检查以下当前的内核版本
root@debian ~ # uname -r
4.9.0-3-amd64
写入配置文件
直接修改 /etc/sysctl.conf 文件即可
cat >> /etc/sysctl.conf << EOF
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF
然后使用 sysctl -p 命令让内核配置生效,不出意外,应该会提示
root@debian ~ # sysctl -p
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
此时可以使用 lsmod | grep bbr 命令检查 BBR 是否已正确开启
root@debian ~ # lsmod | grep bbr
tcp_bbr 16384 61
如果出现 tcp_bbr 字样则说明没有问题。