你的位置:首页 > 操作系统

[操作系统]Shadowsocks优化加速


最近闲时把digitalocean服务器上的shadowcocks优化了一下,优化后google搜索基本在2秒以内出结果,这基本达到了我科学上网的要求,更重要的是工作的时候提高了我的效率。如果想还快一点,可以用国内的一台vps做二级代理,速度可提升不少。

Shadowsocks要比vpn轻很多,同时也要快很多,在网终环境不好的时候,vpn也经常容易断,影响效率。
平时科学上网大多数时候都是用Shadowsocks,速度快不说,还不用老让我重连,然后Shadowsocks还有很多优化空间。
1.加密方式推荐使用rc4-md5
TIPS: 加密方式推荐使用rc4-md5,因为 RC4 比 AES 速度快好几倍,如果用在路由器上会带来显著性能提升。旧的 RC4 加密之所以不安全是因为 Shadowsocks 在每个连接上重复使用 key,没有使用 IV。现在已经重新正确实现,可以放心使用。/etc/shadowsocks.json配置文件如下;
{
    “server”:”my_server_ip”,
    “server_port”:8000,
    “local_address”: “127.0.0.1”,
    “local_port”:1080,
    “password”:”mypassword”,
    “timeout”:300,
    “method”:”rc4-md5″
}
 
重新启动即可
ssserver -c /etc/shadowsocks.json -d stop
ssserver -c /etc/shadowsocks.json -d start
 
2.锐速加速
锐速是一款非常不错的TCP底层加速软件,可以非常方便快速地完成服务器网络的优化,配合 ShadowSocks 效果奇佳。目前锐速官方也出了永久免费版本,适用带宽20M、3000加速连接,个人使用是足够了。如果需要,先要在锐速官网注册个账户。
 
然后确定自己的内核是否在锐速的支持列表里,如果不在,请先更换内核,如果不确定,请使用 手动安装。
 
确定自己的内核版本在支持列表里,就可以使用以下命令快速安装了。
 
wget http://my.serverspeeder.com/d/ls/serverSpeederInstaller.tar.gz
tar xzvf serverSpeederInstaller.tar.gz
bash serverSpeederInstaller.sh
输入在官网注册的账号密码进行安装。
然后选择需要加速的接口、上行及下行最大带宽,这里不需要输入任何内容,参数设置直接回车默认即可,
最后两项输入 y 开机自动启动锐速,y 立刻启动锐速。之后可以通过lsmod查看是否有appex模块在运行。
 
到这里还没结束,我们还要修改锐速的3个参数,vi /serverspeeder/etc/config
 
rsc=”1″ #RSC网卡驱动模式
advinacc=”1″ #流量方向加速
maxmode=”1″ #最大传输模式
digitalocean vps的网卡支持rsc和gso高级算法,所以可以开启rsc=”1″,gso=”1″。
 
重新启动锐速
 
service serverSpeeder restart
 
注:
如果遇到..Failed to write configuration: /proc/net/appex/wanKbps的错误,
需要删除掉
 
rm -rf /serverspeeder/
 
然后重新尝试在官网手动下载安装包serverSpeederInstaller.tar.gz
解压重复以上安装步骤bash serverSpeederInstaller.sh即可
 
 
附:/serverspeeder/etc/config 各参数配置
 
启动锐速: /serverspeeder/bin/serverSpeeder.sh start
加载锐速模块, 使用/serverspeeder/etc/config 文件中的配置作为锐速的初始化参数;
 
停止锐速:/serverspeeder/bin/serverSpeeder.sh stop
卸载加速模块;卸载前请确认没有其它进程在访问/proc/net/appex/目录,例如确认控制台当前目录是否是/proc/net/appex/;
 
实时修改锐速参数: /serverspeeder/bin/serverSpeeder.sh reload
修改/serverspeeder/etc/config 文件中的配置后运行此命令,此时模块不退出,参数被实时修改;
 
