Skip to main content

A proxy server that implements Socks5/Shadowsocks/Redirect/HTTP (tcp) and Shadowsocks/TProxy/Tunnel (udp) protocols.

Project description

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

Project details


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

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.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page