Debian 8+ / Ubuntu 14.04

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

1
2
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.163/linux-headers-4.9.163-0409163_4.9.163-0409163.201903131846_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.163/linux-image-4.9.163-0409163-generic_4.9.163-0409163.201903131846_amd64.deb

安装内核

1
$ dpkg -i linux-*-4.9.163-*.deb

删除旧内核(可选)

1
2
$ dpkg -l | grep linux
$ apt purge <旧内核>

更新 Grub 引导文件并重起

1
2
$ update-grub
$ reboot

Ubuntu 16.04

安装 Hardware Enablement Stack (HWE),自动更新内核

1
$ apt install --install-recommends linux-generic-hwe-16.04 -y

删除旧内核

1
$ apt autoremove -y

CentOS 6

下载安装最新的内核

1
2
3
$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
$ rpm -Uvh https://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
$ yum --enablerepo=elrepo-kernel install kernel-ml -y

查看内核是否安装成功

1
$ rpm -qa | grep kernel

删除旧内核

1
$ rpm -ev <旧内核>

更新 Grub 引导文件并重启

1
2
$ sed -i 's:default=.*:default=0:g' /etc/grub.conf
$ reboot

升级到最新版本的内核(以后)

1
2
$ yum --enablerepo=elrepo-kernel update -y
$ reboot

CentOS 7

下载安装最新的内核

1
2
3
$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
$ rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.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
$ reboot

更新到最新版内核(以后)

1
2
$ yum --enablerepo=elrepo-kernel update -y
$ reboot

启用 BBR

检查内核版本

1
$ uname -r

看看内核是不是大于等于 4.9

加载 BBR 模块

1
2
$ modprobe tcp_bbr
$ echo "tcp_bbr" | tee -a /etc/modules-load.d/modules.conf

配置 BBR 信息

1
2
$ echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
$ echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf

保存生效

1
$ sysctl -p

检查

  • 如果执行结果都带有 bbr,则表明内核已开启 BBR

    1
    2
    $ sysctl net.ipv4.tcp_available_congestion_control
    $ sysctl net.ipv4.tcp_congestion_control
  • 如果有看到 tcp_bbr 模块则表明 BBR 已启动

    1
    $ lsmod | grep bbr