shadowsocks =========== [![Build Status](https://travis-ci.org/clowwindy/shadowsocks.png)](https://travis-ci.org/clowwindy/shadowsocks) 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](https://github.com/clowwindy/shadowsocks/wiki/Ports-and-Clients). 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](http://chandlerproject.org/Projects/MeTooCrypto). 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](https://github.com/clowwindy/shadowsocks/issues?state=open)