最近总在折腾. 之前在 rectified 买了一个年付 9.6 刀的 128MB KVM 架构的小 VPS, 其实它的线路本身就不错, 直连国内电信和联通的洛杉矶鲨鱼机房, 现在已经卖断货了. 为了在这个小内存的 VPS 上搭建一个完美的梯子, 我使用了使用 Google BBR 的全新内核.
预备知识
在使用 Google BBR 之前, 我们首先要了解它是什么 https://github.com/google/bbr . 了解计算机网络的人都知道, 在 TCP 连接中, 由于需要维持连接的可靠性, 引入了拥塞控制和流量管理的方法. Google BBR 就是谷歌公司提出的一个开源 TCP 拥塞控制的算法. 在最新的 Linux 4.9 及以上的内核版本中已被采用. 对于该算法的分析, 这里有一篇文章值得一读. 在本人的网络环境 (武汉电信 20MB) 测试下, ss 不经过其它的任何的优化就能轻松的跑满带宽.(speedtest 测试或 https://fast.com/ 测试). 由于 Google BBR 非常新, 任何低于 4.9 的 Linux 内核版本都需要升级到 4.9 及以上才能使用, 故若 VPS 本身内核版本较低的话, 只有 KVM 架构的 VPS 才能使用本教程升级内核并使用, openvz 的 VPS 用户若内核版本较低则无法使用!
实施过程
基础方法
最简单的方法就是使用 Google BBR 一键安装脚本.
使用 root 用户登录, 运行以下命令:
- wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
- chmod +x bbr.sh
- ./bbr.sh
安装完成后, 脚本会提示需要重启 VPS, 输入 y 并回车后重启.
重启完成后, 进入 VPS, 验证一下是否成功安装最新内核并开启 TCP BBR, 输入以下命令:
uname -r
查看内核版本, 含有 4.9 就表示 OK 了
sysctl.NET.ipv4.tcp_available_congestion_control
返回值一般为:
- net.ipv4.tcp_available_congestion_control = bbr cubic reno
- sysctl.NET.ipv4.tcp_congestion_control
返回值一般为:
- net.ipv4.tcp_congestion_control = bbr
- sysctl.NET.core.default_qdisc
返回值一般为:
- net.core.default_qdisc = fq
- lsmod | grep bbr
返回值有 tcp_bbr 模块即说明 bbr 已启动.
进阶方法 推荐!
由于一键包会进行很多很多判断和处理, 而其中有很多步骤可以用更高的效率手工实现.
升级内核对于 CentOS 用户, 请执行如下命令:
yum --enablerepo=elrepo-kernel -y install kernel-ml kernel-ml-devel
对于 CentOS 6, 执行:
sed -i 's/^default=.*/default=0/g' /boot/grub/grub.conf
对于 CentOS 7, 执行:
grub2-set-default 0
而对于 Debian / Ubuntu 系统, 可以在 Ubuntu Kernel http://kernel.ubuntu.com/~kernel-ppa/mainline/ 上下载最新版的内核 deb 安装包.
对于 64 位系统, 下载 amd64 的 Linux-image 中含有 generic 的 deb 包,
对于 32 位系统, 下载 i386 的 Linux-image 中含有 generic 的 deb 包.
安装命令:
dpkg -i xxxxxxxxxx.deb
安装完后执行:
/usr/sbin/update-grub
升级完后请立即重启 VPS reboot
启用 Google BBR 写入配置文件
- echo "net.core.default_qdisc=fq">> /etc/sysctl.conf
- echo "net.ipv4.tcp_congestion_control=bbr">> /etc/sysctl.conf
保存配置文件
sysctl -p
输入以下命令以检查是否成功
sysctl.NET.ipv4.tcp_available_congestion_control
若返回
net.ipv4.tcp_available_congestion_control = bbr cubic reno
则说明开启成功.
后记
目前, 常见的加速方式有 Finalspeed(tcpspeed),Kcptun, 锐速等单双边加速工具. Google BBR 的优势就在于, 其能单边地从 TCP 连接的拥塞控制算法着手解决网络加速的问题, 并且已经集中到内核中成为新一代的规范, 没有其他对于系统性能的开销. 并且, 可以配合锐速, Finalspeed 等使用以达到最佳的使用效果. 关于 Finalspeed 的使用教程可参见《网络环境的科学主义现代化改造》.
参考资料:
一键安装最新内核并开启 BBR 脚本 https://teddysun.com/489.html
- # 为 VPS 加速度# Debian/Ubuntu 安装 bbr 教程
- TCP BBR Quick-Start: Building and Running TCP BBR on Google Compute Engine
来源: http://www.mzh.ren/google-bbr-vps.html