centos/ubuntu/debia...
 
Notifications
Clear all

centos/ubuntu/debian手动启用BBR的方法

1 Posts
1 Users
0 Likes
2,622 Views
(@taichi)
Member
Joined: 4 years ago
Posts: 408
Topic starter  

BBR 可以加速TCP,尽可能跑满带宽, 并且尽量不要有排队的情况。在网络环境较差的情况下,使用BBR有比较好的效果。

Linux 内核 4.9及以上才能启用BBR。如果版本过低,需先升级内核。

下面的教程为先升级内核再开启BBR。

(BBR还有一些第三方修改版、暴力版,这里就不列举了)


Debian 8+ / Ubuntu 14.04

下载最新内核,最新内核查看http://kernel.ubuntu.com/~kernel-ppa/mainlin e" target="_blank" rel="noopener">这里

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.16/linux-image-4.16.0-041600-generic_4.16.0-041600.201804012230_amd64.deb

安装内核

dpkg -i linux-image-4.*.deb

删除旧内核(可选)

dpkg -l | grep linux-image
apt-get purge

更新 grub 系统引导文件并重启

update-grub
reboot

Ubuntu 16.04

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

apt install --install-recommends linux-generic-hwe-16.04

删除旧内核(可选)

apt autoremove

Ubuntu 18.04(完整过程)

Ubuntu 18的内核很新,已经支持bbr,直接用下面的命令开启

修改系统变量

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

保存生效

sysctl -p

查看内核是否已开启BBR

sysctl net.ipv4.tcp_available_congestion_control

显示以下即已开启:

net.ipv4.tcp_available_congestion_control = bbr cubic reno

查看BBR是否启动

lsmod | grep bbr

显示以下即启动成功:

tcp_bbr               20480  8

CentOS 6

下载更换内核
最新内核查看这里

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

查看内核是否安装成功

rpm -qa | grep kernel

删除旧内核(可选)

rpm -ev

更新 grub 系统引导文件并重启

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

开不了机的打开 vps 后台控制面板的 vnc, 开机卡在 grub 引导, 只需要手动选择内核就可以了

安装完成后不要忘记修改 /boot/grub/menu.lst 和 /etc/grub.conf,将这两个文件中旧内核的启动项删除即可避免无法重启的问题。

更新到最新版内核

yum --enablerepo=elrepo-kernel update -y
reboot

CentOS 7

下载更换内核
最新内核查看这里

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml -y

查看内核是否安装成功

rpm -qa | grep kernel

删除旧内核(可选)

rpm -ev

更新 grub 系统引导文件并重启

egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
grub2-set-default 0           # default 0 表示第一个内核设置为默认运行, 选择最新内核就对了
reboot

注意,某些服务商(如 Digital Ocean)可能需要首先将 VPS 配置为可自定义内核,然后 grub2 的配置才会生效。
重新启动后,如果会出现 “read-only file system” 的错误,root账户下执行 mount -o remount rw / 即可

更新到最新版内核
方法同 CentOS 6


启用BBR

开机后 uname -r 看看是不是内核 >= 4.9

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

modprobe tcp_bbr
echo "tcp_bbr" | sudo tee --append /etc/modules-load.d/modules.conf

执行

echo "net.core.default_qdisc=fq" | sudo tee --append /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee --append /etc/sysctl.conf

保存生效

sysctl -p

查询

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

如果结果都有 bbr, 则证明你的内核已开启 bbr

执行 lsmod | grep bbr, 看到有 tcp_bbr 模块即说明 bbr 已启动


 

参考自:

https://www.moerats.com/archives/612 /" target="_blank" rel="noopener"> https://www.moerats.com/archives/612/

https://github.com/iMeiji/shadowsocks_install/wiki/%E5%BC%80%E5%90%AFTCP-BBR%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6%E7%AE%97%E6%B3%9 5" target="_blank" rel="noopener">开启TCP BBR拥塞控制算法

相关链接:

BBR一键脚本整理(shadowsocks加速)


   
Quote
Share: