shadowsocks/README.md

88 lines
2.7 KiB
Markdown
Raw Normal View History

2012-04-20 13:10:49 +00:00
shadowsocks
2012-04-20 14:26:00 +00:00
===========
[![Build Status](https://travis-ci.org/clowwindy/shadowsocks.png)](https://travis-ci.org/clowwindy/shadowsocks)
2013-06-14 04:22:24 +00:00
Current version: 1.2.3
2012-12-30 04:28:23 +00:00
2012-04-20 14:26:00 +00:00
shadowsocks is a lightweight tunnel proxy which can help you get through firewalls
2013-01-04 10:13:33 +00:00
Other ports and clients can be found [here](https://github.com/clowwindy/shadowsocks/wiki/Ports-and-Clients).
2013-05-31 15:57:22 +00:00
Usage
2012-04-20 14:26:00 +00:00
-----------
First, make sure you have Python 2.6 or 2.7.
$ python --version
Python 2.6.8
2012-12-30 05:28:51 +00:00
Then edit `config.json`, change the following values:
2012-04-20 14:26:00 +00:00
2012-11-02 09:36:57 +00:00
server your server ip or hostname
server_port server port
local_port local port
password a password used to encrypt transfer
2013-05-22 06:15:08 +00:00
method encryption method, "bf-cfb", "aes-256-cfb", "des-cfb", "rc4", etc. Default is table
2013-05-22 06:14:37 +00:00
2012-11-02 09:36:57 +00:00
Put all the files on your server. Run `python server.py` on your server. To run it in the background, run `nohup python server.py > log &`.
2012-04-20 14:26:00 +00:00
2012-11-02 09:36:57 +00:00
Put all the files on your client machine. Run `python local.py` on your client machine.
2012-04-20 14:26:00 +00:00
2013-05-21 08:52:22 +00:00
Change the proxy setting in your browser into
2012-04-20 14:26:00 +00:00
2013-05-21 08:52:22 +00:00
protocol: socks5
hostname: 127.0.0.1
port: your local_port
2012-12-12 07:19:51 +00:00
2013-05-31 15:57:22 +00:00
Encryption
2012-12-06 06:39:06 +00:00
------------
2013-05-31 15:57:22 +00:00
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
Command line args
-----------------
2012-12-06 06:39:06 +00:00
You can use args to override settings from `config.json`.
2013-06-14 04:22:24 +00:00
python local.py -s server_name -p server_port -l local_port -k password -m bf-cfb -b bind_address -6
python server.py -p server_port -k password -m bf-cfb -6
2012-12-30 05:28:51 +00:00
2013-05-31 15:57:22 +00:00
Performance
------------
2012-12-30 05:28:51 +00:00
You may want to install gevent for better performance.
2013-01-05 08:26:19 +00:00
$ sudo apt-get install python-gevent
2012-12-30 06:01:41 +00:00
Or:
2013-01-05 08:26:19 +00:00
$ sudo apt-get install libevent-dev python-pip
$ sudo pip install gevent
2012-12-30 06:01:41 +00:00
2013-05-31 15:57:22 +00:00
Troubleshooting
2012-12-12 07:19:51 +00:00
---------------
* 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.