配置自己的shadowsocks服务器

shadowsocks 简介

shadowsocks 是一款自定义协议的代理软件,由于其流量特征不明显,(直到不久前)一直可以稳定提供上网代理。

shadowsocks 客户端会在本地开启一个 socks5 代理,通过此代理的网络访问请求由客户端发送至服务端,服务端发出请求,收到响应数据后再发回客户端。

因此使用 shadowsocks 需要一台墙外的服务器来部署 shadowsocks 服务端。

安装ShadowSocks服务器

安装ShadowSocks服务器端其实很简单,只需要键入下面几条命令就可以了:

在Ubuntu下

1
2
3
4
sudo apt-get update
sudo apt-get install python-gevent python-pip
sudo pip install shadowsocks
apt-get install python-m2crypto

在CentOS下

1
2
yum install python-setuptools && easy_install pip
pip install shadowsocks

编写配置文件

shadowsocks 启动时的参数,如服务器端口,代理端口,登录密码等,可以通过启动时的命令行参数来设定,也可以通过 json 格式的配置文件设定。推荐使用配置文件,方便查看和修改。

用 vi 新建一个配置文件:

1
vi /etc/shadowsocks.json

然后输入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"server":"my_server_ip",
"server_port":25,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"mypassword",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}
多个端口
{
"server":"your_server_ip",
"port_password":{
"8381":"password1",
"8382":"password2",
"8383":"password3",
"8384":"password4"
},
"timeout":300,
"method":"rc4-md5",
"fast_open":false,
"workers":1
}

保存退出。

配置文件中个字段的含义:

server: 服务器ip地址
server_port: 绑定的端口,注意不要设置已经使用了的端口
possword: 密码
timeout: 超时时间
method: 加密方法
fast_open: 如果你的服务器 Linux 内核在3.7+,可以开启 fast_open 以降低延迟
workers: 默认为1
如果需要配置多个SS账号,可以按照如下案例进行配置:

运行ShadowSocks服务器

注意ShadowSocks服务器要在root用户下运行,所以一开始请切换用户。

然后只需要输入下面的命令就可以了:

1
ssserver -c /etc/shadowsocks.json -d start

开机启动

修改rc.local文件,运行命令 vi /etc/rc.local

1
2
3
#!/bin/sh
#ssserver -c /etc/shadowsocks.json -d start
nohup ssserver -c /var/htdocs/shadowsocks.json &&

shadowsocks 的日志保存在 /var/log/shadowsocks.log