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:
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:
- Connect to your server via encrypted WebSocket
- Establish forward-secret encryption (X3DH + Double Ratchet)
- Receive a tunnel IP address from the server
- 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.
- Go to Settings → Traffic
- Enable Split Tunnel
- 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.
- Go to Settings → Traffic
- 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:
- Go to Settings → Network
- 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, notChina) - 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.