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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shadowproxy-0.7.0.tar.gz (23.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shadowproxy-0.7.0-py3-none-any.whl (33.7 kB view details)

Uploaded Python 3

File details

Details for the file shadowproxy-0.7.0.tar.gz.

File metadata

  • Download URL: shadowproxy-0.7.0.tar.gz
  • Upload date:
  • Size: 23.1 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for shadowproxy-0.7.0.tar.gz
Algorithm Hash digest
SHA256 13dadea82fd314e996d41437858010a80d3dc9426c7025101020138706d37954
MD5 96af1f219af5dc36a2e1d1230eeee2c1
BLAKE2b-256 57f857f9630c15e1dd68b93118033d910b491cfbf905a68693f91069746191ad

See more details on using hashes here.

File details

Details for the file shadowproxy-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: shadowproxy-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 33.7 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for shadowproxy-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ffdace7fa0cb9a60882a40d07f9c42c8bb0edd4cb4d293d72ff05167447535a4
MD5 f9b905db908f60ece1437b196a5da3ee
BLAKE2b-256 916caf1adc15ed11f6902e801cb8de54760899ea2d91ae0d60b3d17130d8075b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 files

0.6.8

2 files

0.6.7

2 files

0.6.6

2 files

0.6.5

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

1 file

0.2.4

1 file

0.2.3

1 file

0.2.2

1 file

0.2.1

1 file

0.2.0

1 file

0.1.9

1 file

0.1.8

1 file

0.1.7

1 file

0.1.6

1 file

0.1.5

0.1.3

1 file

0.1.2

1 file

0.1.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page