Shadowsocks可以说是我目前用过的最好的科学上网工具了,没有之一,从大约一年半前在搬瓦工上安装好Shadowsocks以来,这么长时间一直能稳定使用。
搬瓦工上默认的系统是CentOS,以前在这上面装的Shadowsocks,最近计划把系统换成Ubuntu,先学习了解一下Ubuntu下如何安装Shadowsocks。
Shadowsocks有多个版本,常用的有Libev、Python、Go等,以前在CentOS上装的是Libev版本,这次想试试Python版,Python版本可以通过配置文件同时打开多个端口。
注意以下几乎所有的命令都需要在root用户下执行,如果非root用户,需要在每条命令前加上sudo
。
安装
Ununtu下安装Python版本的Shadowsocks其实挺简单,先执行如下命令安装pip和几个依赖的包:1
# apt-get install python-pip python-gevent python-m2crypto
可能会顺带安装其他的一堆依赖的包,等全部安装完成后,就可以用pip来安装Shadowsocks:1
# pip install shadowsocks
注意非root用户在命令前一定要加sudo,否则只会安装在用户的home目录下。
安装成功的结果显示如下:1
2
3
4
5
6
7
8
9
10
11Downloading/unpacking shadowsocks
Downloading shadowsocks-2.8.2.tar.gz
Running setup.py (path:/tmp/pip-build-4KPgyg/shadowsocks/setup.py) egg_info for package shadowsocks
Installing collected packages: shadowsocks
Running setup.py install for shadowsocks
Installing sslocal script to /usr/local/bin
Installing ssserver script to /usr/local/bin
Successfully installed shadowsocks
Cleaning up...
可以看到,默认ssserver和sslocal这两个程序安装到了/usr/local/bin目录
设置
执行下面命令在/etc目录下建立一个新目录:shadowsocks,并在其下创建一个文件:config.json:1
2# mkdir /etc/shadowsocks
# vim /etc/shadowsocks/config.json
config.json的内容如下:1
2
3
4
5
6
7
8{
"server":"0.0.0.0",
"server_port":8388,
"password":"your_password",
"timeout":600,
"method":"aes-256-cfb",
"fast_open": false
}
“server_port”和”password”可以根据自己的要求设定。
如果需要同时开多个端口,config.json的内容可以设置如下:1
2
3
4
5
6
7
8
9
10{
"server":"0.0.0.0",
"port_password": {
"8388": "your_password1",
"8389": "your_password2"
},
"timeout":600,
"method":"aes-256-cfb",
"fast_open": false
}
运行
执行以下命令启动Shadowsocks服务器:1
2
3
4# ssserver -c /etc/shadowsocks/config.json -d start
INFO: loading config from /etc/shadowsocks/config.json
2016-04-19 03:48:17 INFO loading libcrypto from libcrypto.so.1.0.0
started
命令中的-d start
参数表示Shadowsocks以后台方式运行,所以需要root权限
然后运行netstat -anp
可以查看到Shadowsocks正监听在设置的端口。
停止Shadowsocks执行如下命令:1
# ssserver -c /etc/shadowsocks/config.json -d stop
设置为服务随系统启动
执行下面的命令,创建shadowsocks.service文件:1
# vim /etc/systemd/system/shadowsocks.service
文件的内容如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18[Unit]
Description=Shadowsocks
After=network.target
[Service]
Type=forking
PIDFile=/run/shadowsocks/server.pid
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p /run/shadowsocks
ExecStartPre=/bin/chown root:root /run/shadowsocks
ExecStart=/usr/local/bin/ssserver --pid-file /var/run/shadowsocks/server.pid -c /etc/shadowsocks/config.json -d start
Restart=on-abort
User=root
Group=root
UMask=0027
[Install]
WantedBy=multi-user.target
设置文件权限:1
# chmod 755 /etc/systemd/system/shadowsocks.service
启动服务,enable是将服务设为自动启动。1
2# systemctl start shadowsocks
# systemctl enable shadowsocks
查看服务状态:1
# systemctl status shadowsocks