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]
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配置:
(2)系統優化篇:
shadowsocks有兩種配置方法,一種是命令列引數配置,一種是配置檔案。
1.命令列引數配置
2.配置檔案:
shadowsocks的配置檔案是一個json形式的檔案,各引數的意義和命令列引數意義相同,詳解參看下文。
特別的:如果伺服器是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