VPN
Cloud OS supports two VPN solutions: WireGuard for lightweight kernel-level tunnels and Pritunl for enterprise-grade VPN management with a full GUI. Both are managed from the VPN page in the dashboard.
Provider Comparison
| Feature | WireGuard | Pritunl |
|---|---|---|
| Type | Kernel-based | Docker-based |
| Protocol | WireGuard (kernel module) | OpenVPN + WireGuard |
| Performance | Excellent (kernel-level) | Good |
| Setup | Simple, minimal configuration | More options, full GUI |
| User management | Peer-based with key pairs | Full user and organization management |
| Best for | Personal use, small teams | Organizations, compliance requirements |
WireGuard
WireGuard uses the kernel-level WireGuard module for high-performance encrypted tunnels with minimal overhead.
Enabling WireGuard
- Navigate to VPN from the sidebar
- Select WireGuard as the provider
- Click Enable VPN
- Cloud OS generates server key pairs and configures the WireGuard interface
Adding a Peer
- Click Add Peer
- Enter a name for the peer (e.g., “laptop”, “phone”)
- Cloud OS generates the client configuration automatically
- Download the
.conffile or scan the QR code with the WireGuard mobile app
The generated client configuration includes:
[Interface]
PrivateKey = <auto-generated>
Address = 10.0.0.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = <server-public-key>
Endpoint = your-server-ip:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25Peer Management
The VPN page shows all configured peers with:
- Name
- Public key (truncated)
- Assigned IP address
- Connection status (connected or last seen timestamp)
- Data transferred (upload and download)
You can disable or remove peers at any time.
QR Code Generation
Each peer configuration can be displayed as a QR code for easy import on mobile devices. Click the QR icon next to any peer to display the scannable code.
Connection Stats
The VPN page displays real-time connection statistics:
- Active peer count
- Total data transferred
- Per-peer bandwidth usage
- Connection duration per peer
Pritunl
Pritunl is an enterprise-grade VPN server that supports both OpenVPN and WireGuard protocols. Cloud OS manages Pritunl as a Docker container and communicates with it via its API.
Enabling Pritunl
- Navigate to VPN from the sidebar
- Select Pritunl as the provider
- Click Enable VPN
- Cloud OS deploys the Pritunl Docker container and configures the initial organization
Creating Users
- Go to the Users tab on the VPN page
- Click Add User
- Enter a name and optional email
- Cloud OS provisions the user in Pritunl automatically
Downloading Profiles
Users can download their VPN profile:
.ovpnfile for OpenVPN clients- WireGuard config for WireGuard clients
- QR code for mobile clients
Key Rotation
For WireGuard, you can rotate the server key pair from VPN > Settings. This invalidates all existing peer configurations, so you will need to redistribute new configs to all peers.
For Pritunl, user credentials can be rotated individually without affecting other users.
IP Address Management
Cloud OS manages the VPN subnet automatically. Each new peer receives the next available IP address from the configured range (default 10.0.0.0/24). You can view and modify IP assignments from the VPN settings page.
Accessing Your Server Remotely
Once connected to the VPN, you can:
- Access the Cloud OS dashboard via its internal IP
- Reach any installed app without exposing it to the public internet
- SSH into the server through the VPN tunnel
VPN access is useful for services you do not want publicly accessible. Install apps without public domains and access them only through the VPN tunnel.
Troubleshooting
WireGuard tunnel connects but no traffic flows
Verify that IP forwarding is enabled on the server:
sysctl net.ipv4.ip_forwardThe value should be 1. Cloud OS normally sets this automatically. Check the Cloud OS logs for WireGuard configuration errors.
Pritunl container fails to start
Check Docker logs for the Pritunl container:
docker logs quazzar-pritunlCommon issues include port conflicts (UDP 1194 for OpenVPN or UDP 51820 for WireGuard) or insufficient memory.
Cannot access apps through VPN
Verify that your VPN client AllowedIPs includes the server internal network. If you only routed specific subnets, the app internal IP may not be included.
QR code does not scan
Ensure your mobile device camera has a clear view. If the QR code is too small, try zooming in on the browser or downloading the .conf file instead and importing it manually.