更换内核启用 BBR
Table of Contents

BBR 是 Google 开发的 TCP 拥塞控制算法,作为一项新技术可以在代理连接中有效地改善中国鬼畜的网络状况,并可取代过去常被使用的诸多通过暴力发包对网络公平性造成不良影响的单/双边 TCP 加速软件如 ZetaTCP(ServerSpeeder 马甲)、net-speeder、FinalSpeed 等。

BBR 自 Linux kernel 4.9 开始以 mod 的形式集成于内核中,故通常以替换内核的方式达成启用 tcp_bbr 的目的,本文以 KVM 平台下的 Ubuntu 为例说明。

替换内核

Ubuntu Kernel 页面下载最新版内核包,本文写作时最新非 RC 版内核为 v4.10.3:

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.3/linux-image-4.10.3-041003-generic4.10.3-041003.201703142331amd64.deb

安装内核:

$ dpkg -i linux-image-*.deb

查看旧内核并将其卸载:

$ dpkg -l | grep linux-image
$ apt purge linux-image-4.4.0-66-generic

刷新 grub 引导并重启:

$ update-grub
$ reboot

启用 tcp_bbr

SSH 连接到主机时检查是否成功更换内核,执行下面命令开启 tcp_bbr:

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

完成后执行以下命令检查 tcp_bbr 是否正常启用:

$ sysctl net.ipv4.tcp_available_congestion_control
$ sysctl net.ipv4.tcp_congestion_control
$ lsmod | grep bbr

若均有显示 tcp_bbr 字样则表示 BBR 已经工作。