A fast tunnel proxy that helps you bypass firewalls. regulation cause this repo to get truncated, but there is still some history there. And tags.
Find a file
2013-06-27 03:01:00 +08:00
packaging/py2exe add bind address 2013-06-14 12:22:24 +08:00
shadowsocks better error message 2013-06-22 17:56:30 +08:00
.gitignore initial commit 2012-04-20 06:10:49 -07:00
.travis.yml fix test 2013-06-22 17:42:14 +08:00
CHANGES update CHANGES 2013-06-22 22:18:12 +08:00
config.json use random iv so we finally have strong encryption now 2013-05-22 11:35:25 +08:00
LICENSE move to pypi 2013-06-22 17:30:31 +08:00
README.md fix typo 2013-06-27 03:01:00 +08:00
README.rst update README.md because pypi has limit 2013-06-22 19:02:43 +08:00
setup.py update README.md because pypi has limit 2013-06-22 19:02:43 +08:00
test.py move to pypi 2013-06-22 17:30:31 +08:00

shadowsocks

Build Status Current version: 1.3.0

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

Other ports and clients can be found here.

Simplified Chinese

Usage

First, make sure you have Python 2.6 or 2.7.

$ python --version
Python 2.6.8

Install Shadowsocks.

pip install shadowsocks

Create a file named config.json, with the following content.

{
    "server":"my_server_ip",
    "server_port":8388,
    "local_port":1080,
    "password":"barfoo!",
    "timeout":600,
    "method":null
}

Explaination of the fields:

server          your server IP (IPv4/IPv6), notice that your server will listen to this IP
server_port     server port
local_port      local port
password        a password used to encrypt transfer
timeout         in seconds
method          encryption method, "bf-cfb", "aes-256-cfb", "des-cfb", "rc4", etc. Default is table, which is not secure. "aes-256-cfb" is recommended

cd into the directory of config.json. Run ssserver on your server. To run it in the background, run nohup ssserver > log &.

On your client machine, run sslocal.

Change the proxy setting in your browser into

protocol: socks5
hostname: 127.0.0.1
port:     your local_port

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
ssserver -c /etc/shadowsocks/config.json

Encryption

Default encryption method table, which is not secure, is not recommended. Please use "aes-256-cfb" or "bf-cfb". "rc4" is not secure, either, please don't use it.

List of all encryption methods:

  • aes-128-cfb
  • aes-192-cfb
  • aes-256-cfb
  • bf-cfb
  • camellia-128-cfb
  • camellia-192-cfb
  • camellia-256-cfb
  • cast5-cfb
  • des-cfb
  • idea-cfb
  • rc2-cfb
  • rc4
  • seed-cfb
  • table

If you want to use encryption method other than "table", please install M2Crypto.

Ubuntu:

sudo apt-get install python-m2crypto

Others:

pip install M2Crypto

Please notice that some encryption methods are not available on some environments.

Performance

You may want to install gevent for better performance.

$ sudo apt-get install python-gevent

Or:

$ sudo apt-get install libevent-dev python-pip
$ sudo pip install gevent

License

MIT

Bugs and Issues

Please visit issue tracker

Mailing list: http://groups.google.com/group/shadowsocks

Also see troubleshooting