安装
Debian / Ubuntu:
apt-get install python-pip
pip install shadowsocks
CentOS:
yum install python-setuptools && easy_install pip
pip install shadowsocks
使用
ssserver -p 443 -k password -m rc4-md5
如果要后台运行:
sudo ssserver -p 443 -k password -m rc4-md5 --user nobody -d start
如果要停止:
sudo ssserver -d stop
如果要检查日志:
sudo less /var/log/shadowsocks.log
查看shadowsocks所有参数
ssserver -h
使用 配置文件 进行配置。
cd /etc
vim shadowsocks.json
可以在任意位置vim创建一个 config.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
}
使用此配置文件命令
前台运行:
ssserver -c /etc/shadowsocks.json
后台运行:
ssserver -c /etc/shadowsocks.json -d start
ssserver -c /etc/shadowsocks.json -d stop
具体参数:https://github.com/shadowsocks/shadowsocks/wiki/Shadowsocks-使用说明
注意事项
由于更换配置文件后,执行某些操作可能会出现以下错误 ,或者类似的错误
Socket.error: [Errno 98] Address already in use
Traceback (most recent call last):
File “./digits-devserver”, line 58, in
policy_server=False
File “/usr/lib/python2.7/dist-packages/flask_socketio/init.py”, line 414, in run
self.server.serve_forever()
File “/usr/lib/python2.7/dist-packages/gevent/baseserver.py”, line 282, in serve_forever
self.start()
File “/usr/lib/python2.7/dist-packages/gevent/baseserver.py”, line 234, in start
self.init_socket()
File “/usr/lib/python2.7/dist-packages/gevent/pywsgi.py”, line 639, in init_socket
StreamServer.init_socket(self)
File “/usr/lib/python2.7/dist-packages/gevent/server.py”, line 78, in init_socket
self.socket = self.get_listener(self.address, self.backlog, self.family)
File “/usr/lib/python2.7/dist-packages/gevent/server.py”, line 89, in get_listener
return _tcp_listener(address, backlog=backlog, reuse_addr=self.reuse_addr, family=family)
File “/usr/lib/python2.7/dist-packages/gevent/server.py”, line 153, in _tcp_listener
sock.bind(address)
File “”, line 1, in bind
socket.error: [Errno 98] Address already in use: (‘0.0.0.0’, 5000)
该错误意味着您已经有另一个DIGITS devserver, 或者 ssserver 实例正在运行。
解决方案
您可以尝试使用
ps ax | grep digits
kill -9 pid
查找其他进程并将其终止kill -INT,或者只是重启您的计算机,如果这更容易。
再重新执行shadowsocks启动命令即可解决
ssserver -c /etc/shadowsocks.json -d start
以上配置完成后,如果是阿里云服务器,ECS还需要打开防火墙iptables
防火墙配置文件位置
cd /etc/sysconfig/
vim iptables
根据业务需求添加规则,放行或者禁用端口。比如,添加以下规则可以放行8388端口,具体以自行配置的shadowsocks端口为准。
iptables -I INPUT -p tcp --dport 8388 -m state --state NEW -j ACCEPT
- 运行命令 iptables -F 清空所有规则。
- 运行命令 iptables -L 查看新规则是否生效。
- 运行命令 iptables-save > /etc/sysconfig/iptables 保存添加的规则。
保存规则
service iptables save
阿里云ECS安全组
也需要开放端口