iTimothy

为VPS开启BBR拥塞控制算法

最后更新日期:2017.09.20

BBR是来自于Google的黑科技,目的是通过优化和控制TCP的拥塞,充分利用带宽并降低延迟,起到神奇般的加速效果。 在BBR之前,比较有名的就是国产的锐速了,不过,由于锐速是个国产的闭源软件,所以一直纠结不想装在VPS上。正好,BBR的出现,又成为一个可供折腾的对象。

BBR 这个特性其实是在 Linux 内核 4.9 才计划加入的。所以,要开启BBR,需要内核版本在Linux kernel 4.9以上。下面纪录一下如何升级Linux内核,并且开启BBR:

Debian 8 / Ubuntu 14 / Ubuntu 16

友情提示:如果安装最新的Ubuntu 17版本,有可能内核已经为4.10了,可以不用再升级内核了

下载最新内核,最新内核查看这里

1
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.11.4/linux-image-4.11.4-041104-generic_4.11.4-041104.201706071003_amd64.deb
  • 安装内核
1
dpkg -i linux-image-4.*.deb
  • 清理不用的旧内核(可选)
1
apt-get autoremove
  • 更新 grub 系统引导文件并重启
1
2
update-grub
reboot

CentOS 7

  • 下载更换内核
    最新内核查看这里
1
2
3
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml -y
  • 查看内核是否安装成功
1
rpm -qa | grep kernel
  • 删除旧内核(可选)
1
rpm -ev 旧内核
  • 更新 grub 系统引导文件并重启
1
2
3
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
grub2-set-default 0 #default 0表示第一个内核设置为默认运行, 选择最新内核就对了
reboot
  • 注意,某些服务商(如Digital Ocean)可能需要首先将VPS配置为可自定义内核,然后grub2的配置才会生效。

开启BBR

开机后 uname -r 看看是不是内核4.9、4.10或4.11

执行 lsmod | grep bbr,如果结果中没有 tcp_bbr 的话就先执行

1
2
modprobe tcp_bbr
echo "tcp_bbr" >> /etc/modules-load.d/modules.conf

执行

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

保存生效
sysctl -p

执行

1
2
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

如果结果都有bbr, 则证明你的内核已开启bbr。看到有 tcp_bbr 模块即说明bbr已启动,这样,就可以开始体验Google的黑科技加速了……

搬瓦工VPS开启BBR的新姿势

搬瓦工的VPS预装系统里面,有的模板已经自带了BBR了,也就是说,你也不需要额外的配置了,选择这种带BBR的预装系统,就能直接启用BBR加速了:

最后,用Google Cloud台湾和搬瓦工CN2的主机试了一下,上油管,1080P不卡,1440P也不卡,速度快到飞起!很棒!

支持原创技术分享,据说打赏我的人,都找到了女朋友!