Skip to main content

shadowsocks服务器开启net-speeder在高延迟不稳定链路上优化单线程下载速度

在网上各种文章比较多,我在搭建的时候就走了不少弯路,所以搭建成功之后就想自己重新整理一遍方法,放到自己的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

  1. 作者GitHub链接https://github.com/snooda/net-speeder
  2. https://zhgcao.github.io/2016/05/26/ubuntu-install-net-speeder/

Comments

Popular posts from this blog

Vivado崩溃与文件路径和计算机名称

先声明软件版本与操作系统 Vivado 2014.4 Windows 10 家庭版 做数字逻辑实验要用 Vivado ,按照老师给的教程安装了 Vivado 2014.4 。然后就开始按照实验指导去做实验了。 做到需要进行 RTL Analysis 的时候,点击 Schematic , Vivado 就直接崩溃了,没有弹出任何的错误提示。 于是我就去搜索,看有没有人遇到了类似情况,是否有解决办法。搜索到的全都是说文件路径里含有中文或特殊字符,但是我的路径全都是规范的,只包含英文、数字、下划线。我从头开始做了一遍,不行。卸载后重装 Vivado ,重做实验,还是不行。完全不知道该怎么解决。 后来做另一个实验的时候,要用到 Synthesis 功能,在 Run Synthesis 之后,就会 Fail ,在最底下的 Log 里的最后几行能看到 TclStackFree: incorrect freePtr. Call out of sequence? 我又去 Google 了一下,然后就浏览到了这个链接。 https://forums.xilinx.com/t5/Synthesis/TclStackFree-incorrect-freePtr-Call-out-of-sequence-in-2016-4/m-p/742698 看到里面有人说,把计算机的名字改了之后就能正常使用了。我就去看了一下我的计算机名,是 myName’sPC 然后我就尝试着去掉那个单引号改成 myNamesPC 重启计算机之后再去使用 Vivado ,发现已经能够正常使用了!!! 原来我遇到的问题的根源就出在这里!计算机名包含了这个单引号! 所以,以后在命名这些关键内容的时候,无论是设备名还是路径名,都尽量只包含英文、数字、下划线,其他的符号很容易带来问题。

Debian 7 搭建shadowsocks服务器并开启ss-bash脚本管理与BBR

自己搭建 ss-bash 脚本管理的 shadowsocks 服务器并开启 BBR。 在网上各种文章比较多,我在搭建的时候就走了不少弯路,所以搭建成功之后就想自己重新整理一遍方法,放到自己的 Blog 里,以后也方便一些。 参考了很多网上的方法,因此文章的末尾会有 References 。 此篇用的是 Debian 7 搭建的,已成功。其他系统不一定。 (2018-07-09更新:Debian 9 所有安装都没问题,但是ss-bash/ssadmin.sh start就会显示ssserver启动失败,查了很多方法都没有办法解决。换回Debian7才能正常使用。) 购买与初步部署 VPS 就不写了。 部署完 VPS 之后,下载 PuTTy 或者 Xshell ,连接上 VPS 1. 依次复制以下命令,一行执行一次,每一行单独复制粘贴到 PuTTy / Xshell ,每行按一次回车 ) apt-get update apt-get install python-pip apt-get install wget apt-get install bc apt-get install gawk apt-get install git pip install shadowsocks git clone https://github.com/hellofwy/ss-bash Debian 一般默认没有 sudo ,要安装 sudo 的话执行以下命令: apt-get install sudo 注:下面的很多命令, GitHub 上原作者给出的例子会在前面加上 “sudo” ,但是自己实际运行的时候可能会遇上 sudo command not found ,如果遇上了,就把前面的 sudo 去掉就好,或者是按照前面说的把sudo安装好。我这一篇的例子是没有 sudo 的。 2. 首次运行时,先新建用户 例如新用户端口为 8381 ,密码为 abcdefg ,流量限制为 100GB 。 执行以下命令: ss-bash/ssadmin.sh add 8381 abcdefg 100GB 要添加更多用户就自己继续按照格式来执行命令...