Skip to content

iOS App

The r-vpn iOS app creates a full-tunnel VPN connection to your server. All device traffic is routed through an encrypted tunnel.


Requirements

  • iOS 16.0 or later
  • A deployed r-vpn server
  • Server address, identity key, and prekey bundle

Setup

1. Install the App

Install r-vpn from the App Store or via Xcode.

2. Configure Server

In Settings, enter your server WebSocket address:

wss://your-server.com/api/v1/ws

3. Generate Identity

Your identity key enables end-to-end encryption.

In Settings → Identity, tap Generate Identity. Wait for completion.

4. Import Prekey Bundle

The prekey bundle is provided by your server administrator.

In Settings → Prekey Bundle, tap Import Prekey Bundle and select the JSON file or paste the bundle data.


Connect

On the Home screen, tap Connect. The app will:

  1. Connect to your server via encrypted WebSocket
  2. Establish forward-secret encryption (X3DH + Double Ratchet)
  3. Receive a tunnel IP address from the server
  4. Route all traffic through the VPN

Tap Disconnect to stop.


Split Tunnel

Route domestic traffic (e.g., local services) outside the VPN while everything else goes through it.

  1. Go to Settings → Traffic
  2. Enable Split Tunnel
  3. Enter country codes to bypass: CN, HK, SG, JP, KR, TW

Traffic to those countries uses your normal internet connection. Everything else goes through the VPN.


Block Ads

Block known ad and tracker domains at the DNS level.

  1. Go to Settings → Traffic
  2. Enable Block Ads

Blocked domains return NXDOMAIN immediately — no connection is made.


DNS Servers

By default, DNS is resolved through the VPN tunnel. To use custom servers:

  1. Go to Settings → Network
  2. Enter DNS servers (comma-separated): 1.1.1.1, 8.8.8.8

Server Identity

Trust on First Use (enabled by default) accepts and pins the server's identity on first connection.

For additional verification, enter the server's fingerprint in Settings → Server Fingerprint.


Troubleshooting

"Failed to start VPN"

  • Verify server address is correct and includes wss://
  • Ensure identity key is generated
  • Ensure prekey bundle is imported
  • Check your server is running

"No IP assigned"

The server's IP pool is full. Contact your server administrator to check the DHCP range configuration.

Split tunnel not working

  • Verify split tunnel is enabled
  • Verify country codes are correct (e.g., CN, not China)
  • Try toggling Airplane mode to refresh routes

Slow connection

  • Try different DNS servers
  • Check server load
  • Verify split tunnel isn't excluding too much traffic

For more troubleshooting help, see the Troubleshooting Guide.