在国外的服务器上因为受各种因素影响,即使国外的服务器都是百兆共享或者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 >& &
 

加入开机启动:

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.更新内核

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-*.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.~rc8-~exp1_amd64.deb

-rc8-amd64-unsigned_4.~rc8-~exp1_amd64.deb

tar -Jxf data.tar.xz

-rc8-amd64 /boot/vmlinuz--rc8-amd64

-rc8-amd64 /lib/modules/

depmod -a -rc8-amd64

dracut -f -v --hostonly -k -rc8-a
md64.img -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

五:总结

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

VPS/服务器优化网络、加速方法总结与参考的更多相关文章

  1. Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小内存VPS服务器上的配置优化

    对其用户和应用程序来讲,每一个VPS平台的运行和管理都与一台独立主机完全相同,因为每一个VPS均可独立进行重启并拥有自己的root访问权限.用户.IP地址.内存.过程.文件.应用程序.系统函数库以及配 ...

  2. 几个 Ceph 性能优化的新方法和思路(2015 SH Ceph Day 参后感)

    一周前,由 Intel 与 Redhat 在10月18日联合举办了 Shanghai Ceph Day.在这次会议上,多位专家做了十几场非常精彩的演讲.本文就这些演讲中提到的 Ceph性能优化方面的知 ...

  3. http应用优化和加速说明-负载均衡

    负载均衡技术       现代企业信息化应用越来越多的采用B/S应用架构来承载企业的关键业务,因此,确保这些任务的可靠运行就变得日益重要.随着越来越多的企业实施数据集中,应用的扩展性.安全性和可靠性也 ...

  4. linux VPS服务器的一些配置

    SSH密钥登录让Linux VPS/服务器更安全 2011年01月10日 上午 | 作者:VPSer 随着PHP越来越流行,Linux VPS/服务器的使用也越来越多,Linux的安全问题也需要日渐加 ...

  5. cdn网络加速

    CDN全称Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.通过在网络各处放置节点服 ...

  6. 自己搭建CDN服务器静态内容加速-LuManager CDN使用教程

    为什么要自己来搭建一个CDN服务器实现网站访问加速?一是免费CDN服务稳定性和加速效果都不怎么行:二是用国内的付费CDN服务价格贵得要死,一般的草根站长无法承受:三是最现实的问题国内的CDN要求域名B ...

  7. [转载][转]修改/proc目录下的参数优化网络性能

    原文地址:[转]修改/proc目录下的参数优化网络性能作者:雪人 网络优化 注意: 1. 参数值带有速度(rate)的参数不能在loopback接口上工作. 2.因为内核是以HZ为单位的内部时钟来定义 ...

  8. x86服务器中网络性能分析与调优 转

    x86服务器中网络性能分析与调优 2017-04-05 巨枫 英特尔精英汇 [OpenStack 易经]是 EasyStack 官微在2017年新推出的技术品牌,将原创技术干货分享给您,本期我们讨论 ...

  9. centos7作为web服务器优化

    centos7作为web服务器优化 原文 http://itindex.net/detail/51140-centos7-web-服务器 1.加大打开文件数的限制(open files) 查看 uli ...

随机推荐

  1. JRE JDK JVM是什么

    jre: Java Runtime Environment java运行环境 ----------------------------------------- jdk:Java Developmen ...

  2. linux内核分析——扒开系统调用的三层皮(下)

    20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 实验 ...

  3. python,django做中间件屏蔽非法访问

    我使用django1.6. django框架没有urlfilter这样的原生中间件,但是灵活的django设计者为我们留下了更自由的渠道. 在没有使用django以前,我没有接触过如此潇洒的编程方式, ...

  4. Qt5.5中,使MainWindow初始为全屏

    MainWindow w; w.showMaximized(); 实例化后,初始显示设置为最大格式即可!

  5. php 队列

    一.php中对共享内存,消息队列的操作 http://blog.csdn.net/haitun312366/article/details/8614797 二.PHP memcache 队列类 htt ...

  6. 三种renderman规范引擎的dice对比

    次表面做的有些烦躁,既然如此,索性先记一下前一阵比较的PIXIE.3delight.prman的dice方式. 研究过reyes的人都知道dice,简而言之,就是为了生成高质量高精度的图片(电影CG) ...

  7. SE Homework 1 —An Error Impressed Me

    在对两个对象进行比较.判断是否相等时,直接用 == 放在两个对象中间,例如下面的代码: Infor i1 = new Infor(111,"AA"); Infor i2 = new ...

  8. linux grep

    grep (缩写来自Globally search a Regular Expression and Print) 是一种强大的文本搜 索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Uni ...

  9. XAMPP 的安装配置(Linux 版)

    --姜庭华  msn: jaimejth@live.cn --博客:http://blog.csdn.net/jaimejth 软件下载在以下网站 http://www.apachefriends.o ...

  10. MySQL开启general_log跟踪sql执行记录

    # 设置general log保存路径 # 注意在Linux中只能设置到 /tmp 或 /var 文件夹下,设置其他路径出错 # 需要root用户才有访问此文件的权限 mysql>set glo ...