docs: add proxy pool documentation
Update all docs for managed proxy pool: README, USAGE, CHEATSHEET, PROJECT, TASKS, and example config. Document multi-source config, proxy file format, health testing, persistence, and legacy compat. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
25
README.md
25
README.md
@@ -11,7 +11,7 @@ through configurable chains of SOCKS4, SOCKS5, and HTTP CONNECT proxies.
|
||||
- Per-hop authentication (username/password)
|
||||
- DNS leak prevention (domain names forwarded to proxies, never resolved locally)
|
||||
- Tor integration (Tor is just another SOCKS5 hop)
|
||||
- Dynamic proxy source: fetch proxies from an HTTP API, rotate per-connection
|
||||
- Managed proxy pool: multiple sources (API + file), health-tested, auto-cleaned
|
||||
- Connection retry with proxy rotation (configurable attempts)
|
||||
- Connection metrics (logged periodically and on shutdown)
|
||||
- Container-ready (Alpine-based, podman/docker)
|
||||
@@ -59,16 +59,19 @@ cp config/example.yaml config/s5p.yaml
|
||||
```yaml
|
||||
listen: 127.0.0.1:1080
|
||||
timeout: 10
|
||||
retries: 3 # max attempts (proxy_source only)
|
||||
retries: 3
|
||||
|
||||
chain:
|
||||
- socks5://127.0.0.1:9050 # Tor
|
||||
|
||||
proxy_source:
|
||||
url: http://10.200.1.250:8081/proxies
|
||||
proto: socks5 # optional filter
|
||||
limit: 1000
|
||||
refresh: 300 # cache refresh (seconds)
|
||||
proxy_pool:
|
||||
sources:
|
||||
- url: http://10.200.1.250:8081/proxies
|
||||
proto: socks5
|
||||
- file: /etc/s5p/proxies.txt # one proxy URL per line
|
||||
refresh: 300 # re-fetch interval (seconds)
|
||||
test_interval: 120 # health test cycle (seconds)
|
||||
max_fails: 3 # evict after N consecutive failures
|
||||
```
|
||||
|
||||
`config/s5p.yaml` is gitignored; `config/example.yaml` is the tracked template.
|
||||
@@ -94,10 +97,10 @@ Options:
|
||||
## How Chaining Works
|
||||
|
||||
```
|
||||
Client -> s5p -> [static chain] -> [random proxy from source] -> Destination
|
||||
Client -> s5p -> [static chain] -> [random alive proxy from pool] -> Destination
|
||||
```
|
||||
|
||||
s5p connects to Hop1 via TCP, negotiates the hop protocol (SOCKS5/4/HTTP),
|
||||
then over that tunnel negotiates with Hop2, and so on. If a proxy source is
|
||||
configured, a random proxy is appended to the chain per-connection. Each hop
|
||||
only sees its immediate neighbors.
|
||||
then over that tunnel negotiates with Hop2, and so on. If a proxy pool is
|
||||
configured, a random health-tested proxy is appended to the chain per-connection.
|
||||
Each hop only sees its immediate neighbors.
|
||||
|
||||
Reference in New Issue
Block a user