在租用国外VPS的时候,由于地理位置距离中国较远,访问和下载速度受限,安装BBR加速功能就是比较好的方法之一。有人会问BBR是什么?BBR是Google提出的一种新型拥塞控制算法,可使得Linux系统服务器显著地提高吞吐量和减少TCP连接的延迟,能够显著国外VPS访问和下载速度。什么叫拥塞?就是数据包丢包,传统拥塞控制算法,当出现拥塞时,会使发送数据窗口大幅减少,导致数据传送效率急剧降低,国内云网络一般丢包率很低,开不开bbr,理论上影响不大,bbr对国际线路提升比较明显,国际线路丢包特别严重,因此需要安装BBR开启加速功能。

虽然现在很多美国主机商也都支持一键安装BBR加速功能,但总体来看还是占少数。常用的加速策略包括Google BBR TCP加速,以及在其基础上发展而来的BBR魔改版、暴力BBR、BBRplus,以及锐速加速等。本文老刘博客就给大家分享一个VPS加速脚本,可以一键安装并开启这些加速策略,这里会以一台UCloud的华盛顿通用型云主机来演示。

安装环境:

1、系统支持:CentOS 6+、Debian 7+,Ubuntu 12+。

2、虚拟构架: KVM、Xen、VMware ,OpenVZ 不支持。

3、BBR和锐速不能同时安装,一个是升级内核,一个是降级内核。

4、系统内核最低要求是4.9。

脚本命令:

wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh"
chmod +x tcp.sh
./tcp.sh

这是脚本的面板,最下面一行是VPS当前的加速内核和加速策略,所以如果我们需要开启某种加速,需要先安装对应的内核,再开启对应的管理,最后看看加速是否开启成功。

这里以BBR加速为例,先输入1安装BBR/BBR魔改版内核,之后再次使用脚本输入4即可开启BBR加速,以下是完整步骤:

[root@10-27-186-90 ~]# wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh"
--2021-02-07 23:46:55--  https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.192.133, 151.101.0.133, 151.101.64.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.192.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 24274 (24K) [text/plain]
Last-modified header missing -- time-stamps turned off.
--2021-02-07 23:46:55--  https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh
Reusing existing connection to raw.githubusercontent.com:443.
HTTP request sent, awaiting response... 200 OK
Length: 24274 (24K) [text/plain]
Saving to: ‘tcp.sh’

100%[=====================================================================================================================================================>] 24,274      --.-K/s   in 0s      

2021-02-07 23:46:55 (51.1 MB/s) - ‘tcp.sh’ saved [24274/24274]

[root@10-27-186-90 ~]# chmod +x tcp.sh
[root@10-27-186-90 ~]# ./tcp.sh
 TCP加速 一键安装管理脚本 [v1.3.2]
  -- 就是爱生活 | 94ish.me --
  
 0. 升级脚本
————————————内核管理————————————
 1. 安装 BBR/BBR魔改版内核
 2. 安装 BBRplus版内核 
 3. 安装 Lotserver(锐速)内核
————————————加速管理————————————
 4. 使用BBR加速
 5. 使用BBR魔改版加速
 6. 使用暴力BBR魔改版加速(不支持部分系统)
 7. 使用BBRplus版加速
 8. 使用Lotserver(锐速)加速
————————————杂项管理————————————
 9. 卸载全部加速
 10. 系统配置优化
 11. 退出脚本
————————————————————————————————

 当前状态: 已安装 Lotserver(锐速) 内核 , 未安装 BBR 加速内核

 请输入数字 [0-11]:1
Loaded plugins: fastestmirror
kernel-ml-4.11.8.rpm                                                                                                                                                    |  41 MB  00:00:05     
Examining /var/tmp/yum-root-9rQTjZ/kernel-ml-4.11.8.rpm: kernel-ml-4.11.8-1.el7.elrepo.x86_64
/var/tmp/yum-root-9rQTjZ/kernel-ml-4.11.8.rpm: does not update installed package.
Error: Nothing to do
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package kernel-ml-headers.x86_64 0:4.11.8-1.el7.elrepo will be erased
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================================================================================================
 Package                                           Arch                                   Version                                              Repository                                 Size
===============================================================================================================================================================================================
Removing:
 kernel-ml-headers                                 x86_64                                 4.11.8-1.el7.elrepo                                  installed                                 4.0 M

Transaction Summary
===============================================================================================================================================================================================
Remove  1 Package

Installed size: 4.0 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Erasing    : kernel-ml-headers-4.11.8-1.el7.elrepo.x86_64                                                                                                                                1/1 
  Verifying  : kernel-ml-headers-4.11.8-1.el7.elrepo.x86_64                                                                                                                                1/1 

Removed:
  kernel-ml-headers.x86_64 0:4.11.8-1.el7.elrepo                                                                                                                                               

Complete!
Loaded plugins: fastestmirror
kernel-ml-headers-4.11.8.rpm                                                                                                                                            | 1.1 MB  00:00:00     
Examining /var/tmp/yum-root-9rQTjZ/kernel-ml-headers-4.11.8.rpm: kernel-ml-headers-4.11.8-1.el7.elrepo.x86_64
Marking /var/tmp/yum-root-9rQTjZ/kernel-ml-headers-4.11.8.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package kernel-ml-headers.x86_64 0:4.11.8-1.el7.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================================================================================================
 Package                                       Arch                               Version                                          Repository                                             Size
===============================================================================================================================================================================================
Installing:
 kernel-ml-headers                             x86_64                             4.11.8-1.el7.elrepo                              /kernel-ml-headers-4.11.8                             4.0 M

Transaction Summary
===============================================================================================================================================================================================
Install  1 Package

Total size: 4.0 M
Installed size: 4.0 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : kernel-ml-headers-4.11.8-1.el7.elrepo.x86_64                                                                                                                                1/1 
  Verifying  : kernel-ml-headers-4.11.8-1.el7.elrepo.x86_64                                                                                                                                1/1 

Installed:
  kernel-ml-headers.x86_64 0:4.11.8-1.el7.elrepo                                                                                                                                               

Complete!
Loaded plugins: fastestmirror
kernel-ml-devel-4.11.8.rpm                                                                                                                                              |  11 MB  00:00:00     
Examining /var/tmp/yum-root-9rQTjZ/kernel-ml-devel-4.11.8.rpm: kernel-ml-devel-4.11.8-1.el7.elrepo.x86_64
/var/tmp/yum-root-9rQTjZ/kernel-ml-devel-4.11.8.rpm: does not update installed package.
Error: Nothing to do
检测到 0 个其余内核,开始卸载...
--nodeps -e 内核卸载完毕,继续...
[注意] 重启VPS后,请重新运行脚本开启BBR/BBR魔改版
需要重启VPS后,才能开启BBR/BBR魔改版,是否现在重启 ? [Y/n] :Y
[信息] VPS 重启中...
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(152.32.182.36) at 12:48:38.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 
#再次登录一次VPS
Connecting to 152.32.182.36:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

WARNING! The remote SSH server rejected X11 forwarding request.
Last failed login: Sun Feb  7 23:49:09 EST 2021 from 107.150.120.125 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Sun Feb  7 23:36:23 2021 from 107.150.120.125
[root@10-27-186-90 ~]# ./tcp.sh
 TCP加速 一键安装管理脚本 [v1.3.2]
  -- 就是爱生活 | 94ish.me --
  
 0. 升级脚本
————————————内核管理————————————
 1. 安装 BBR/BBR魔改版内核
 2. 安装 BBRplus版内核 
 3. 安装 Lotserver(锐速)内核
————————————加速管理————————————
 4. 使用BBR加速
 5. 使用BBR魔改版加速
 6. 使用暴力BBR魔改版加速(不支持部分系统)
 7. 使用BBRplus版加速
 8. 使用Lotserver(锐速)加速
————————————杂项管理————————————
 9. 卸载全部加速
 10. 系统配置优化
 11. 退出脚本
————————————————————————————————

 当前状态: 已安装 BBR 加速内核 , 未安装加速模块

 请输入数字 [0-11]:4
[信息]:清除加速完成。
kernel.msgmnb = 65536
kernel.msgmax = 65536
net.ipv6.conf.all.disable_ipv6 = 1
kernel.unknown_nmi_panic = 0
kernel.sysrq = 1
vm.swappiness = 10
fs.inotify.max_user_watches = 10000000
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
fs.inotify.max_queued_events = 327679
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.neigh.default.gc_thresh1 = 2048
net.ipv4.neigh.default.gc_thresh2 = 4096
net.ipv4.neigh.default.gc_thresh3 = 8192
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
[信息]BBR启动成功!
[root@10-27-186-90 ~]# ./tcp.sh

 TCP加速 一键安装管理脚本 [v1.3.2]
  -- 就是爱生活 | 94ish.me --
  
 0. 升级脚本
————————————内核管理————————————
 1. 安装 BBR/BBR魔改版内核
 2. 安装 BBRplus版内核 
 3. 安装 Lotserver(锐速)内核
————————————加速管理————————————
 4. 使用BBR加速
 5. 使用BBR魔改版加速
 6. 使用暴力BBR魔改版加速(不支持部分系统)
 7. 使用BBRplus版加速
 8. 使用Lotserver(锐速)加速
————————————杂项管理————————————
 9. 卸载全部加速
 10. 系统配置优化
 11. 退出脚本
————————————————————————————————

 当前状态: 已安装 BBR 加速内核 , BBR启动成功

 请输入数字 [0-11]:9
[信息]:清除加速完成。
[root@10-27-186-90 ~]# 

这个脚本也支持卸载加速策略,如果你想用其他加速方法,只需要输入./tcp.sh重新使用脚本,输入9卸载全部加速之后重新安装内核、开启其他加速即可。

这里注意,如果你的系统是centos 8,不要安装以上脚本了,因为CentOS 8 默认内核版本为 4.18.x,内核版本高于 4.9 就可以直接开启 BBR:

#开启BBR
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
#保存退出后,执行下边的命令使配置生效
sysctl -p
#检查 BBR 是否开启成功
sysctl -n net.ipv4.tcp_congestion_control
lsmod | grep bbr

选择多了,有些人可能就有选择困难症,是BBR加速好还是锐速好?是原版BBR加速好还是BBR魔改版好?这个问题的答案确实因人而异,VPS不同的使用用途可能适合不同的加速策略,一般我都是直接用原版BBR,UCloud华盛顿VPS自带使用了锐速加速。

最后,如果大家嫌以上安装过程复杂的话,可以考虑选择Vultr云服务器VPS:《Vultr新用户注册获赠$50或$100账户余额方法附Vultr便宜vps方案整理》,支持一键安装BBR加速功能,非常方便,而且现在购买新用户还赠送100美元。