服务器加速总结
VPS/服务器优化网络、加速方法总结与参考
在国外的服务器上因为受各种因素影响,即使国外的服务器都是百兆共享或者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
篇幅有限,就提供一下锐速的一键安装:
如果出现选择版本和内核随便选一个接近的就行,如果好几个选项都一样随便选择一个就行。
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.shsh net_speeder_lazyinstall.sh
Debian:
wget --no-check-certificate https://raw.githubusercontent.com/tennfy/debian_netspeeder_tennfy/master/debian_netspeeder_tennfy.shchmod a+x debian_netspeeder_tennfy.shbash 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/n
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的缺点就是需要客户端支持,对于做网站和下载不挂客户端就没啥用,而且手机版本的客户端也缺乏,只能电脑上扶墙好一些。
3.FinalSpeed
简称FS,他的优点是可以是双边加速,TCP和UDP,支持多个Linux系统和虚拟架构,也支持Windows,当然OVZ架构只能使用TCP,其他架构可以双边。FS需要客户端支持,没有手机客户端,做站什么的更不用说。FS的加速方法比较毒瘤,就是抢占邻居的带宽,如果一堆人在使用那就看谁的小鸡更强了。
目前FS已经转为收费项目,原FS已经停止更新,博主保存了一份最后的源码和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也能使用):
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 #Ubuntuwget http://mirrors.kernel.org/debian/pool/main/l/linux/linux-image-4.9.0-rc8-amd64-unsigned_4.9~rc8-1~exp1_amd64.deb #Debiandpkg -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.confecho "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf sysctl –p #保存生效 sysctl net.ipv4.tcp_available_congestion_control #查看内核是否已开启BBRlsmod | grep bbr #查看BBR是否启动
安装完成。
对于CentOS,目前支持6和7
wget http://mirrors.kernel.org/debian/pool/main/l/linux/linux-image-4.9.0-rc8-amd64-unsigned_4.9~rc8-1~exp1_amd64.debar x linux-image-4.9.0-rc8-amd64-unsigned_4.9~rc8-1~exp1_amd64.debtar -Jxf data.tar.xzinstall -m644 boot/vmlinuz-4.9.0-rc8-amd64 /boot/vmlinuz-4.9.0-rc8-amd64cp -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.confecho "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/79