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.
Go to file
clowwindy edec422aef fix test 2013-06-22 17:34:59 +08:00
packaging/py2exe add bind address 2013-06-14 12:22:24 +08:00
shadowsocks fix test 2013-06-22 17:34:59 +08:00
.gitignore initial commit 2012-04-20 06:10:49 -07:00
.travis.yml move to pypi 2013-06-22 17:30:31 +08:00
CHANGES add CHANGES 2013-06-19 17:04:37 +08:00
LICENSE move to pypi 2013-06-22 17:30:31 +08:00
README.md move to pypi 2013-06-22 17:30:31 +08:00
config.json use random iv so we finally have strong encryption now 2013-05-22 11:35:25 +08:00
setup.py move to pypi 2013-06-22 17:30:31 +08:00
test.py move to pypi 2013-06-22 17:30:31 +08:00

README.md

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.

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

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

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

If you want to use non-default encryption method like "bf-cfb", please install M2Crypto.

Ubuntu:

sudo apt-get install python-m2crypto

Others:

pip install M2Crypto

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

Troubleshooting

  • I can only load some websites
    Check the logs of local.py. If you see only IPs, not hostnames, your may got DNS poisoned, but your browser hasn't been configured to let the proxy resolve DNS.
    To set proper DNS config, you can simply install FoxyProxy / Autoproxy for Firefox, or ProxySwitchy / SwitchySharp for Chrome. They will set the config in your browser automatically.
    Or you can change network.proxy.socks_remote_dns into true in about:config page if you use Firefox.
  • I can't load any websites and the log prints mode != 1
    Make sure proxy protocol is set to Socks5, not Socks4 or HTTP.
  • I use IE and I can't get my proxy to work
    Since you can't specify Socks4 or Socks5 in IE settings, you may want to use a PAC(Proxy auto-config) script, or just use Firefox instead.

License

MIT

Bugs and Issues

Please visit issue tracker