DigitalOcean CentOS 7 配置 shadowsocks 服务端及客户端及优化
我的DigitalOcean邀请注册链接:[DigitalOcean注册](https://www.digitalocean.com/?refcode=69cda22205ee)
注册后账户可获得$10可使用资金,可以租用两个月的服务器
服务器端
服务器租用商:DigitalOcean
安装环境:CentOS 7 X64
安装Shadowsocks
yum install python-setuptools && easy_install pip
pip install shadowsocks
配置Shadowsocks
nano /etc/shadowsocks.json
然后输入
{
"server":"0.0.0.0",
"server_port":8388,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"mypassword",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false,
"workers": 1
}
将上面的mypassword
替换成你的密码,server_port
也是可以修改的,例如3024,传说端口越小,效果越好,这个我没有去验证,但建议不要小于1024,以免引起不必要的麻烦,method
是加密方式,如果想在路由器上运行的话可以改成rc4-md5
这样路由器的负荷会小一些,同时加密的安全性也不错。
ctrl+o 保存
ctrl+x 退出
上方代码的解释:
字段名 | 含义 |
---|---|
server | 服务端监听的地址,服务端可填写0.0.0.0 |
server_port | 服务端的端口 |
local_address | 本地端监听的地址 |
local_port | 本地端的端口 |
password | 用于加密的密码 |
timeout | 超时时间,单位秒 |
method | 默认 "aes-256-cfb",参见加密方法 |
fast_open | 是否使用 TCP_FASTOPEN, true / false |
workers | worker 数量,Unix/Linux 可用,如果不理解含义请不要改 |
加密方法参见:
https://github.com/clowwindy/shadowsocks/wiki/Encryption
TCP_FASTOPEN参见:
https://github.com/shadowsocks/shadowsocks/wiki/TCP-Fast-Open
测试&启动
ssserver -c /etc/shadowsocks.json
使用supervisor自动后台运行Shadowsocks
easy_install supervisor
然后创建配置文件,supervisord程序在运行后会自动查找并加载此目录配置文件。
echo_supervisord_conf > /etc/supervisord.conf
编辑配置文件supervisord.conf
,
nano /etc/supervisord.conf
在后面添加
[program:shadowsocks]
command=ssserver -c /etc/shadowsocks.json
autostart=true
autorestart=true
user=nobody
完成后启动supervisord
supervisord -c /etc/supervisord.conf
设置supervisord开机启动
编辑文件:
nano /etc/rc.local
在末尾另起一行添加
supervisord
保存退出(和上文类似)
另centos7还需要为rc.local添加执行权限
chmod +x /etc/rc.local
至此运用supervisord控制shadowsocks开机自启和后台运行设置完成
shadowsocks服务器TCP优化
nano /etc/sysctl.conf
fs.file-max = 51200
#提高整个系统的文件限制
net.ipv4.tcp_syncookies = 1
#表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1
#表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 0
#表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭;
#为了对NAT设备更友好,建议设置为0。
net.ipv4.tcp_fin_timeout = 30
#修改系統默认的 TIMEOUT 时间。
net.ipv4.tcp_keepalive_time = 1200
#表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
net.ipv4.ip_local_port_range = 10000 65000 #表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为10000到65000。(注意:这里不要将最低值设的太低,否则可能会占用掉正常的端口!)
net.ipv4.tcp_max_syn_backlog = 8192
#表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_tw_buckets = 5000
#表示系统同时保持TIME_WAIT的最大数量,如果超过这个数字,TIME_WAIT将立刻被清除并打印警告信息。
#额外的,对于内核版本新于**3.7.1**的,我们可以开启tcp_fastopen:
net.ipv4.tcp_fastopen = 3
# increase TCP max buffer size settable using setsockopt()
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
# increase Linux autotuning TCP buffer limit
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
# increase the length of the processor input queue
net.core.netdev_max_backlog = 250000
# recommended for hosts with jumbo frames enabled
net.ipv4.tcp_mtu_probing=1
保存并退出该文件,然后使用以下指令使配置生效:
sysctl -p
客户端
Shadowsocks GUI
服务端启动完成后需要配置本地端,
在此网页根据自己的系统下载最新的Shadowsocks GUI
http://sourceforge.net/projects/shadowsocksgui/files/dist/
相关说明参见此项目的GitHub
https://github.com/shadowsocks/shadowsocks-gui
win版以.xz结尾,可能需要新版Winrar才能解压
客户端配置对应服务端配置
Save后可创建快捷方式放到开始菜单启动项里即可开机自动运行
SwitchySharp(插件已经更新)
在Chrome浏览器中下载插件SwitchySharp并如图配置即可使用代理访问shadowsocks,其他浏览器类似
SwitchyOmega
在Chrome浏览器中下载插件SwitchyOmega(新版的SwitchySharp,个人感觉自动规则切换更加迅速)并如图配置即可使用代理访问shadowsocks,其他浏览器类似
设置完成后点击Chrome右上角SwitchyOmega标志,当为如图所示时即为使用代理上网