如何卸载锐速?
在确保锐速没有运行的情况下,您可以通过两种方式来卸载锐速:
1. 使用安装脚本的卸载功能卸载锐速,如:./serverSpeederInstaller.sh uninstall
2. 通过简单的删除操作,如’rm -rf /serverspeeder/’,即可将锐速完全卸载;
通过修改/appex/etc/config 文件,可以为 LotServer 设定不同的配置参数;常用参
数的说明如下:
1) accif=”eth*”
加速接口;eth*一般为服务器上对外提供服务的网络接口,例如 eth0, eth1„,一
般通过 ifconfig 命令可以看到;可以同时设定多个接口作为加速接口(接口之间用空
格分开),如 accif=”eth0 eth1″;默认为”eth0″;
2)acc=”1″
TCP 加速开关;设为 1 表示开启 LotServer 的 TCP 加速功能,设为 0 表示关闭
LotServer 的 TCP 加速功能;默认为 1;
3)advacc=”1″
高级加速开关;设为 1 表示开启,设为 0 表示关闭;开启此功能可以得到更好的
加速效果,但有可能会造成有效数据率下降;默认为 1;
4)advinacc=”0″
高级入向加速开关;设为 1 表示开启,设为 0 表示关闭;开启此功能可以得到更
好的流入方向流量加速效果;
5)wankbps=”1000000″
加速接口上行带宽;指的是从服务器流出到 Internet 的最大带宽,单位为 Kbps,
例如服务器所连接的 Internet 带宽为 1G,则设置为 1000000;默认为 1000000;
6)waninkbps=”1000000″
加速接口下行带宽;指的是从 Internet 流入服务器的最大带宽,单位为 Kbps,例
如服务器所连接的 Internet 带宽为 1G,则设置为 1000000;默认为 1000000;
wankbps 和 waninkbps 的设置一般与实际带宽相同为最理想;如果无法确定实际
带宽,一般设置为网卡的最大吞吐能力即可;例如网卡为千兆全双工网卡,则 wankbps
和 waninkbps 都设置为 1000000;
当设置过小时,例如实际带宽有 100Mbps,但 wankbps 和 waninkbps 设置为
10Mbps,则数据流量会被限制在 10Mbps 以内,此时会降低服务器的吞吐;
7)csvmode=”0″ highcsv=”0″
csvmode 拥塞控制模式开关;设为 1 表示开启,设为 0 表示关闭;开启 tcp 加速
后,在某些丢包较大的网络中可能会造成有效数据率下降的问题;此时开启拥塞控- 6 -
制模式,可以有效避免该问题;但开启此选项时,可能加速效果也会下降;默认为 0;
csvmode=”1″ highcsv=”0″时,为普通拥塞控制模式,对拥塞具有一定控制的同时
对加速效果的影响较小;
csvmode=”1″ highcsv=”1″时,为高级拥塞控制模式,可以更好的控制拥塞但是相
比于普通拥塞控制模式对加速效果的影响较大。
8)subnetAcc=”0″
局域网加速开关;设为 1 表示开启;设为 0 表示关闭;不开启时对于同一局域网
内的连接不会加速;开启后对同一网段的 TCP 连接也进行加速;
9)maxmode=”0″
最大传输模式;设为 1 表示开启;设为 0 表示关闭;开启后会进一步提高加速效
果,但是可能会降低有效数据率;
10)maxTxEffectiveMS=”0”
最大传输模式生效时间;用于控制最大传输模式对每一个连接的生效时间;设为
0 表示从连接建立到连接结束,都采用最大传输模式传输;单位为 ms,1000 即 1s;
11)pcapEnable=“0”
抓包开关;设为 1 表示开启,设为 0 表示关闭;开启此功能后会抓取经过加速引
擎处理的数据包,在/appex/log 目录下生成抓包文件;
12)bypassOverFlows=”1″
流量 bypass 开关;设为 1 表示开启,设为 0 表示关闭;开启此功能后当服务器
的连接数超过引擎设定后会对超过的连接的流量 bypass,否则会无法新建连接;
13)initialCwndWan=”44″
初始 TCP 发送窗口能够发送的数据包的数量;该值设置的高会获得更好的加速
效果,但是可能会造成网络的拥塞;
14)l2wQLimit=”256 2048″
从 LAN 到 WAN 加速引擎在缓冲池充满和空闲时分别能够缓存的数据包队列的
长度的上限;该值设置的高会获得更好的加速效果,但是会消耗更多的内存;
15)w2lQLimit=”256 2048″
从 WAN 到 LAN 加速引擎在缓冲池充满和空闲时分别能够缓存的数据包队列的
长度的上限;该值设置的高会获得更好的加速效果,但是会消耗更多的内存;
16)shrinkPacket=”0″
slab 缓存缩减开关;设为 1 表示开启,设为 0 表示关闭;当服务器内存消耗很高
时可以将该值设定为 1,这样会降低内存的消耗;- 7 -
17)retranWaitListMS=”32
重传等待时间;当服务器没有收到 ack 或者丢包产生之后客户端重复 ack 时间达
到 32ms,服务器重传数据;默认为 32ms;
18)halfCwndMinSRtt=”500″
halfCwndLossRateShift=”3″
以上两个值用于判断网络拥塞,分别为延时和丢包率,丢包率默认值为 3,即
1/2^3,当拥塞产生时,退出第三代 Learning-based TCP 算法,采用类似传统 TCP 的
算法。
19)#byte cache
byteCache=”0″
httpComp=”1″
byteCacheMemory=”250″ #MB
byteCacheDisk=”0″ #MB
diskDev=”/dev/sda2″
以上为双边缓存的设置,当前只有部分版本支持该功能。分别是缓存开关,数据
压缩开关,内存大小,硬盘大小,指定硬盘位置;
20)shaperEnable=”1″
流量整形开关,配合上行和下行带宽设置开启;设为 1 表示开启,设为 0 表示关
闭;开启此功能,会采用 wankbps 以及 waninkbps 设置的带宽大小运行;关闭此功
能,会根据实时传输自动测算带宽大小;
21)tcpOnly=”1″
设为 1 表示开启,设为 0 表示关闭;开启此功能,即只处理 TCP 流量;关闭此功能,
也处理除 TCP 以外的流量(不会对非 TCP 流量加速),一般用于配置策略对非 TCP 数据丢弃时;
22)SmBurstMS=”15″
引擎允许的最大突发时间,设为 0,则关闭;该值越大,数据包发送量越大;当
前推荐默认为 15;
23)rsc=”0″
网卡接收端合并开关;设为 1 表示开启,设为 0 表示关闭;在有些较新的网卡驱
动中,带有 RSC 算法的,需要打开该功能;
24)gso=”0″
GSO 开关;设为 1 表示开启,设为 0 表示关闭;当网卡需要开启 gso 功能时,
开启此功能,LotServer变为支持gso的模式;关闭此功能,如果网卡开启gso,LotServer- 8 -
会关闭网卡的 gso 功能;
25)lanSegment=””
当 LotServer 不是 TCP 连接的最终节点并且采用单臂模式部署时,如果 LotServer
和服务器之间网络环境很好,不需要加速,将此参数的值设为 Lan 一侧的子网网段
(参数的值为子网网段的十六进制表示加子网掩码,例:ip 为 172.33.0.0/16,
lanSegment=”AC210000/16″),则 LotServer 和服务器之间不进行加速,可以节省
LotServer 使用的资源并获得更好的加速效果。如果不设置此参数,则 LotServer 会对
所有经过的 TCP 连接进行加速。(注:如果参数转换为十六进制后,第一位数字为 0
时,需要省略,不然无法正常写入配置。例如:参数十六进制值为:0C210000/16,
那么 lanSegment=”C210000/16″。)
26)configTimeout=”30″
设置开启 LotServer 时,写入配置所需要的时间。当引擎的数目很多时需要写入
配置的时间较长,默认为 30s。
27)engineNum=”0″
LotServer 启动的加速引擎的的个数;在多处理器(核)的系统环境下,启用多个加
速引擎可以使网络流量的负载在多个处理器(核)之间做均衡分配,从而帮助优化系统
CPU 资源的利用;启用多个加速引擎时,引擎序号从 0 开始,分别为 engine0, engine1,
engine2,等等;每个引擎的负载对应交给相同序号的处理器来处理,即,engine0 使
用 cpu0, engine1 使用 cpu1 等;engineNum 默认为 0,表示启用的加速引擎个数与系
统的处理器个数相同,64bit 架构下,当实际的 engineNum 参数大于 4 时,检查内
存:
当总内存减去 engine 占用内存剩余数小于 2G 时,提示用户一个 warning:
LotServer Warning: $CPUNUM engines will be launched according to the config file.
Your system’s total RAM is $memTotal(KB), which might be insufficient to run all the
engines without performance penalty under extreme network conditions. ;
28)shortRttMS=”10″
白名单开关;打开后 LotServer 将不对 RTT 小于 shortRttMS 的连接加速,节约系
统资源,提高性能;设置为 0 时表示关闭此功能,LotServer 会加速所有的连接;设
置为其他值时,例如 10,则表示当第一次建立连接时,Lotserver 会测量所有的新建
连接的 RTT,但是不对其进行加速;如果 RTT 大于 10ms,LotServer 会从第二次建
立连接开始对其加速,如果 RTT 小于 10ms,LotServer 则一直不会对其加速。默认
值 10ms。- 9 -
重启 LotServer 后,原来记录的每个连接的 RTT 会被清除,重新开始记录。
LotServer 使用五元组判断是否为同一连接,五元组包括:源 ip,目的 ip,源端口,
目的端口和协议。
29)apxexe=” /appex/bin/acce-***”
LotServer 模块文件的路径;
30)apxlic=”/appex/etc/apx-***.lic”
LotServer 授权文件的路径;
 
Shadowsocks优化加速