Overview
What is p2proxy?
p2proxy is a small Rust daemon you run on your own machine. It exposes a local SOCKS5 endpoint and forwards every outbound connection through a peer node in the Bitping network — instead of through a centralised proxy gateway.
It’s built on libp2p. Direct peer-to-peer connections are the norm; relays are the fallback.
Who it’s for
p2proxy is a developer tool. It’s a good fit if you:
- Run web scrapers (Playwright, Puppeteer, Selenium, raw HTTP) and want diverse residential IPs without paying per-GB to a gateway provider.
- Run browser automation / QA that needs to test your product from many geographic regions.
- Need multi-geo HTTP traffic for research, journalism, or security work and want a self-hosted, auditable daemon doing it.
It’s not a consumer VPN. It’s a proxy daemon — a piece of infrastructure you wire into your own stack.
Core features
- SOCKS5 endpoint on a port you choose. Works with anything that speaks SOCKS5.
- Peer filtering — minimum bandwidth, ISO-3166 country code, or a specific libp2p peer ID.
- Multiple endpoints in one daemon — run a US pool, a JP pool and a high-bandwidth pool from one
Config.yaml. - Connection pooling — warm libp2p streams so per-request handshakes stay fast.
- Live TUI showing peer connections, throughput and session count.
- Prometheus metrics at
:9091/metrics. - Open source under PolyForm Shield 1.0.
What you’ll need
- A Bitping API key — sign up at bitping.com, copy the key from your dashboard. Usage is attributed to your account.
- macOS or Linux (Windows is deferred — use WSL2 in the meantime).
- A SOCKS5-capable client. Almost everything qualifies; if you’re unsure, see Integrations.
Next steps
- Install — Homebrew,
.deb/.rpm/.apk, Docker image, or source. - Quickstart — 30 seconds from zero to first proxied request.
- Configuration reference — every
Config.yamlfield, defaults, and tuning notes. - Troubleshooting — symptom → cause → fix.