VPS上安装服务端

root账户登陆ssh(实测非root账户中间会出错)

yum install python-setuptools && easy_install pip
pip install shadowsocks

VPS上创建服务端配置文件

nano /etc/shadowsocks.json

配置文件内容:

{
"server":"my_server_ip",
"server_port":8388,
"local_address": "127.0.0.1",
"local_port":1080, 
"password":"mypassword", 
"timeout":300, 
"method":"aes-256-cfb", 
"fast_open": false 
}

my_server_ip换成VPS的IP,password换成自己设置的密码,稍后在需要FQ的客户端配置需要用到。

按配置文件启动或停止服务端

ssserver -c /etc/shadowsocks.json -d start
ssserver -c /etc/shadowsocks.json -d stop

客户端(已经不可用)

OS X Windows Android

优化

yum install python-setuptools
easy_install supervisor

然后创建配置文件

echo_supervisord_conf > /etc/supervisord.conf

修改配置文件

vi /etc/supervisord.conf

在文件末尾添加

[program:ssserver]
command = ssserver -c /etc/shadowsocks.json
autostart=true
autorestart=true
startsecs=3

配置文件说明
运行命令:

supervisord

设置supervisord开机启动
编辑文件:

vi /etc/rc.local

在末尾另起一行添加

supervisord

保存退出(和上文类似)。
另centos7还需要为rc.local添加执行权限

chmod +x /etc/rc.local

至此运用supervisord控制shadowsocks开机自启和后台运行设置完成


shadowsocks服务器TCP优化

编辑limits.conf

vi /etc/security/limits.conf

添加下面两行

* soft nofile 51200
* hard nofile 51200

开启shadowsocks服务之前,先设置一下ulimit

ulimit -n 51200

把sysctl.conf备份到root目录

cp /etc/sysctl.conf /root/

修改sysctl.conf配置文件

vi /etc/sysctl.conf

将内容替换如下

fs.file-max = 51200

net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 4096

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_congestion_control = hybla

开启hybla算法,注意下,openvz可能不生效。

/sbin/modprobe tcp_hybla

查看可用的算法。看hybla是否有hybla,如果没有,用cubic。

sysctl net.ipv4.tcp_available_congestion_control

使其生效:

sysctl -p