在国外的服务器上因为受各种因素影响,即使国外的服务器都是百兆共享或者G口到国内下载速度都不是很让人满意,大部分人购买国外服务器是用作存储下载或者扶墙,速度慢的所以话影响我们的使用体验。所以就搞出了很多加速的方法,本文以Linux为例,总结一下现有的加速方法,同时提供一个新事物–BBR加速器。

一、Kvm/Xen/Vmware/独立服务器的加速

1.锐速 ServerSpeeder

KVM这些加速比较容易,他们可以使用锐速来优化网络。锐速是一种单边加速器,加速TCP来实现速度的提升,他和后文提到的BBR加速一样使用单边拥塞控制算法来实现。锐速有一个好处是无需客户端,安装后可以优化扶墙、文件下载、网站速度,对于拿国外机器扶墙、存储和做站的非常实用。

关于锐速、BBR的加速可以参考本篇文章,非常专业和详细:http://blog.csdn.net/dog250/article/details/52830576

有条件的可以观看这个视频:https://www.youtube.com/watch?v=hIl_zXzU3DA

锐速因为有企业用户所以是闭源的,在去年一直是提供免费版使用,免费版加速为20Mbps,足够一般人使用。但是因为一些原因,锐速不再提供免费版,只有收费版还在销售。高手在民间,很快就有人搞出了Linux的破解版,破解时间和带宽限制,目前普遍用的人多的一般为91yun的版本,作者文章:https://www.91yun.org/archives/683

适配了大部分版本,只要是锐速有的都能支持,锐速比较依赖内核,如果你的Linux系统内核太新或者太旧就需要换内核,一般VPS都可以更换成功。CentOS可以参考该文章:http://www.91yun.org/archives/795

篇幅有限,就提供一下锐速的一键安装:

wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/serverspeeder/master/serverspeeder-all.sh && bash serverspeeder-all.sh

如果出现选择版本和内核随便选一个接近的就行,如果好几个选项都一样随便选择一个就行。

2.云语加速 Flash TCP

云语加速其实和锐速基本差不多的原理,只不过一直是收费售卖的,安装简单,效果和锐速一样。现在有一个长期的活动,不知道什么时候结束,免费20M加速。

官方地址:http://www.cloudtalkers.com/?page_id=405

安装方法和授权获取官网已经说的很明白,因为效果和锐速一样就不再过多阐述。

二、OpenVZ加速

OpenVZ无法享受锐速那种加速器,但是仍然有几款加速可以来优化。

1.Net-speeder

net-speeder项目地址:https://github.com/snooda/net-speeder

net-speeder可以适应多个系统,例如知名的搬瓦工、Virmach都能使用这个加速器,不过该加速器的原理暴力简单,就是双倍发包,这样可以减少丢包数量,但是发包过多容易被严格的主机商察觉封机,还有就是相当于流量少了一半,有些流氓但是确实很有效。

net-speeder支持主流Linux系统,同时支持OVZ、Xen、KVM多个架构。

安装方法:

CentOS:

wget --no-check-certificate https://gist.github.com/LazyZhu/dc3f2f84c336a08fd6a5/raw/d8aa4bcf955409e28a262ccf52921a65fe49da99/net_speeder_lazyinstall.sh
sh net_speeder_lazyinstall.sh

Debian:

wget --no-check-certificate https://raw.githubusercontent.com/tennfy/debian_netspeeder_tennfy/master/debian_netspeeder_tennfy.sh
chmod a+x debian_netspeeder_tennfy.sh
bash debian_netspeeder_tennfy.sh

安装后执行:

nohup /usr/local/net_speeder/net_speeder venet0 "ip" >/dev/null 2>&1 &

加入开机启动:

echo 'nohup /usr/local/net_speeder/net_speeder venet0 "ip" >/dev/null 2>&1 & ' >> /etc/rc.local

2.Kcptun

Kcptun 是一个非常简单和快速的,基于 KCP 协议的 UDP 隧道,它可以将 TCP 流转换为 KCP+UDP 流。而 KCP 是一个快速可靠协议,能以比 TCP 浪费10%-20%的带宽的代价,换取平均速度提高 30%-40%,且最大延迟降低三倍的传输效果。

Kcptun 是 KCP 协议的一个简单应用,可以用于任意 TCP 网络程序的传输承载,以提高网络流畅度,降低掉线情况。由于 Kcptun 使用 Go 语言编写,内存占用低,而且适用于所有平台,甚至 Arm 平台。

KCP工作原理图:

KCP 协议:https://github.com/skywind3000/kcp

Kcptun 项目地址:https://github.com/xtaci/kcptun

Kcp-server:https://github.com/clangcn/kcp-server

Kcp-server 是在 Kcptun 的基础上,添加了配置文件的支持,并简化了安装过程。

Kcp的安装使用优化可以参考该文章:http://www.cmsky.com/kcptun/ 因为篇幅过长本文不再详细叙述。

KCP的缺点就是需要客户端支持,对于做网站和下载不挂客户端就没啥用,而且手机版本的客户端只有SS的影梭客户端支持,SSR的客户端好像并不兼容。

3.FinalSpeed

简称FS,他的优点是可以是双边加速,TCP和UDP,支持多个Linux系统和虚拟架构,也支持Windows,当然OVZ架构只能使用UDP,其他架构可以双边。FS需要客户端支持,没有手机客户端,做站什么的更不用说。FS的加速方法比较毒瘤,就是抢占邻居的带宽,如果一堆人在使用那就看谁的小鸡更强了。

目前FS已经转为收费项目,原FS已经停止更新,博主保存了一份最后的源码和FS客户端,有闲心的可以自己折腾使用。

下载地址

新的商业化项目为TCPSpeed,官网地址:http://www.tcpspeed.com/ 可以享受FS的后续更新,当然就是要花钱了。

三、BBR加速

BBR加速是最近火起来的加速器,依赖内核,只能使用在Xen、KVM等架构,不能在OVZ上使用。BBR类似锐速属于TCP单边加速,无需客户端支持,原理也和锐速相同,可以翻上去看加速原理。

BBR是Google的几位工程师研发的,开源免费,项目地址:https://github.com/google/bbr

BBR的唯一麻烦就是依赖的内核必须为4.9以上,以下的都不能得到支持。目前最省事的就是Ubuntu、Debian系统,CentOS目前支持6.x、7.x版本,如果你的VPS内核是旧版本需要手动更换内核。OVZ的VPS因为不能更换内核无法使用。

目前BBR的效果比较令人满意,即使是一个线路不好的KVM VPS也能得到改善,但是据部分人测试教育网会有减速效果,如果你的网络是教育网还是不要使用为好。

以Ubuntu 14和Debian 8为例提供安装方法(Debian7和6也能使用):

安装警告!
部分Kvm、Xen的VPS更换内核后无法启动成功,所以安装BBR因为涉及更换内核的操作所以有一定风险,请自己找一台VPS上测试成功后再用于生产环境!

1.更新内核

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9-rc8/linux-image-4.9.0-040900rc8-generic_4.9.0-040900rc8.201612051443_amd64.deb #Ubuntu

wget http://mirrors.kernel.org/debian/pool/main/l/linux/linux-image-4.9.0-rc8-amd64-unsigned_4.9~rc8-1~exp1_amd64.deb #Debian

dpkg -i linux-image-4.9.0*.deb  #安装内核

dpkg -l|grep linux-image  #查看内核

apt-get purge (旧的内核名称)  #删除老的内核

32位系统内核包:

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9-rc8/linux-headers-4.9.0-040900rc8_4.9.0-040900rc8.201612051443_all.deb

 2.更新GRUB系统引导文件

update-grub  #更新

reboot  #重启

3.开启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  #查看内核是否已开启BBR

lsmod | grep bbr  #查看BBR是否启动

安装完成。

对于CentOS,目前支持6和7

wget http://mirrors.kernel.org/debian/pool/main/l/linux/linux-image-4.9.0-rc8-amd64-un
signed_4.9~rc8-1~exp1_amd64.deb

ar x linux-image-4.9.0-rc8-amd64-unsigned_4.9~rc8-1~exp1_amd64.deb

tar -Jxf data.tar.xz

install -m644 boot/vmlinuz-4.9.0-rc8-amd64 /boot/vmlinuz-4.9.0-rc8-amd64

cp -Rav lib/modules/4.9.0-rc8-amd64 /lib/modules/

depmod -a 4.9.0-rc8-amd64

dracut -f -v --hostonly -k '/lib/modules/4.9.0-rc8-amd64'  /boot/initramfs-4.9.0-rc8-a
md64.img 4.9.0-rc8-amd64

grub2-mkconfig -o /boot/grub2/grub.cfg

修改/boot/grub2/grub.cfg 把4.9.0的内核启动 放到第一位。

然后reboot

开启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

查看下是否有BBR:

lsmod | grep bbr

CentOS其他内核下载:

Centos6
http://elrepo.org/people/ajb/devel/kernel-ml/el6/x86_64/RPMS/

Centos7
http://elrepo.org/people/ajb/devel/kernel-ml/el7/x86_64/RPMS/

2016-12-12 Update:

CentOS6有BBR一键包了,目前只支持CentOS6系统,OVZ请勿使用

作者新增支持了4.9内核正式版

wget --no-check-certificate https://github.com/52fancy/GooGle-BBR/raw/master/BBR.sh && sh BBR.sh

Github:https://github.com/52fancy/GooGle-BBR

Linode VPS更换内核可以参考,官方后台就有提供:

XEN
http://madlax.pw/2016/06/15/57.html
KVM
http://madlax.pw/2016/12/03/103.html

 

四、参考资料

本篇文章的编写参考了多篇文章,感谢作者的付出:(排名不分先后)

来自Google的TCP BBR拥塞控制算法解析:http://blog.csdn.net/dog250/article/details/52830576

BBR for CentOS 7整合分享:http://www.hostloc.com/thread-342505-1-1.html

在ubuntu和centos7上开启谷歌TCP BBR拥塞控制算法:http://www.awkxy.com/archives/721

安装BBR更有效利用你的服务器带宽:http://www.zrblog.net/15718.html

Debian BBR教程:http://www.hostloc.com/forum.php?mod=redirect&goto=findpost&ptid=342441&pid=4352551

搬瓦工VPS/OPENVZ加速工具KCPTUN:http://www.cmsky.com/kcptun/

利用FinalSpeed工具为VPS主机加速 – 安装及常用命令应用记录:http://www.laozuo.org/7720.html

安装net-speeder工具加速VPS主机及体验实际的速度性能:http://www.laozuo.org/7967.html

教程:开启TCP BBR拥塞控制算法 取代锐速的又一单边加速选择:https://www.91yun.org/archives/4216

锐速破解版linux一键自动安装包:https://www.91yun.org/archives/683

教程:CentOS更换内核,提供锐速可用内核下载:http://www.91yun.org/archives/795

 

五:总结

本篇文章总结了多个主流的服务器加速工具,适用于不同的架构和环境,不管原理如何其目的都是优化网络,希望本文对于有此需求的可以提供部分参考。博主掌握知识有限,如果有不足之处请以评论的方式指出。