// core engine & desktop binaries

Downloads

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
Auto-detects your OS, downloads the correct binary, verifies the checksum, and configures rVPN. For interactive setup, add -s -- --setup --client.
// changelog v1.3.1

What's new in this release.

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.

Server
Automatic TLS via Let’s Encrypt

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.

CLI client · SOCKS5
Per-domain multi-server routing

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.

Installer
First-run TLS in one prompt

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.

Full changelog →
// client binaries

The rVPN client.

SOCKS5, HTTP proxy, or TUN — on every desktop and every router. Statically linked where possible, with a matching SHA256 checksum for verification.

macOS
Universal: arm64 + x86_64
requires macOS 10.15+
Download SHA256
Linux x86_64
glibc, most systems
static build available
Download SHA256
Linux ARM64
glibc · Raspberry Pi, etc.
static build available
Download SHA256
Linux ARMv7
32-bit ARM, legacy
 
Download SHA256
Linux static
musl, no dependencies
fully self-contained
x86_64 ARM64
FreeBSD
x86_64
 
Download SHA256
verify, don't trust
Every build is checkable

Confirm your binary matches the published SHA256 before you run it. Instructions below.

// server binaries

Run your own server.

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.

macOS
Universal: arm64 + x86_64
development / bring-up
Download SHA256
Linux x86_64
glibc, most VPS
static build available
Download SHA256
Linux ARM64
glibc · Ampere, Graviton, Pi
static build available
Download SHA256
Linux ARMv7
32-bit ARM, edge boxes
 
Download SHA256
Linux static
musl, no dependencies
runs on Alpine, distroless
x86_64 ARM64
FreeBSD
x86_64
 
Download SHA256
no certbot needed
Automatic TLS built in

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.

// verifying downloads

Confirm your binary matches the published checksum.

Two commands. Download the checksum file, then verify it against the binary you downloaded. Anything but OK means don't run it.

# download the checksum file
curl -LO https://assets.rvpn.org/1.3.1/
  rvpn-x86_64-linux-gnu.sha256
# verify against the binary
echo "$(cat rvpn-x86_64-linux-gnu.sha256)  \
  rvpn-x86_64-linux-gnu" | sha256sum -c
rvpn-x86_64-linux-gnu: OK
// mobile clients

Native apps for iOS, macOS, and Android.

Mobile clients are commercial — revenue funds continuous protocol development. The core remains open source under AGPLv3.

iOS

iPhone & iPad with NetworkExtension support. Multi-profile editor with identity generation and .rvpn file handling.

iOS 16.0+
App Store
macOS app

Native menubar application with direct TUN mode and settings aligned to Apple's Human Interface Guidelines.

macOS 13.0+, Apple Silicon
App Store
Android

Material Design 3 interface with swipe-to-delete profile cards and tap-to-activate switching.

Android 14+ (API 35+)
Google Play APK
HarmonyOS coming soon

A native client for Huawei devices, built on the same open-source core. In active development.

HarmonyOS NEXT
Notify me
// installer & source

Or use the installer, or build from source.

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.

One-line server setup

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
Compile with Cargo

Clone the repository and build the release binary locally. Requires a recent stable Rust toolchain.

$ git clone https://github.com/PDG-Global/rVPN-core.git
$ cd rvpn/rvpn
$ cargo build --release
GitHub repository → Documentation →