一个轻量级网络混淆代理,基于 SOCKS5 协议,可用来代替 Shadowsocks。
- 只专注于混淆,用最简单高效的混淆算法达到目的;
- Py3.6 asyncio实现;
本项目为 你也能写个 Shadowsocks 的 Python 实现 作者实现了 GO 版本 Lightsocks
python版本为最新的3.6
git clone https://github.com/linw1995/lightsocks-python
cd lightsocks-python
pip install -r requirements.txt
用于运行在代理服务器的客户端,会还原混淆数据
$ python lsserver.py -h
usage: lsserver.py [-h] [--version] [--save CONFIG] [-c CONFIG]
[-s SERVER_ADDR] [-p SERVER_PORT] [-k PASSWORD] [--random]
A light tunnel proxy that helps you bypass firewalls
optional arguments:
-h, --help show this help message and exit
--version show version information
Proxy options:
--save CONFIG path to dump config
-c CONFIG path to config file
-s SERVER_ADDR server address, default: 0.0.0.0
-p SERVER_PORT server port, default: 8388
-k PASSWORD password
--random generate a random password to use
$ python lsserver.py --random --save config.json
generate random password
dump config file into 'config.json'
Listen to 0.0.0.0:8388
Please use:
lslocal -u "http://hostname:port/#vJjC3tW5l4nG7C3dHZ7hc77cIYrE2q0ikrWQw2MsRa9rqVlDU9vFTF5Hu6PX367kV6qRPU_z-Y_0sio4DAVV-1bmFrfoYoEHmmWkH9L1UDLZqOv8oYvPbe-miAg5Ow58aheFPitEeTX2bmhYC8nQFf1kA5lxpyc0Ljc2W2Du7TESlFIB8aJ7kz-DnczTXcsUv1oYlhpR-AbKf_DI8jMN_tRNdF-szgIJEQrqZ7alvfrNhCCVQNZ-EIIpSOOfXI7nnMC42B48h3egGzBsSpvpaXCNRhME4mEmePd2HFSrD0ty0SUAhjpvTv9BweUZgHrHKLG6Qi-zjLC0JEngI3VmfQ=="
to config lslocal
用于运行在本地电脑的客户端,用于桥接本地浏览器和远程代理服务,传输前会混淆数据
$ python lslocal.py -h
usage: lslocal.py [-h] [--version] [--save CONFIG] [-c CONFIG] [-u URL]
[-s SERVER_ADDR] [-p SERVER_PORT] [-b LOCAL_ADDR]
[-l LOCAL_PORT] [-k PASSWORD]
A light tunnel proxy that helps you bypass firewalls
optional arguments:
-h, --help show this help message and exit
--version show version information
Proxy options:
--save CONFIG path to dump config
-c CONFIG path to config file
-u URL url contains server address, port and password
-s SERVER_ADDR server address
-p SERVER_PORT server port, default: 8388
-b LOCAL_ADDR local binding address, default: 127.0.0.1
-l LOCAL_PORT local port, default: 1080
-k PASSWORD password
$ python lslocal.py -u "http://remoteAddr:remotePort/#password" --save config.json
dump config file into 'config.json'
Listen to 127.0.0.1:1080