Releases: millaguie/splitter
Releases · millaguie/splitter
SPLITTER 2.0.0-beta
SPLITTER v2.0.0-beta
Complete Go rewrite of the Bash-based Tor multi-instance proxy tool with HAProxy load balancing and geo-based anti-correlation rules.
Features
- Native proxy mode (default): Tor HTTPTunnelPort — no Privoxy needed
- Tor feature auto-detection: Conflux, congestion control, CGO, post-quantum key exchange
- Bridge support: Snowflake, WebTunnel, obfs4 via
--bridge-type - 4 configuration profiles:
stealth,balanced,streaming,pentest - Docker Compose with 5 preconfigured scenarios:
- Balanced (default): Good balance of security and performance
- Speed EU: Low-latency circuits through DE, FR, NL, CH, SE
- Speed Latam: Americas-based circuits through US, CA, PA, BR, CL
- Stealth: Maximum anonymity with padding, guards, sandbox, no logs
- Pentest: Security research with stream isolation, exit reputation, DEBUG logging
- Adaptive circuit rotation with fingerprinting resistance
- Tor Metrics API: Dynamic country lists with 12h cache fallback
- Exit node reputation: Onionoo API scoring and filtering
- DNS leak test:
splitter test dns - Prometheus metrics:
/metricsendpoint (opt-in) - SIGHUP reload: Config reload without full restart
- Docker: Multi-stage build (alpine:3.21, Tor 0.4.9.6, HAProxy 3.0), non-root user
- 3-layer privacy test suite: torrc assertions, config defaults, integration tests
- 147 files, 15 Go packages, table-driven tests, Makefile
Bugfixes vs original Bash version
| Fix | Detail |
|---|---|
| HAProxy stats port conflict | Stats port changed from 63537 → 63539 |
| HAProxy 3.x syntax | stats auth admin:<pw> + stats admin if TRUE |
| HAProxy health checks | option tcp-check (HTTPTunnelPort is a CONNECT proxy) |
| Invalid CGOEnabled directive | Removed — compile-time feature, not a torrc option |
| Obsolete OptimisticData | Removed — deprecated in Tor 0.4.9.x |
| SOCKS5 through HAProxy | Explicit mode tcp in backend + frontend |
Docker
# Default (balanced) profile
docker compose up -d
# Use an alternative profile — uncomment it in docker-compose.yml first
docker compose up -d splitter-speed-eu
docker compose up -d splitter-stealthQuick Start
go build -o splitter .
./splitter run # defaults
./splitter run -i 3 -c 8 --relay-enforce exit
./splitter run --profile stealth # maximum privacy
./splitter run --profile streaming # optimized for mediaWhat's Changed
- Tidy the repo Up by @millaguie in #1
- Create a proper Dockerfile, by @millaguie in #2
New Contributors
- @millaguie made their first contribution in #1
Full Changelog: https://github.com/millaguie/splitter/commits/v2.0.0-beta