安装配置shadowsocks-python

安装配置shadowsocks-python

在海外买台VPS,除了干些正事之外,不用来科学上网总觉得少了点什么。搭建OpenVPN是一个选择,不过shadowsocks的搭建和配置更加简单,特别是配置多用户使用。


在开始之前,可以参考一下shadowsocks的官网或者github上面的shadowsocks项目

shadowsocks有几个服务器端版本,分别是Python,Go,C with libev和C++ with Qt。其中Python是shadowsocks的作者clowwindy制作,安装和使用最为简单,而且支持多端口。

首先查看一下Python的版本,保证是2.6或者2.7。

$ python --version
Python 2.7.3

然后使用PIP安装。

$ pip install shadowsocks

假如你看到pip: command not found的错误,那就要先安装一下PIP了。

Redhat, CentOS或者Fedora

$ yum -y install python-pip

Debian或者Ubuntu

$ apt-get install python-pip -y

运行ssserver -help验证shadowsocks已经正确安装。

$ ssserver -help
option -e not recognized
usage: ssserver [OPTION]...
A fast tunnel proxy that helps you bypass firewalls.

You can supply configurations via either config file or command line arguments.

Proxy options:
-c CONFIG              path to config file
-s SERVER_ADDR         server address, default: 0.0.0.0
-p SERVER_PORT         server port, default: 8388
-k PASSWORD            password
-m METHOD              encryption method, default: aes-256-cfb
-t TIMEOUT             timeout in seconds, default: 300
--fast-open            use TCP_FASTOPEN, requires Linux 3.7+
--workers WORKERS      number of workers, available on Unix/Linux
--forbidden-ip IPLIST  comma seperated IP list forbidden to connect
--manager-address ADDR optional server manager UDP address, see wiki

General options:
-h, --help             show this help message and exit
-d start/stop/restart  daemon mode
--pid-file PID_FILE    pid file for daemon mode
--log-file LOG_FILE    log file for daemon mode
--user USER            username to run as
-v, -vv                verbose mode
-q, -qq                quiet mode, only show warnings/errors
--version              show version information

Online help: <https://github.com/shadowsocks/shadowsocks>

最简单的方法是直接传参启动。其中443是服务器端口,SSpwd20160731#是密码,aes-256-cfb是使用AES 256bit加密,-d start指示启动服务。

$ ssserver -p 443 -k SSpwd20160731# -m aes-256-cfb -d start

利用-d stop参数可以关闭shadowsocks服务。

$ ssserver -d stop

更为好的方法是创建一个配置文件,然后把配置文件通过参数c传给ssserver。

首先创建一个shadowsocks目录,当然这不是必须的。

$ mkdir /etc/local/shadowsocks

shadowsocks的配置文件使用json格式。你也可以参考shadowsocks wiki上面的说明。下面的命令在/etc/local/shadowsocks里创建了一个叫config.json的配置文件。参数和刚才的命令一样。

$ cd /etc/local/shadowsocks
$ cat >> config.json << EOF
{
    "server_port":443,
    "password":"SSpwd20160731#",
    "method":"aes-256-cfb"
}
EOF

然后执行下面的命令就可以使用配置文件启动shadowsocks了。

ssserver -c /usr/local/shadowsocks/config.json -d start

配置文件里面使用port_password可以让shadowsocks服务开放多个端口,而且每个端口使用独立的密码。

{
    "port_password": {
        "8381": "Password1#",
        "8382": "SPassword1#",
        "8383": "Password1#",
        "8384": "Password1#"
    },
    "method":"aes-256-cfb"
}

为了让每次开机都运行,把下面的命令加入到/etc/rc.local里面。

/usr/local/bin/ssserver -c /usr/local/shadowsocks/config.json -d start
SMG
SMG

小小的博主

目前为止有一条评论

在CentOS 7上安装shadowsocks-libev – 小小的宇宙 发布于9:52 下午 - 6月 2, 2018

[…] 曾经在这里介绍过shadowsocks-python的安装。不过由于某些原因,Python版已经好久没更新了。所以再写一篇基于C语言和libev的shadowsocks-libev安装。 […]