All builds are statically linked where possible, reproducible, and verified with SHA256 checksums. The fastest way in is the one-line installer.
curl -fsSL https://assets.rvpn.org/install.sh | sudo bash v1.3.1 patch — fixes a client-side leak where SOCKS5 flows kept their WebSocket + Double Ratchet state alive after the browser had already closed. If you were seeing rvpn creep towards 200 MB after a few days, this is the one.
The server obtains and rotates its own Let’s Encrypt certificate on the same :443 listener — no certbot, no renewal timer, no external tooling. The CLI client now dispatches SOCKS5 traffic across a small pool of servers by hostname, so you can route google.com through Singapore while everything else stays in Hong Kong. Mobile apps stay on v1.2.6.
Enable [server.acme], point DNS at the box, done. rvpn-server obtains and renews the cert itself using the TLS-ALPN-01 challenge on the same :443 listener — no certbot, no :80 port, no external timer. Renewal is hot-swapped without dropping connections.
Declare a small pool of servers and steer flows by hostname or CIDR: default all traffic through HK, send *.google.com through SG, and the server-side DNS answers come from the exit that’s actually going to serve the request. One shared client identity across every server, SSH-style.
The universal installer now offers Automatic (ACME) as the default, existing certbot certificates as a second choice, or None if you sit behind a reverse proxy — then writes the right server.toml block and creates the cache directory for you. A staging-first flag protects you from Let’s Encrypt’s rate limits on the very first attempt.
SOCKS5, HTTP proxy, or TUN — on every desktop and every router. Statically linked where possible, with a matching SHA256 checksum for verification.
Confirm your binary matches the published SHA256 before you run it. Instructions below.
Same six targets as the client. Automatic Let’s Encrypt TLS out of the box — enable [server.acme] and point DNS at the box, done.
rvpn-server obtains and rotates its own Let’s Encrypt cert via TLS-ALPN-01 on the same :443 listener. Full config in the reference.
Two commands. Download the checksum file, then verify it against the binary you downloaded. Anything but OK means don't run it.
Mobile clients are commercial — revenue funds continuous protocol development. The core remains open source under AGPLv3.
iPhone & iPad with NetworkExtension support. Multi-profile editor with identity generation and .rvpn file handling.
Native menubar application with direct TUN mode and settings aligned to Apple's Human Interface Guidelines.
Material Design 3 interface with swipe-to-delete profile cards and tap-to-activate switching.
A native client for Huawei devices, built on the same open-source core. In active development.
Prefer scripted setup over grabbing a binary directly? The universal installer auto-detects your platform, verifies the checksum, and walks you through TLS + keys. All code is open source under AGPLv3 — clone and build with Cargo whenever you want to audit or patch.
Use the same installer with a server-only flag. See the docs for systemd and cloud deployment guides.
curl -fsSL https://assets.rvpn.org/install.sh | sudo bash -s -- --server-only Clone the repository and build the release binary locally. Requires a recent stable Rust toolchain.