Asyncio-based SOCKS5 server that tunnels connections through configurable chains of SOCKS5, SOCKS4/4a, and HTTP CONNECT proxies. Tor integration via standard SOCKS5 hop.
1.3 KiB
1.3 KiB
s5p -- Usage
Basic Usage
# Direct proxy (no chain, just a SOCKS5 server)
s5p
# Through Tor
s5p -C socks5://127.0.0.1:9050
# Through Tor + another proxy
s5p -C socks5://127.0.0.1:9050,socks5://proxy:1080
# Custom listen address
s5p -l 0.0.0.0:9999 -C socks5://127.0.0.1:9050
# From config file
s5p -c config/example.yaml
# Debug mode
s5p -v -C socks5://127.0.0.1:9050
Config File
listen: 127.0.0.1:1080
timeout: 10
log_level: info
chain:
- socks5://127.0.0.1:9050
- http://user:pass@proxy:8080
Proxy URL Format
protocol://[username:password@]host[:port]
| Protocol | Default Port | Auth Support |
|---|---|---|
| socks5 | 1080 | username/password |
| socks4 | 1080 | none |
| http | 8080 | Basic |
Testing the Proxy
# Check exit IP via Tor
curl --proxy socks5h://127.0.0.1:1080 https://check.torproject.org/api/ip
# Fetch a page
curl --proxy socks5h://127.0.0.1:1080 https://example.com
# Use with Firefox: set SOCKS5 proxy to 127.0.0.1:1080, enable remote DNS
Note: use socks5h:// (not socks5://) with curl to send DNS through the proxy.
Chain Order
Hops are traversed left-to-right:
-C hop1,hop2,hop3
Client -> s5p -> hop1 -> hop2 -> hop3 -> Destination
Each hop only sees its immediate neighbors.