Skip to main content

shadowsocks在ubuntu下的搭建

平台:DigitalOcean上的Ubuntu 14.04
安装
apt-get install python-pip
pip install Shadowsocks
服务器配置
服务端安装好以后,创建一个配置文件 /etc/shadowsocks.json。 示例:
{
    "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,
    "workers": 1
}
各个字段的意思:
字段名含义
server服务端监听的地址,服务端可填写 0.0.0.0
server_port服务端的端口
local_address本地端监听的地址
local_port本地端的端口
password用于加密的密码
timeout超时时间,单位秒
method默认 "aes-256-cfb",参见加密方法
fast_open是否使用 TCP_FASTOPEN, true / false
workersworker 数量,Unix/Linux 可用,如果不理解含义请不要改

在服务器上运行 ssserver -c /etc/shadowsocks.json 即可。

可以用命令行参数覆盖 config.json 中的设置:
本地客户端使用sslocal -s server_addr -p server_port -l local_port -k password -m bf-cfb
ssserver -p server_port -k password -m bf-cfb --workers 2
ssserver -c /etc/shadowsocks/config.json
用 -h 查看所有参数。

不同的端口可以使用不同的密码实现多用户访问
{
    "server": "127.0.0.1",
    "local_port": 1081,
    "port_password": {
        "8381": "foobar1",
        "8382": "foobar2",
        "8383": "foobar3",
        "8384": "foobar4"
    },
    "timeout": 60,
    "method": "aes-256-cfb"
}
查看shadowsocks进程   ps -ef | grep shadowsocks
让程序后台运行 setsid ssserver -c /etc/shadowsocks.json



ipv6设置(需要测试一下)
Google一圈发现Shadowsocks服务器也会读取config.json的server字段,所以如果填写的是IPv4地址的话,ss-server就只会在IPv4地址上监听,通过IPv6连接肯定就会不成功。修改一下config.json,其中server字段为:
"server": "::",
然后再重新启动一下Shadowsocks的服务端:
ss-server -c config.json -f /var/run/shadowsocks.pid
通过-f指定pid文件的方式使ss-server运行在后台,在CentOS里ss-server的输出将重定向到/var/log/messages,启动后可以通过netstat -nlp查看监听的端口,如果有:::SERVER_PORT(SERVER_PORT是ss-server监听的端口)就说明成功了。

shadowsocks的github地址:
https://github.com/clowwindy/shadowsocks

Comments