在Debian下安装Net Speeder

Net-Speeder
Net Speeder是国人开发的一个网络优化器。能显著改善海外服务器的丢包率和大文件的下载速度。
作者提供的说明和原理:

当使用国外服务器时,经常会发现,下载速度只有十几k。平时可能不太注意,认为服务器带宽不足,或者自己使用的宽带不给力,其实很有可能原因并不在此。

由于光速的局限性,延迟会比较高(即使光沿直线传播,太平洋一个往返也要一百多毫秒)。并且由于距离较远,途径路由跳数较多,并且网络拥堵的原因。经常会发生丢包的情况。

对于平时使用最广泛的TCP协议来讲,发送端发出包后,接收端会回复ACK,表示自己收到了。用这种机制来保证可靠性。但对于高延迟链路来讲,如果每发送一个包都等待应答,那么大部分时间都在等待数据包到达,而链路则空置了。为此一般会采用滑动窗口技术。即在窗口满之前,发送端一直发送包,然后收到应答后将确认收到的包从窗口中移除。这样可以提高链路利用率。

TCP还有一个特性则是拥塞控制。当发送端检测到链路发生丢包时,则会主动缩小窗口大小以减慢发送速度,避免拥塞。不过对于跳数较多的链路来讲,只要有一个路由不够稳定丢包,就会被发送端判断为拥塞,从而影响网络速度。

为了解决丢包问题,最简单粗暴的方法就是双倍发送,即同一份数据包发送两份。这样的话在服务器带宽充足情况下,丢包率会平方级降低。

这种方式下,直接优点是降低丢包率,直接缺点是耗费双倍流量。一些延伸影响是更容易触发快速恢复逻辑,避免了丢包时窗口缩减过快。一定程度也能提高网络速度。

最近比较忙,空闲时间做了一个最简单的程序,试用效果很好,在一台VPS上测试后发现,未开启时单线程下载、ssh管道速度在十几K级别。开启后可以达到平均300KB+的速度。效果非常明显。但对于不加速就可以跑满带宽的类型来讲(多线程下载),开启后反而由于多出来的无效流量,导致速度减半。所以对于多线程/高速链路,这个方案是不适合的。

目前版本是最简单的逻辑,未来会进行细化(主动触发快速恢复、快速重传等),降低流量浪费,提升加速效果。

目前程序起名net-speeder,相对于修改协议栈来讲,由于后者需要重新升级编译内核,使用用户态程序部署更方便,稳定性更高,兼容性更好。缺点则是性能开销稍大和自由度有损失。总体比较起来,个人使用还是使用用户态程序更合适一些,特别是在虚拟机中使用(OpenVZ,LXC等虚拟机无法自己定制内核)。

说白了,就是双倍发包。通过包发两遍来减少丢包率,对于像美国、欧洲这些晚上丢包严重的线路来说还是有效果的。实测美国西海岸机器安装之后,通过代理看YouTube视频速度有显著提高。但是如果你是下面几种情况,则不适合使用:
1、服务器可用流量很小。因为双倍发包会造成流量翻倍,适合大流量的用户。
2、主要提供网页、图片等小文件访问。net-speeder对于下载大文件、代理访问视频网站等效果比较好,而对小文件加速效果不明显。
3、需要使用pptpd等不支持双倍发包的网络软件。net-speeder会造成这些软件无法正常使用。
4、你的服务器本来线路就很好。如果你的服务器在国内,或者没有丢包严重、延迟很大的问题,则完全没必要使用,反而占用没必要的带宽。
5、道德高尚的人。这种TCP优化机制一直存在争议,因为它实际实际上加剧了网络的拥堵,浪费掉了大量没必要的带宽,如果你很care这些,不要使用。
国内还有另外一个商业化的类似产品–锐速。相比net-speeder,锐速更智能些,动态调整策略,不像前者只是简单粗暴的把发包加倍。不过锐速是收费的,免费用户限制20Mbps带宽,对Linux系统内核有要求,不支持Openvz等VPS。

Debian 7 下安装步骤

安装编译和运行需要的依赖包:

apt-get install libnet1 libpcap0.8
apt-get install libnet1-dev libpcap0.8-dev

从github下载源码:

git clone https://github.com/freehost/net-speeder.git

进入下载目录编译:

cd net-speeder
sh build.sh -DCOOKED

执行后没有输出,会在当前目录下生成一个名为net_speeder的可执行文件。

运行:

nohup /xxx/net-speeder/net_speeder venet0 "ip" >/dev/null 2>&1 &

xxx替换成你服务器上的目录,venet0替换成你的网卡,”ip”保存原状,不要替换成服务器的IP,而且ip必须小写。

加入开机启动:

echo "nohup /xxx/net-speeder/net_speeder venet0 "ip" >/dev/null 2>&1 &" >> /etc/rc.local

1 条评论

回复 admin 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据