Shadowsocks服务器搭建及优化

转载自:http://blog.51cto.com/xvjunjie/2071369

 

客户端下载地址:https://github.com/shadowsocks

(1)基础安装篇:

系统:Ubuntu

1.  查看Python版本:保证Python的版本是2.7及以上

root@xiaoqi:~#pyhton -V

2.  安装pip:

root@xiaoqi:~#apt install python-pip

3.  安装shadowsocks:

root@xiaoqi:~#pip install shadowsocks

4.  创建配置文件:

root@xiaoqi:~#vim /etc/shadowsocks.json

{

    "server":"0.0.0.0",

    "server_port":8089,

    "local_port":1089,

    "password":"mypassword",

    "timeout":300,

    "method":"aes-256-cfb",

    "fast_open": false

}

5.  启动服务:

root@xiaoqi:~#ssserver -c /etc/shadowsocks.json -d start

6.  Windows配置:

blob.png

(2)系统优化篇:

shadowsocks有两种配置方法,一种是命令行参数配置,一种是配置文件。

1.命令行参数配置

blob.png

2.配置文件:

shadowsocks的配置文件是一个json形式的文件,各参数的意义和命令行参数意义相同,详解参看下文。

blob.png

特别的:如果服务器是Linux系统的话,打开fast_open。

 

☆运行shadowsocks:

root@xiaoqi:~#ssserver -c /etc/shadowsocks/config.json

后台运行和停止:

root@xiaoqi:~#ssserver -c /etc/shadowsocks.json -d start

root@xiaoqi:~#ssserver -c /etc/shadowsocks.json -d stop

以上都是在root用户下运行的。

以root方式运行可能会有一些安全问题。所以一般都是使用普通用户运行:

root@xiaoqi:~#ssserver -c /etc/shadowsocks.json --user nobody -d start

如果需要开机自启动:

在/etc/rc.local中配置:

sudo ssserver -c /etc/shadowsocks.json --user nobody -d start

 

下面开始优化ssserver:

服务器:Linux 3.5及以上。

 

☆提高最大连接数:

编辑/etc/security/limits.conf文件,添加以下两行:

* soft nofile 51200

* hard nofile 51200

在启动shadowsocks之前先设置一下ulimit:

ulimit -n 51200

☆调整内核参数:

调整内核参数的目标是:

1.尽可能重用连接和端口号

2.尽可能增大队列和缓冲区

3.为高延迟和高流量选择合适的TCP拥塞算法

编辑/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_mem = 25600 51200 102400

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

运行sysctl -p生效。

☆多用户配置:修改/etc/shadowsocks.json

{

    "server":"your_server_ip",

    "port_password":{

         "port":"password",

         "port ":"password",

         "port":"password",

         "port":"password",

         ...

    },

    "timeout":60,

    "method":"rc4-md5",

    "fast_open":open,

    "workers":1

}

参数解释:

参数

解析

server

监听地址

server_port

监听端口

local_address

本地监听地址,直接写127.0.0.1就可以,默认就是127.0.0.1,不用更改

local_port

本地监听端口

password

客户端连接密码

timeout

超时时间,单位是秒

method

加密方式,有”bf-cfb”, “aes-256-cfb”, “des-cfb”,   “rc4”,推荐使用:aes-256-cfb

auth

值为true/false 开户一次性认证,但默认安装时,配置文件里没有此参数,可忽略,手机客户端有这个选项,但可以不开启

fast_open

是否启用TCP-Fast-Open,

如果服务器和客户端都部署在Linux 3.7.1或更高版本上,则可以打开fast_open以实现更低的延迟. 首先设置fast_open为true然后在您的操作系统上暂时打开快速打开: echo 3 > /proc/sys/net/ipv4/tcp_fastopen

wokers

worker数量,默认为 1,(这个只在unix和Linux下有用,可不设置)

☆使用管理器:(CentOS):

1.安装管理器:

[root@data ~]# yum install supervisor -y

2.创建配置文件:

[root@data ~]# vim /etc/supervisord.conf

[program:shadowsocks]

command=ssserver -c /etc/shadowsocks.json

autostart=true

autorestart=true

user=root

log_stderr=true

logfile=/var/log/shadowsocks.log

 

service supervisord start

service supervisord stop

service supervisord restart

service supervisord reload

service supervisord force-reload

service supervisord try-restart

service supervisord status

☆其他ssserver操作:

1.查看当前VPS上的Shadowsocks服务端版本号:

pip show shadowsocks

2.升级VPS上的Shadowsocks服务端:

pip install --upgrade shadowsocks

reboot

3.在CentOS中安装ssserver:

[root@data ~]# yum install epel-release

[root@data ~]# yum update

[root@data ~]# yum install m2crypto python-setuptools

[root@data ~]# easy_install pip

[root@data ~]# pip install shadowsocks

猜你喜欢

转载自blog.csdn.net/AsynSpace/article/details/86152373