Skip to content

Releases: millaguie/splitter

SPLITTER 2.0.0-beta

04 Apr 23:37
3ffbf6c

Choose a tag to compare

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: /metrics endpoint (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-stealth

Quick 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 media

What's Changed

New Contributors

Full Changelog: https://github.com/millaguie/splitter/commits/v2.0.0-beta