Shadowproxy
Introduction
A proxy server that implements Socks5/Shadowsocks/Redirect/HTTP (tcp) and Shadowsocks/TProxy/Tunnel (udp) protocols.
Thanks to Dabeaz's awesome curio project.
This project is inspired by qwj's python-proxy project.
It is a replacement of shadowsocks and shadowsocks-libev, you can replace ss-redir, ss-tunnel, ss-server, ss-local with just one shadowproxy command.
Installation
shadowproxy requires Python3.6+
pip3 install shadowproxy
Features
supported protocols
| protocol | server | client | scheme |
|---|---|---|---|
| socks5 | ✓ | ✓ | socks:// |
| socks4 | ✓ | ✓ | socks4:// |
| ss | ✓ | ✓ | ss:// |
| ss aead | ✓ | ✓ | ss:// |
| http connect | ✓ | ✓ | http:// |
| http forward | ✓ | forward:// | |
| transparent proxy | ✓ | red:// | |
| tunnel(udp) | ✓ | tunneludp:// | |
| ss(udp) | ✓ | ✓ | ssudp:// |
supported plugins
| plugin | server | client |
|---|---|---|
| http_simple | ✓ | ✓ |
| tls1.2_ticket_auth | ✓ | ✓ |
supported ciphers
- aes-256-cfb
- aes-128-cfb
- aes-192-cfb
- chacha20
- salsa20
- rc4
- chacha20-ietf-poly1305
- aes-256-gcm
- aes-192-gcm
- aes-128-gcm
other features
- support both IPv4 and IPv6
Here are some ipv6 url examples:
http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html
http://[1080:0:0:0:8:800:200C:417A]/index.html
http://[3ffe:2a00:100:7031::1]
http://[1080::8:800:200C:417A]/foo
http://[::192.9.5.5]/ipng
http://[::FFFF:129.144.52.38]:80/index.html
http://[2010:836B:4179::836B:4179]
Usage
usage: shadowproxy [-h] [-v] [--version] server [server ...]
uri syntax:
{scheme}://[{userinfo}@][hostname]:{port}[/?[plugin={p;args}][via={uri}][target={t}][source_ip={ip}]][#{fragment}]
userinfo = cipher:password or base64(cipher:password) when scheme is ss, ssudp
userinfo = username:password or base64(username:password) when scheme is socks, http.
examples:
# simple shadowsocks server
shadowproxy ss://chacha20:password@0.0.0.0:8888
# ipv6 binding
shadowproxy ss://chacha20:password@[::]:8888
# socks5 --> shadowsocks
shadowproxy -v socks://:8527/?via=ss://aes-256-cfb:password@127.0.0.1:8888
# http --> shadowsocks
shadowproxy -v http://:8527/?via=ss://aes-256-cfb:password@127.0.0.1:8888
# redir --> shadowsocks
shadowproxy -v red://:12345/?via=ss://aes-256-cfb:password@127.0.0.1:8888
# shadowsocks server (udp)
shadowproxy -v ssudp://aes-256-cfb:password@:8527
# tunnel --> shadowsocks (udp)
shadowproxy -v tunneludp://:8527/?target=8.8.8.8:53&via=ssudp://aes-256-cfb:password@127.0.0.1:8888
# tproxy --> shadowsocks (udp)
shadowproxy -v tproxyudp://:8527/?via=ssudp://aes-256-cfb:password@127.0.0.1:8888
use docker:
docker run -it --rm tensiongyb/shadowproxy -vv socks://:8527
Metadata
Release files for shadowproxy 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| shadowproxy-0.7.0.tar.gz | 23.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| shadowproxy-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 56.7 kB
Release files / shadowproxy-0.7.0.tar.gz
| Download URL | shadowproxy-0.7.0.tar.gz |
|---|---|
| Size | 23.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
13dadea82fd314e996d41437858010a80d3dc9426c7025101020138706d37954
|
|
BLAKE2b-256 checksum How to use checksums |
57f857f9630c15e1dd68b93118033d910b491cfbf905a68693f91069746191ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.5
|
Release files / shadowproxy-0.7.0-py3-none-any.whl
| Download URL | shadowproxy-0.7.0-py3-none-any.whl |
|---|---|
| Size | 33.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ffdace7fa0cb9a60882a40d07f9c42c8bb0edd4cb4d293d72ff05167447535a4
|
|
BLAKE2b-256 checksum How to use checksums |
916caf1adc15ed11f6902e801cb8de54760899ea2d91ae0d60b3d17130d8075b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.5
|