Kvm/Xen/Vmware/独立服务器的加速 |
在国外的服务器上因为受各种因素影响,即使国外的服务器都是百兆共享或者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 篇幅有限,就提供一下锐速的一键安装: view source print ? 1. 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: view source print ? 1. wget --no-check-certificate https://gist.github.com/LazyZhu/dc3f2f84c336a08fd6a5/raw/d8aa4bcf955409e28a262ccf52921a65fe49da99/net_speeder_lazyinstall.sh 2. sh net_speeder_lazyinstall.sh Debian: view source print ? 1. wget --no-check-certificate https://raw.githubusercontent.com/tennfy/debian_netspeeder_tennfy/master/debian_netspeeder_tennfy.sh 2. chmod a+x debian_netspeeder_tennfy.sh 3. bash debian_netspeeder_tennfy.sh 安装后执行: view source print ? 1. nohup /usr/local/net_speeder/net_speeder venet0 'ip' >/dev/null 2>&1 & 加入开机启动: view source print ? 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也能使用): 安装警告! 部分Kvm、Xen的VPS更换内核后无法启动成功,所以安装BBR因为涉及更换内核的操作所以有一定风险,请自己找一台VPS上测试成功后再用于生产环境! 1.更新内核 view source print ? 01. 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 02. 03. 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 04. 05. dpkg -i linux-image-4.9.0*.deb #安装内核 06. 07. dpkg -l|grep linux-image #查看内核 08. 09. apt-get purge (旧的内核名称) #删除老的内核 32位系统内核包: view source print ? 1. 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系统引导文件 view source print ? 1. update-grub #更新 2. 3. reboot #重启 3.开启BBR view source print ? 01. echo 'net.core.default_qdisc=fq' >> /etc/sysctl.conf 02. 03. echo 'net.ipv4.tcp_congestion_control=bbr' >> /etc/sysctl.conf 04. 05. sysctl –p #保存生效 06. 07. sysctl net.ipv4.tcp_available_congestion_control #查看内核是否已开启BBR 08. 09. lsmod | grep bbr #查看BBR是否启动 安装完成。 对于CentOS,目前支持6和7 view source print ? 01. wget http://mirrors.kernel.org/debian/pool/main/l/linux/linux-image-4.9.0-rc8-amd64-un 02. signed_4.9~rc8-1~exp1_amd64.deb 03. 04. ar x linux-image-4.9.0-rc8-amd64-unsigned_4.9~rc8-1~exp1_amd64.deb 05. 06. tar -Jxf data.tar.xz 07. 08. install -m644 boot/vmlinuz-4.9.0-rc8-amd64 /boot/vmlinuz-4.9.0-rc8-amd64 09. 10. cp -Rav lib/modules/4.9.0-rc8-amd64 /lib/modules/ 11. 12. depmod -a 4.9.0-rc8-amd64 13. 14. dracut -f -v --hostonly -k '/lib/modules/4.9.0-rc8-amd64' /boot/initramfs-4.9.0-rc8-a 15. md64.img 4.9.0-rc8-amd64 16. 17. grub2-mkconfig -o /boot/grub2/grub.cfg 修改/boot/grub2/grub.cfg 把4.9.0的内核启动 放到第一位。 然后reboot 开启BBR view source print ? 1. echo 'net.core.default_qdisc=fq' >> /etc/sysctl.conf 2. 3. echo 'net.ipv4.tcp_congestion_control=bbr' >> /etc/sysctl.conf 4. 5. sysctl -p 6. 7. sysctl net.ipv4.tcp_available_congestion_control 查看下是否有BBR: view source print ? 1. lsmod | grep bbr CentOS其他内核下载: view source print ? 1. Centos6 2. http://elrepo.org/people/ajb/devel/kernel-ml/el6/x86_64/RPMS/ 3. 4. Centos7 5. http://elrepo.org/people/ajb/devel/kernel-ml/el7/x86_64/RPMS/ 2016-12-12 Update: CentOS6有BBR一键包了,目前只支持CentOS6系统,OVZ请勿使用 作者新增支持了4.9内核正式版 view source print ? 1. 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 五:总结在国外的服务器上因为受各种因素影响,即使国外的服务器都是百兆共享或者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 篇幅有限,就提供一下锐速的一键安装: view source print ? 1. 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: view source print ? 1. wget --no-check-certificate https://gist.github.com/LazyZhu/dc3f2f84c336a08fd6a5/raw/d8aa4bcf955409e28a262ccf52921a65fe49da99/net_speeder_lazyinstall.sh 2. sh net_speeder_lazyinstall.sh Debian: view source print ? 1. wget --no-check-certificate https://raw.githubusercontent.com/tennfy/debian_netspeeder_tennfy/master/debian_netspeeder_tennfy.sh 2. chmod a+x debian_netspeeder_tennfy.sh 3. bash debian_netspeeder_tennfy.sh 安装后执行: view source print ? 1. nohup /usr/local/net_speeder/net_speeder venet0 'ip' >/dev/null 2>&1 & 加入开机启动: view source print ? 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也能使用): 安装警告! 部分Kvm、Xen的VPS更换内核后无法启动成功,所以安装BBR因为涉及更换内核的操作所以有一定风险,请自己找一台VPS上测试成功后再用于生产环境! 1.更新内核 view source print ? 01. 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 02. 03. 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 04. 05. dpkg -i linux-image-4.9.0*.deb #安装内核 06. 07. dpkg -l|grep linux-image #查看内核 08. 09. apt-get purge (旧的内核名称) #删除老的内核 32位系统内核包: view source print ? 1. 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系统引导文件 view source print ? 1. update-grub #更新 2. 3. reboot #重启 3.开启BBR view source print ? 01. echo 'net.core.default_qdisc=fq' >> /etc/sysctl.conf 02. 03. echo 'net.ipv4.tcp_congestion_control=bbr' >> /etc/sysctl.conf 04. 05. sysctl –p #保存生效 06. 07. sysctl net.ipv4.tcp_available_congestion_control #查看内核是否已开启BBR 08. 09. lsmod | grep bbr #查看BBR是否启动 安装完成。 对于CentOS,目前支持6和7 view source print ? 01. wget http://mirrors.kernel.org/debian/pool/main/l/linux/linux-image-4.9.0-rc8-amd64-un 02. signed_4.9~rc8-1~exp1_amd64.deb 03. 04. ar x linux-image-4.9.0-rc8-amd64-unsigned_4.9~rc8-1~exp1_amd64.deb 05. 06. tar -Jxf data.tar.xz 07. 08. install -m644 boot/vmlinuz-4.9.0-rc8-amd64 /boot/vmlinuz-4.9.0-rc8-amd64 09. 10. cp -Rav lib/modules/4.9.0-rc8-amd64 /lib/modules/ 11. 12. depmod -a 4.9.0-rc8-amd64 13. 14. dracut -f -v --hostonly -k '/lib/modules/4.9.0-rc8-amd64' /boot/initramfs-4.9.0-rc8-a 15. md64.img 4.9.0-rc8-amd64 16. 17. grub2-mkconfig -o /boot/grub2/grub.cfg 修改/boot/grub2/grub.cfg 把4.9.0的内核启动 放到第一位。 然后reboot 开启BBR view source print ? 1. echo 'net.core.default_qdisc=fq' >> /etc/sysctl.conf 2. 3. echo 'net.ipv4.tcp_congestion_control=bbr' >> /etc/sysctl.conf 4. 5. sysctl -p 6. 7. sysctl net.ipv4.tcp_available_congestion_control 查看下是否有BBR: view source print ? 1. lsmod | grep bbr CentOS其他内核下载: view source print ? 1. Centos6 2. http://elrepo.org/people/ajb/devel/kernel-ml/el6/x86_64/RPMS/ 3. 4. Centos7 5. http://elrepo.org/people/ajb/devel/kernel-ml/el7/x86_64/RPMS/ 2016-12-12 Update: CentOS6有BBR一键包了,目前只支持CentOS6系统,OVZ请勿使用 作者新增支持了4.9内核正式版 view source print ? 1. 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 五:总结 本篇文章总结了多个主流的服务器加速工具,适用于不同的架构和环境,不管原理如何其目的都是优化网络,希望本文对于有此需求的可以提供部分参考。博主掌握知识有限,如果有不足之处请以评论的方式指出。更新时间 2016年12月25日 本篇文章总结了多个主流的服务器加速工具,适用于不同的架构和环境,不管原理如何其目的都是优化网络,希望本文对于有此需求的可以提供部分参考。博主掌握知识有限,如果有不足之处请以评论的方式指出。更新时间 2016年12月25日 |