1. 程式人生 > >Shadowsocks伺服器搭建及優化

Shadowsocks伺服器搭建及優化

轉載自:http://blog.51cto.com/xvjunjie/2071369

 

客戶端下載地址:https://github.com/shadowsocks

(1)基礎安裝篇:

系統:Ubuntu

1.  檢視Python版本:保證Python的版本是2.7及以上

[email protected]:~#pyhton -V

2.  安裝pip:

[email protected]:~#apt install python-pip

3.  安裝shadowsocks:

[email protected]

:~#pip install shadowsocks

4.  建立配置檔案:

[email protected]:~#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.  啟動服務:

[email protected]:~#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:

[email protected]:~#ssserver -c /etc/shadowsocks/config.json

後臺執行和停止:

[email protected]:~#ssserver -c /etc/shadowsocks.json -d start

[email protected]:~#ssserver -c /etc/shadowsocks.json -d stop

以上都是在root使用者下執行的。

以root方式執行可能會有一些安全問題。所以一般都是使用普通使用者執行:

[email protected]:~#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.安裝管理器:

[[email protected] ~]# yum install supervisor -y

2.建立配置檔案:

[[email protected] ~]# 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:

[[email protected] ~]# yum install epel-release

[[email protected] ~]# yum update

[[email protected] ~]# yum install m2crypto python-setuptools

[[email protected] ~]# easy_install pip

[[email protected] ~]# pip install shadowsocks