commit
0dc33bf977
6 changed files with 56 additions and 125 deletions
|
@ -1,38 +1,27 @@
|
|||
How to contribute
|
||||
How to Contribute
|
||||
=================
|
||||
|
||||
在你提交问题前,请先[自行诊断]一下。提交时附上诊断过程中的问题和下列结果,
|
||||
否则如果我们无法重现你的问题,也就不能帮助你。
|
||||
Pull Requests
|
||||
-------------
|
||||
|
||||
Before you submit issues, please read [Troubleshooting] and take a few minutes
|
||||
to read this guide.
|
||||
|
||||
问题反馈
|
||||
-------
|
||||
|
||||
请提交下面的信息:
|
||||
|
||||
1. 你是如何搭建环境的?(操作系统,Shadowsocks 版本)
|
||||
2. 操作步骤是什么?
|
||||
3. 浏览器里的现象是什么?一直转菊花,还是有提示错误?
|
||||
4. 发生错误时,客户端和服务端最后一部分日志。
|
||||
5. 其它你认为可能和问题有关的信息。
|
||||
|
||||
如果你不清楚其中某条的含义, 可以直接跳过那一条。
|
||||
1. Pull requests are welcome. If you would like to add a large feature
|
||||
or make a significant change, make sure to open an issue to discuss with
|
||||
people first.
|
||||
2. Follow PEP8.
|
||||
3. Make sure to pass the unit tests. Write unit tests for new modules if
|
||||
needed.
|
||||
|
||||
Issues
|
||||
------
|
||||
|
||||
Please include the following information in your submission:
|
||||
1. Only bugs and feature requests are accepted here.
|
||||
2. We'll only work on important features. If the feature you're asking only
|
||||
benefits a few people, you'd better implement the feature yourself and send us
|
||||
a pull request, or ask some of your friends to do so.
|
||||
3. We don't answer questions of any other types here. Since very few people
|
||||
are watching the issue tracker here, you'll probably get no help from here.
|
||||
Read [Troubleshooting] and get help from forums or [mailing lists].
|
||||
|
||||
1. How did you set up your environment? (OS, version of Shadowsocks)
|
||||
2. Steps to reproduce the problem.
|
||||
3. What happened in your browser? Just no response, or any error message?
|
||||
4. 10 lines of log on the local side of shadowsocks when the error happened.
|
||||
5. 10 lines of log on the server side of shadowsocks when the error happened.
|
||||
6. Any other useful information.
|
||||
|
||||
Skip any of them if you don't know its meaning.
|
||||
|
||||
[Troubleshooting]: https://github.com/clowwindy/shadowsocks/wiki/Troubleshooting
|
||||
[自行诊断]: https://github.com/clowwindy/shadowsocks/wiki/Troubleshooting
|
||||
[mailing lists]: https://groups.google.com/forum/#!forum/shadowsocks
|
||||
|
|
|
@ -7,8 +7,6 @@ shadowsocks
|
|||
|
||||
A fast tunnel proxy that helps you bypass firewalls.
|
||||
|
||||
[中文说明][Chinese Readme]
|
||||
|
||||
Server
|
||||
------
|
||||
|
||||
|
@ -67,9 +65,9 @@ Bugs and Issues
|
|||
* [Mailing list]
|
||||
|
||||
|
||||
|
||||
[Android]: https://github.com/shadowsocks/shadowsocks/wiki/Ports-and-Clients#android
|
||||
[Build Status]: https://img.shields.io/travis/shadowsocks/shadowsocks/master.svg?style=flat
|
||||
[Chinese Readme]: https://github.com/shadowsocks/shadowsocks/wiki/Shadowsocks-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E
|
||||
[Configuration]: https://github.com/shadowsocks/shadowsocks/wiki/Configuration-via-Config-File
|
||||
[Coverage Status]: https://jenkins.shadowvpn.org/result/shadowsocks
|
||||
[Coverage]: https://jenkins.shadowvpn.org/job/Shadowsocks/ws/htmlcov/index.html
|
||||
|
|
120
README.rst
120
README.rst
|
@ -5,26 +5,11 @@ shadowsocks
|
|||
|
||||
A fast tunnel proxy that helps you bypass firewalls.
|
||||
|
||||
`中文说明 <https://github.com/shadowsocks/shadowsocks/wiki/Shadowsocks-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E>`__
|
||||
Server
|
||||
------
|
||||
|
||||
Install
|
||||
-------
|
||||
|
||||
You'll have a client on your local side, and setup a server on a remote
|
||||
server.
|
||||
|
||||
Client
|
||||
~~~~~~
|
||||
|
||||
- `Windows <https://github.com/shadowsocks/shadowsocks/wiki/Ports-and-Clients#windows>`__
|
||||
/ `OS
|
||||
X <https://github.com/shadowsocks/shadowsocks-iOS/wiki/Shadowsocks-for-OSX-Help>`__
|
||||
- `Android <https://github.com/shadowsocks/shadowsocks/wiki/Ports-and-Clients#android>`__
|
||||
/ `iOS <https://github.com/shadowsocks/shadowsocks-iOS/wiki/Help>`__
|
||||
- `OpenWRT <https://github.com/shadowsocks/shadowsocks/wiki/Ports-and-Clients#openwrt>`__
|
||||
|
||||
Server
|
||||
~~~~~~
|
||||
~~~~~~~
|
||||
|
||||
Debian / Ubuntu:
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
@ -34,107 +19,56 @@ 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
|
||||
yum install python-setuptools && easy_install pip
|
||||
pip install shadowsocks
|
||||
|
||||
Windows:
|
||||
^^^^^^^^
|
||||
|
||||
Download `OpenSSL for
|
||||
Windows <http://slproweb.com/products/Win32OpenSSL.html>`__ 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.
|
||||
See `Install Server on
|
||||
Windows <https://github.com/shadowsocks/shadowsocks/wiki/Install-Shadowsocks-Server-on-Windows>`__
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
On your server create a config file ``/etc/shadowsocks.json``. Example:
|
||||
Usage
|
||||
~~~~~
|
||||
|
||||
::
|
||||
|
||||
{
|
||||
"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
|
||||
}
|
||||
|
||||
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/shadowsocks/shadowsocks/wiki/Encryption>`__ |
|
||||
+------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| fast\_open | use `TCP\_FASTOPEN <https://github.com/shadowsocks/shadowsocks/wiki/TCP-Fast-Open>`__, true / false |
|
||||
+------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| workers | number of workers, available on Unix/Linux |
|
||||
+------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
|
||||
On your server:
|
||||
|
||||
To run in the foreground:
|
||||
|
||||
::
|
||||
|
||||
ssserver -c /etc/shadowsocks.json
|
||||
ssserver -p 8000 -k password -m rc4-md5
|
||||
|
||||
To run in the background:
|
||||
|
||||
::
|
||||
|
||||
ssserver -c /etc/shadowsocks.json -d start
|
||||
ssserver -c /etc/shadowsocks.json -d stop
|
||||
ssserver -p 8000 -k password -m rc4-md5 -d start
|
||||
ssserver -p 8000 -k password -m rc4-md5 -d stop
|
||||
|
||||
On your client machine, use the same configuration as your server. Check
|
||||
the README of your client for more information.
|
||||
Check all the options via ``-h``. You can also use a
|
||||
`Configuration <https://github.com/shadowsocks/shadowsocks/wiki/Configuration-via-Config-File>`__
|
||||
file instead.
|
||||
|
||||
Command Line Options
|
||||
--------------------
|
||||
Client
|
||||
------
|
||||
|
||||
Check the options via ``-h``.You can use args to override settings from
|
||||
``config.json``.
|
||||
- `Windows <https://github.com/shadowsocks/shadowsocks/wiki/Ports-and-Clients#windows>`__
|
||||
/ `OS
|
||||
X <https://github.com/shadowsocks/shadowsocks-iOS/wiki/Shadowsocks-for-OSX-Help>`__
|
||||
- `Android <https://github.com/shadowsocks/shadowsocks/wiki/Ports-and-Clients#android>`__
|
||||
/ `iOS <https://github.com/shadowsocks/shadowsocks-iOS/wiki/Help>`__
|
||||
- `OpenWRT <https://github.com/shadowsocks/openwrt-shadowsocks>`__
|
||||
|
||||
::
|
||||
|
||||
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 -d start --pid-file=/tmp/shadowsocks.pid
|
||||
ssserver -c /etc/shadowsocks/config.json -d stop --pid-file=/tmp/shadowsocks.pid
|
||||
Use GUI clients on your local PC/phones. Check the README of your client
|
||||
for more information.
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
You can find all the documentation in the wiki:
|
||||
https://github.com/shadowsocks/shadowsocks/wiki
|
||||
You can find all the documentation in the
|
||||
`Wiki <https://github.com/shadowsocks/shadowsocks/wiki>`__.
|
||||
|
||||
License
|
||||
-------
|
||||
|
@ -147,7 +81,7 @@ Bugs and Issues
|
|||
- `Troubleshooting <https://github.com/shadowsocks/shadowsocks/wiki/Troubleshooting>`__
|
||||
- `Issue
|
||||
Tracker <https://github.com/shadowsocks/shadowsocks/issues?state=open>`__
|
||||
- `Mailing list <http://groups.google.com/group/shadowsocks>`__
|
||||
- `Mailing list <https://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
|
||||
|
|
|
@ -42,11 +42,16 @@ def load_libsodium():
|
|||
global loaded, libsodium, buf
|
||||
|
||||
from ctypes.util import find_library
|
||||
libsodium_path = None
|
||||
for p in ('sodium', 'libsodium'):
|
||||
libsodium_path = find_library(p)
|
||||
if libsodium_path:
|
||||
break
|
||||
else:
|
||||
import glob
|
||||
for libsodium_path in glob.glob('/usr/lib/libsodium.*'):
|
||||
pass
|
||||
if libsodium_path is None:
|
||||
raise Exception('libsodium not found')
|
||||
logging.info('loading libsodium from %s', libsodium_path)
|
||||
libsodium = CDLL(libsodium_path)
|
||||
|
|
|
@ -39,11 +39,16 @@ def load_openssl():
|
|||
global loaded, libcrypto, buf
|
||||
|
||||
from ctypes.util import find_library
|
||||
libcrypto_path = None
|
||||
for p in ('crypto', 'eay32', 'libeay32'):
|
||||
libcrypto_path = find_library(p)
|
||||
if libcrypto_path:
|
||||
break
|
||||
else:
|
||||
import glob
|
||||
for libcrypto_path in glob.glob('/usr/lib/libcrypto.*'):
|
||||
pass
|
||||
if libcrypto_path is None:
|
||||
raise Exception('libcrypto(OpenSSL) not found')
|
||||
logging.info('loading libcrypto from %s', libcrypto_path)
|
||||
libcrypto = CDLL(libcrypto_path)
|
||||
|
|
|
@ -172,7 +172,7 @@ def get_config(is_local):
|
|||
sys.exit(2)
|
||||
|
||||
config['password'] = config.get('password', '')
|
||||
config['method'] = config.get('method', 'aes-256-cfb')
|
||||
config['method'] = config.get('method', b'aes-256-cfb')
|
||||
config['port_password'] = config.get('port_password', None)
|
||||
config['timeout'] = int(config.get('timeout', 300))
|
||||
config['fast_open'] = config.get('fast_open', False)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue