You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
clowwindy 538c4d6cba bump 6 years ago
packaging/py2exe add bind address 7 years ago
shadowsocks add timeout in local 6 years ago
test fix workers 6 years ago
.gitignore add nodelay 6 years ago
.travis.yml remove workers 6 years ago
CHANGES bump 6 years ago
LICENSE move to pypi 7 years ago bump 6 years ago
README.rst bump 6 years ago
config.json add test 6 years ago add timeout in local 6 years ago fix test 6 years ago add latency test 6 years ago


Current version: 1.4.5 Build Status

shadowsocks is a lightweight tunnel proxy which can help you get through firewalls.

Both TCP CONNECT and UDP ASSOCIATE are implemented.



First, make sure you have Python 2.6 or 2.7.

$ python --version
Python 2.6.8

Install Shadowsocks.

Debian / Ubuntu:

apt-get install python-pip python-gevent python-m2crypto
pip install shadowsocks


yum install m2crypto python-setuptools
easy_install pip
pip install shadowsocks


git clone
cd M2Crypto
pip install .
pip install shadowsocks


Choose a GUI client


Create a config file /etc/shadowsocks.json (or put it in other path). Example:

    "local_address": "",
    "fast_open": false,
    "workers": 1

Explanation of the fields:

Name Explanation
server the address your server listens
server_port server port
local_address the address your local listens
local_port local port
password password used for encryption
timeout in seconds
method encryption method, “aes-256-cfb” is recommended
fast_open use TCP_FASTOPEN, true / false
workers number of workers, available on Unix/Linux

Run ssserver -c /etc/shadowsocks.json on your server. To run it in the background, use supervisor.

On your client machine, run sslocal -c /etc/shadowsocks.json.

Change the proxy settings in your browser to

protocol: socks5
port:     your local_port

Notice: If you want to use encryption methods other than “table”, please install M2Crypto (See Encryption Section).

It’s recommended to use shadowsocks with AutoProxy or Proxy SwitchySharp.

Command line args

You can use args to override settings from config.json.

sslocal -s server_name -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


Salsa20 is a fast stream cipher.

Use “salsa20-ctr” in shadowsocks.json.

And install these packages:

Debian / Ubuntu:

apt-get install python-numpy
pip install salsa20




Bugs and Issues

Please visit issue tracker

Mailing list:

Also see troubleshooting