Skip to main content

Shadowproxy

Python package Build Status Python Version Version Format License Code Coverage Lines Of Code Code style: black

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)

Source distribution for shadowproxy 0.7.0
File Size Uploaded
shadowproxy-0.7.0.tar.gz 23.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for shadowproxy 0.7.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.9

1 release file

0.1.8

1 release file

0.1.7

1 release file

0.1.6

1 release file

0.1.5

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page