Overview

What is p2proxy?

p2proxy is a small Rust daemon you run on your own machine. It exposes a local SOCKS5 endpoint — or a WireGuard server — 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.
  • Want to route a whole device — a laptop, phone, or everything behind a router — through a peer, using the WireGuard client you already have.

It’s not a consumer VPN service: no app, no subscription, no button to press. It’s infrastructure you run yourself — a SOCKS5 endpoint for your tooling, or a WireGuard server your own devices dial into.

Core features

  • SOCKS5 endpoint on a port you choose. Works with anything that speaks SOCKS5.
  • WireGuard server mode — bind a userspace WireGuard listener instead and tunnel an entire device through a peer. No kernel module, no TUN device, no root. See WireGuard / VPN.
  • Peer filtering — minimum bandwidth, country, or a specific libp2p peer ID.
  • Multiple endpoints in one daemon — run a US listener, a JP listener and a high-bandwidth listener from one Config.yaml.
  • Stable egress IPs — pin an ordered list of peer IDs, or let sticky mode remember the discovered exit across restarts.
  • 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, or a WireGuard one. Almost everything qualifies; if you’re unsure, see Integrations.

Next steps

  1. Install — Homebrew, .deb / .rpm / .apk, Docker image, or source.
  2. Quickstart — 30 seconds from zero to first proxied request.
  3. Configuration reference — every Config.yaml field, defaults, and tuning notes.
  4. WireGuard / VPN — tunnel a whole device instead of one app.
  5. Troubleshooting — symptom → cause → fix.