下面介绍的几种方法,前面几种我亲自试过,确实能在一定程度提高速度。锐速和net-speeder这两种我没用过,搬运别人博客的内容。
1.修改内核参数
只测试了KVM架构的VPS,将下面参数复制到/etc/sysctl.conf里面,保存生效,执行sysctl -p
# max open files fs.file-max = 1024000 # max read buffer net.core.rmem_max = 67108864 # max write buffer net.core.wmem_max = 67108864 # default read buffer net.core.rmem_default = 65536 # default write buffer net.core.wmem_default = 65536 # max processor input queue net.core.netdev_max_backlog = 4096 # max backlog net.core.somaxconn = 4096 # resist SYN flood attacks net.ipv4.tcp_syncookies = 1 # reuse timewait sockets when safe net.ipv4.tcp_tw_reuse = 1 # turn off fast timewait sockets recycling net.ipv4.tcp_tw_recycle = 0 # short FIN timeout net.ipv4.tcp_fin_timeout = 30 # short keepalive time net.ipv4.tcp_keepalive_time = 1200 # outbound port range net.ipv4.ip_local_port_range = 10000 65000 # max SYN backlog net.ipv4.tcp_max_syn_backlog = 4096 # max timewait sockets held by system simultaneously net.ipv4.tcp_max_tw_buckets = 5000 # fastopen in server and client net.ipv4.tcp_fastopen = 3 # TCP receive buffer net.ipv4.tcp_rmem = 4096 87380 67108864 # TCP write buffer net.ipv4.tcp_wmem = 4096 65536 67108864 # turn on path MTU discovery net.ipv4.tcp_mtu_probing = 1 # for high-latency network net.ipv4.tcp_congestion_control = hybla # forward ipv4 net.ipv4.ip_forward = 1
其中最后的hybla是为高延迟网络(如美国,欧洲)准备的算法,需要内核支持,测试内核是否支持,在终端输入:
sysctl net.ipv4.tcp_available_congestion_control
如果结果中有hybla,则证明你的内核已开启hybla,如果没有hybla,可以用命令modprobe tcp_hybla
开启。
对于低延迟的网络(如日本,香港等),可以使用htcp,可以非常显著的提高速度,首先使用modprobe tcp_htcp
开启,再将
net.ipv4.tcp_congestion_control = hybla
改为
net.ipv4.tcp_congestion_control = htcp
建议亚洲VPS用户使用这个算法。
2.增加系统描述符的最大数
编辑/etc/security/limits.conf文件,添加以下两行:
* soft nofile 51200 * hard nofile 51200
启动shadowsocks之前,还可以执行以下命令:
ulimit -n 51200
修改
vi /etc/profile
文件,加入
ulimit -SHn 1024000
然后重启服务器执行
ulimit -n
,查询返回1024000即可。
3.加密层面
安装M2Crypto 这个可以提高SS的加密速度,安装办法:
apt-get install python-m2crypto
使用CHACHA20加密算法
首先,安装libsodium,让系统支持chacha20算法。
Debian/Ubuntu
apt-get install build-essential wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz tar xf LATEST.tar.gz && cd libsodium* ./configure && make && make install ldconfig
然后修改ss加密方式:
vi /etc/shadowsocks.json “method”:”aes-256-cfb”改成”method”:”chacha20″,
重启Shadowsocks
4.网络层面
此外,选择合适的端口也能优化梯子的速度,广大SS用户的实践经验表明,检查站(GFW)存在一种机制来降低自身的运算压力,即常用的协议端口(如http,smtp,ssh,https,ftp等)的检查较少,所以建议SS绑定这些常用的端口(如:21,22,25,80,443),速度也会有显著提升。
如果你还要给小伙伴爬,那我建议开启多个端口而不是共用,这样网络会更加顺畅。
防火墙设置(如有有防火墙的话)
自动调整MTU
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
开启 NAT (记得把 eth0 改成自己的网卡名,openvz 的基本是 venet0 )
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
开启 IPv4 的转发
sysctl -w net.ipv4.ip_forward=1
打开 443 端口
iptables -I INPUT -p tcp --dport 443 -j ACCEPT iptables -I INPUT -p udp --dport 443 -j ACCEPT
5.1 锐速
锐速是一款非常不错的TCP底层加速软件,可以非常方便快速地完成服务器网络的优化,配合 ShadowSocks 效果奇佳。目前锐速官方也出了永久免费版本,适用带宽20M、3000加速连接,个人使用是足够了。如果需要,先要在锐速官网注册个账户。
然后确定自己的内核是否在锐速的支持列表里,如果不在,请先更换内核,如果不确定,请使用 手动安装。
确定自己的内核版本在支持列表里,就可以使用以下命令快速安装了。
5.2 net-speeder
net-speeder 原理非常简单粗暴,就是发包翻倍,这会占用大量的国际出口带宽,本质是损人利己,不建议使用。
(1) Ubuntu/Debian 下安装依赖包
apt-get install libnet1 apt-get install libpcap0.8 apt-get install libnet1-dev apt-get install libpcap0.8-dev |
(2) Centos 下安装依赖包
需要配置 epel 第三方源。下载 epel :http://dl.fedoraproject.org/pub/epel/ 。例如,Centos 7 x64:
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7–5.noarch.rpm rpm -ivh epel-release-7–5.noarch.rpm yum repolist |
然后安装依赖包:
yum install libnet libpcap libnet-devel libpcap-devel |
(3) 下载官方的 tar.gz 压缩包。解压安装运行:
wget http://net-speeder.googlecode.com/files/net_speeder-v0.1.tar.gz tar zxvf net_speeder-v0.1.tar.gz cd net_speeder chmod 777 * sh build.sh -DCOOKED |
首先你需要知道你的网卡设备名,可以使用 ifconfig 查看。假设是eth0,那么运行方法是:
./net_speeder eth0 “ip” |
关闭 net-speeder
killall net_speeder |
哦,对了,作者已经将 net-speeder 迁移到 GitHub 了,感兴趣的可以关注、贡献。
参考文章: