Home

Awesome

spp

<img src="https://img.shields.io/github/license/esrrhs/spp"> <img src="https://img.shields.io/github/languages/top/esrrhs/spp"> Go Report Card <img src="https://img.shields.io/github/v/release/esrrhs/spp"> <img src="https://img.shields.io/github/downloads/esrrhs/spp/total"> <img src="https://img.shields.io/docker/pulls/esrrhs/spp"> <img src="https://img.shields.io/github/actions/workflow/status/esrrhs/spp/go.yml?branch=master">

SPP is a simple and powerful proxy

Note: This tool is only to be used for study and research, do not use it for illegal purposes

image

Features

Instructions

Server

# ./spp -type server -proto tcp -listen :8888
# ./spp -type server -proto tcp -listen :8888 -proto rudp -listen :9999 -proto ricmp -listen 0.0.0.0
# docker run --name my-server -d --restart=always --network host esrrhs/spp ./spp -proto tcp -listen :8888

Client

# ./spp -name "test" -type proxy_client -server www.server.com:8888 -fromaddr :8080 -toaddr :8080 -proxyproto tcp
# ./spp -name "test" -type reverse_proxy_client -server www.server.com:8888 -fromaddr :8080 -toaddr :8080 -proxyproto tcp
# ./spp -name "test" -type socks5_client -server www.server.com:8888 -fromaddr :8080 -proxyproto tcp
# ./spp -name "test" -type reverse_socks5_client -server www.server.com:8888 -fromaddr :8080 -proxyproto tcp
Proxy UDP
# ./spp -name "test" -type proxy_client -server www.server.com:8888 -fromaddr :8080 -toaddr :8080 -proxyproto udp

Proxy rudp
# ./spp -name "test" -type proxy_client -server www.server.com:8888 -fromaddr :8081 -toaddr :8081 -proxyproto rudp

Proxy ricmp
# ./spp -name "test" -type proxy_client -server www.server.com:8888 -fromaddr :8082 -toaddr :8082 -proxyproto ricmp

At the same time, the above three
# ./spp -name "test" -type proxy_client -server www.server.com:8888 -fromaddr :8080 -toaddr :8080 -proxyproto udp -fromaddr :8081 -toaddr :8081 -proxyproto rudp -fromaddr :8082 -toaddr :8082 -proxyproto ricmp

Proxy TCP, internal RUDP protocol forwarding
# ./spp -name "test" -type proxy_client -server www.server.com:8888 -fromaddr :8080 -toaddr :8080 -proxyproto tcp -proto rudp

Proxy TCP, internal RICMP protocol forwarding
# ./spp -name "test" -type proxy_client -server www.server.com -fromaddr :8080 -toaddr :8080 -proxyproto tcp -proto ricmp

Agent UDP, internal TCP protocol forwarding
# ./spp -name "test" -type proxy_client -server www.server.com:8888 -fromaddr :8080 -toaddr :8080 -proxyproto udp -proto tcp

Agent UDP, internal KCP protocol forwarding
# ./spp -name "test" -type proxy_client -server www.server.com:8888 -fromaddr :8080 -toaddr :8080 -proxyproto udp -proto kcp

Proxy TCP, internal Quic protocol forwarding
# ./spp -name "test" -type proxy_client -server www.server.com:8888 -fromaddr :8080 -toaddr :8080 -proxyproto tcp -proto quic

Proxy TCP, internal RHTTP protocol forwarding
# ./spp -name "test" -type proxy_client -server www.server.com:8888 -fromaddr :8080 -toaddr :8080 -proxyproto tcp -proto rhttp
# docker run --name my-client -d --restart=always --network host esrrhs/spp ./spp -name "test" -type proxy_client -server www.server.com:8888 -fromaddr :8080 -toaddr :8080 -proxyproto tcp

Performance Testing

AgentSpeedSpeed (Ency)Speed (Encryption Compression)
Direct connection3535 MBytes/sec
tcp forwarding663 MBytes/sec225 MBytes/sec23.4 MBytes/sec
rudp forwarding5.15 MBytes/sec5.81 MBytes/sec5.05 MBytes/sec
ricmp forwarding3.34 MBytes/sec3.25 MBytes/sec3.46 MBytes/sec
rhttp forwarding10.7 MBytes/sec10.8 MBytes/sec8.73 MBytes/sec
kcp forwarding18.2 MBytes/sec18.6 MBytes/sec14.7 MBytes/sec
quic forwarding35.5 MBytes/sec32.8 MBytes/sec15.1 MBytes/sec
AgentSpeedSpeed (Ency)Speed (Encryption Compression)
Direct connection2.74 MBytes/sec
tcp forwarding3.81 MBytes/sec3.90 MBytes/sec4.02 MBytes/sec
rudp forwarding3.33 MBytes/sec3.41 MBytes/sec3.58 MBytes/sec
ricmp forwarding3.21 MBytes/sec2.95 MBytes/sec3.17 MBytes/sec
rhttp forwarding3.48 MBytes/sec3.49 MBytes/sec3.39 MBytes/sec
kcp forwarding3.58 MBytes/sec3.58 MBytes/sec3.75 MBytes/sec
quic forwarding3.85 MBytes/sec3.83 MBytes/sec3.92 MBytes/sec

Thanks for free JetBrains Open Source license

<img src="https://resources.jetbrains.com/storage/products/company/brand/logos/GoLand.png" height="200"/></a>