在网上各种文章比较多,我在搭建的时候就走了不少弯路,所以搭建成功之后就想自己重新整理一遍方法,放到自己的Blog里,以后也方便一些。参考了网上其他文章,教程末尾有References。
此篇教程用 Debian 7 操作,已成功。之前用过 CentOS 6 ,也成功了。其他系统不一定。
注1:开启了net-speeder的服务器上对外ping时看到的是4倍,实际网络上是2倍流量。另外两倍是内部dup出来的,不占用带宽。 另外,内部dup包并非是偷懒未判断。。。是为了更快触发快速重传的。
注2:net-speeder不依赖ttl的大小,ttl的大小跟流量无比例关系。不存在windows的ttl大,发包就多的情况。
安装步骤:
1:下载源码并解压
wget https://github.com/snooda/net-speeder/archive/master.zip
unzip master.zip
若遇到 unzip command not found,可以执行以下命令来安装unzip:
apt-get install zip unzip
2:准备编译环境
debian/ubuntu:
#安装libnet-dev:
apt-get install libnet1-dev
#安装libpcap-dev:
apt-get install libpcap0.8-dev
centos:
#下载epel:https://fedoraproject.org/wiki/EPEL/zh-cn 例:CentOS6 64位:
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
#(如果是centos5,则在epel/5/下)
#安装epel:
rpm -ivh epel-release-6-8.noarch.rpm
#然后即可使用yum安装:
yum install libnet libpcap libnet-devel libpcap-devel
编译:
可能要先进入到net-speeder的目录下:
ls
看到有net-speeder-master的文件夹后执行
cd net-speeder-master
Linux Cooked interface使用编译(venetX,OpenVZ):
sh build.sh -DCOOKED
普通网卡使用编译(Xen,KVM,物理机):
sh build.sh
查看网卡的方法,执行:
ifconfig
一般来说,kvm是eth0,openvz是venet0
使用方法(需要root权限启动):
加速规则实际是bpf规则,用来过滤哪些包需要发2遍,想了解更详细的规则可以自己去Google。
命令格式:./net_speeder 网卡名 加速规则(bpf规则)
kvm用法(加速所有ip协议数据):
./net_speeder eth0 "ip" #双引号里写ip表示所有ip都加速
openvz用法(加速所有ip协议数据):
./net_speeder venet0 "ip" #双引号里写ip表示所有ip都加速
下面都假设用的是KVM,网卡都是eth0
可以设定只加速Shadowsocks监听的端口,假设端口是8388,只加速这个端口的命令如下:
./net_speeder eth0 "tcp src port 8388"
假如需要给多个端口加速,命令可以写成:
./net_speeder eth0 "tcp src port 8388 or port 8389"
以后台方式执行:
nohup ./net_speeder eth0 "tcp src port 8388" >/dev/null 2>&1 &
关闭net-speeder
killall net_speeder
把这个工具加入开机启动
方法一,先执行第一行拷贝到/usr/bin目录下,然后执行第二行:
cp ./net_speeder /usr/bin
echo 'nohup /usr/bin/net_speeder venet0:0 "tcp src port 8388" >/dev/null 2>&1 &' >> /etc/rc.local
方法二,直接执行:
nohup ~/net-speeder-master/net_speeder eth0 "ip" >/dev/null 2>&1 &
References
- 作者GitHub链接https://github.com/snooda/net-speeder
- https://zhgcao.github.io/2016/05/26/ubuntu-install-net-speeder/
Comments
Post a Comment