update: 17.9.14
对于 BBR 加速写了一个自动安装脚本,放在 GitHub 上,有兴趣可以去看一看: https://github.com/xlui/AutoInstall/tree/master/BBR
ssh 配置服务器免密登录
参考:SSH 公钥验证远程登录
服务器安装 ss
- CentOS 下载 ss 一键安装脚本
1 | wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh |
- Debian 下载 ss 一键安装脚本
1 | wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev-debian.sh |
- 添加运行权限
1 | chmod +x shadowsocks.sh |
- 开始安装
1 | ./shadowsocks.sh 2>&1 | tee shadowsocks.log |
- 修改 ss 配置文件
1 | vim /etc/shadowsocks.json |
- 启动ss、设置 ss 开机启动
1 | systemctl start shadowsocks |
升级内核到最新版本
- 首先升级内核到支持BBR的版本
导入公钥
1 | rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org |
安装 elrepo 源
1 | rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm |
安装最新内核
1 | yum --enablerepo=elrepo-kernel install kernel-ml -y |
更新 grub 的配置文件
1 | grub2-mkconfig -o /boot/grub2/grub.cfg |
查看可用的启动项
1 | cat /boot/grub2/grub.cfg |grep CentOS |
验证刚才的设置
1 | grub2-editenv list |
重新生成 grub2 配置文件
1 | grub2-mkconfig -o /boot/grub2/grub.cfg |
重启
1 | reboot |
开启BBR加速
重启之后查看系统内核版本
1 | uname -a |
开启BBR
1 | echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf |
验证BBR是否开启
1 | sysctl net.ipv4.tcp_available_congestion_control |
CentOS 配置不更新内核
因为我们使用了比较新的内核,而 CentOS 默认使用旧的内核,如果有内核更新,可能重启后会重新使用旧的内核从而导致BBR无效,所以我们还需要配置使 yum 更新时不更新内核:
1 | vim /etc/yum.conf |