|
|
|
shadowsocks
|
|
|
|
===========
|
|
|
|
|
|
|
|
|PyPI version| |Build Status|
|
|
|
|
|
|
|
|
A fast tunnel proxy that helps you bypass firewalls.
|
|
|
|
|
|
|
|
`中文说明 <https://github.com/clowwindy/shadowsocks/wiki/Shadowsocks-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E>`__
|
|
|
|
|
|
|
|
Install
|
|
|
|
-------
|
|
|
|
|
|
|
|
You'll have a client on your local side, and setup a server on a remote
|
|
|
|
server.
|
|
|
|
|
|
|
|
Client
|
|
|
|
~~~~~~
|
|
|
|
|
|
|
|
- `Windows <https://github.com/clowwindy/shadowsocks/wiki/Ports-and-Clients#windows>`__
|
|
|
|
/ `OS
|
|
|
|
X <https://github.com/shadowsocks/shadowsocks-iOS/wiki/Shadowsocks-for-OSX-Help>`__
|
|
|
|
- `Android <https://github.com/clowwindy/shadowsocks/wiki/Ports-and-Clients#android>`__
|
|
|
|
/ `iOS <https://github.com/shadowsocks/shadowsocks-iOS/wiki/Help>`__
|
|
|
|
- `OpenWRT <https://github.com/clowwindy/shadowsocks/wiki/Ports-and-Clients#openwrt>`__
|
|
|
|
|
|
|
|
Server
|
|
|
|
~~~~~~
|
|
|
|
|
|
|
|
Debian / Ubuntu:
|
|
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
apt-get install python-pip
|
|
|
|
pip install shadowsocks
|
|
|
|
|
|
|
|
Or simply ``apt-get install shadowsocks`` if you have `Debian
|
|
|
|
sid <https://packages.debian.org/unstable/python/shadowsocks>`__ in your
|
|
|
|
source list.
|
|
|
|
|
|
|
|
CentOS:
|
|
|
|
^^^^^^^
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
yum install python-setuptools
|
|
|
|
easy_install pip
|
|
|
|
pip install shadowsocks
|
|
|
|
|
|
|
|
Windows:
|
|
|
|
^^^^^^^^
|
|
|
|
|
|
|
|
Download OpenSSL for Windows and install. Then install shadowsocks via
|
|
|
|
easy\_install and pip as Linux. If you don't know how to use them, you
|
|
|
|
can directly download `the
|
|
|
|
package <https://pypi.python.org/pypi/shadowsocks>`__, and use
|
|
|
|
``python shadowsocks/server.py`` instead of ``ssserver`` command below.
|
|
|
|
|
|
|
|
Configuration
|
|
|
|
-------------
|
|
|
|
|
|
|
|
On your server create a config file ``/etc/shadowsocks.json``. Example:
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
{
|
|
|
|
"server":"my_server_ip",
|
|
|
|
"server_port":8388,
|
|
|
|
"local_address": "127.0.0.1",
|
|
|
|
"local_port":1080,
|
|
|
|
"password":"mypassword",
|
|
|
|
"timeout":300,
|
|
|
|
"method":"aes-256-cfb",
|
|
|
|
"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 | default: "aes-256-cfb", see `Encryption <https://github.com/clowwindy/shadowsocks/wiki/Encryption>`__ |
|
|
|
|
+------------------+---------------------------------------------------------------------------------------------------------+
|
|
|
|
| fast\_open | use `TCP\_FASTOPEN <https://github.com/clowwindy/shadowsocks/wiki/TCP-Fast-Open>`__, 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 <https://github.com/clowwindy/shadowsocks/wiki/Configure-Shadowsocks-with-Supervisor>`__.
|
|
|
|
|
|
|
|
On your client machine, use the same configuration as your server, and
|
|
|
|
start your client.
|
|
|
|
|
|
|
|
If you use Chrome, it's recommended to use
|
|
|
|
`SwitchySharp <https://chrome.google.com/webstore/detail/proxy-switchysharp/dpplabbmogkhghncfbfdeeokoefdjegm>`__.
|
|
|
|
Change the proxy settings to
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
protocol: socks5
|
|
|
|
hostname: 127.0.0.1
|
|
|
|
port: your local_port
|
|
|
|
|
|
|
|
If you can't install
|
|
|
|
`SwitchySharp <https://chrome.google.com/webstore/detail/proxy-switchysharp/dpplabbmogkhghncfbfdeeokoefdjegm>`__,
|
|
|
|
you can launch Chrome with the following arguments to force Chrome to
|
|
|
|
use the proxy:
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
Chrome.exe --proxy-server="socks5://127.0.0.1:1080" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost"
|
|
|
|
|
|
|
|
If you can't even download Chrome, find a friend to download a `Chrome
|
|
|
|
Standalone <https://support.google.com/installer/answer/126299>`__
|
|
|
|
installer for you.
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
List all available args with ``-h``.
|
|
|
|
|
|
|
|
Wiki
|
|
|
|
----
|
|
|
|
|
|
|
|
You can find all the documentation in the wiki:
|
|
|
|
https://github.com/clowwindy/shadowsocks/wiki
|
|
|
|
|
|
|
|
License
|
|
|
|
-------
|
|
|
|
|
|
|
|
MIT
|
|
|
|
|
|
|
|
Bugs and Issues
|
|
|
|
---------------
|
|
|
|
|
|
|
|
- `Troubleshooting <https://github.com/clowwindy/shadowsocks/wiki/Troubleshooting>`__
|
|
|
|
- `Issue
|
|
|
|
Tracker <https://github.com/clowwindy/shadowsocks/issues?state=open>`__
|
|
|
|
- `Mailing list <http://groups.google.com/group/shadowsocks>`__
|
|
|
|
|
|
|
|
.. |PyPI version| image:: https://img.shields.io/pypi/v/shadowsocks.svg?style=flat
|
|
|
|
:target: https://pypi.python.org/pypi/shadowsocks
|
|
|
|
.. |Build Status| image:: https://img.shields.io/travis/clowwindy/shadowsocks/master.svg?style=flat
|
|
|
|
:target: https://travis-ci.org/clowwindy/shadowsocks
|