With qrvpn you can easily run your own WireGuard server on Linux and connect to it from anywhere.
No open ports, public IP, router settings and special knowledge are required.
Not Linux? See other systems.
Download qrvpn to your Linux.
root@localhost:~# wget https://get.qrvpn.com/qrvpn.tgz
--2026-01-23 14:49:10-- https://get.qrvpn.com/qrvpn.tgz
Resolving get.qrvpn.com (get.qrvpn.com)... 172.104.9.252
Connecting to get.qrvpn.com (get.qrvpn.com)|172.104.9.252|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5542713 (5.3M) [application/octet-stream]
Saving to: 'qrvpn.tgz'
qrvpn.tgz 100%[==================================>] 5.29M 8.21MB/s in 0.6s
2026-01-23 14:49:11 (8.21 MB/s) - 'qrvpn.tgz' saved [5542713/5542713]
Unpack from archive.
qrvpn
Run qrvpn and set server parameters.
Welcome to qrvpn v1.07
Creating new conf-file /etc/qrvpn/qrvpn.conf
Run as [S]erver or [C]lient? (default: S): S
Running as server
Server Name (default: localhost RC5XIQ): Linux WireGuard Test
Server Name = Linux WireGuard Test
Password: TestPassword
Using password
Log level: 1-errors only, 2-normal, 3-verbose, 4-debug: (default: 2): 3
Log Level = verbose
Register WireGuard native server? Y/N: (default: N): Y
Registering configuration (may take up some time)...
2026-01-23 14:52:18.0000 [M] Initialization started
2026-01-23 14:52:18.0000 [V] Connect VPN using usnj
2026-01-23 14:52:19.0000 [V] Initial backend request done
Configuration completed successfully: /etc/qrvpn/qrvpn.conf
Run qrvpn and pass access details of the server to WireGuard client as QR-code or conf-file.
Welcome to qrvpn v1.07
To connect to this server use:
███████████████████████████████████████
███████████████████████████████████████
█████ ▄▄▄▄▄ █▀▀ ██▄█ ▀ ▄██ ▄▄▄▄▄ █████
█████ █ █ █▄▀██▀█ ▄▄▄ ██ █ █ █████
█████ █▄▄▄█ █ ▄ █ █▄▀▄▀ ▀██ █▄▄▄█ █████
█████▄▄▄▄▄▄▄█ █ ▀▄█▄▀ ▀▄█▄█▄▄▄▄▄▄▄█████
█████▄ █ ▀▀▄▄█▀█ ▀███ █▄▀ ▄▄▀▄▄▀█████
█████ █ ▀▄ ▄█▄▀▀ ▀▀██ ▀▄█ ▄ ▀█████
█████ ▄▀▀▀ ▄ ▄▀▄ ▄███▀ █▀ █▄ █▀▀▄▄█████
█████▀▄█▀▄▀▄▀▀ █ ▄ ▄██ ▀██ ▄▄▄▀▄ █████
██████▀▄█ ▄ ▀▄▄ ▀█▄▀▄ ▄▄ ▀▀█▀██▀█████
█████▄█▄█ ▄▄▀▀▀ ▀▄█ ▀█ ▀▀█▄▄▀██▄ █████
█████▄██▄██▄▄▀█▀██ ▀▀ ▀██ ▄▄▄ █ █ █████
█████ ▄▄▄▄▄ █▄▄ ▀▀ ▄▀ █▀▀ █▄█ ▀▀▄▀█████
█████ █ █ █▀ ▄▄ ▀█▄▀ ▄█▄▄ ▄ ▀▀ ██████
█████ █▄▄▄█ █▀█▄ ▀▀ ██▀█ ▀▀█▄▄▄▄▀▄█████
█████▄▄▄▄▄▄▄█▄▄███▄█▄█▄██▄▄██▄▄█▄██████
███████████████████████████████████████
███████████████████████████████████████
qrvpn://a?d=e4cad7ba1bdf9e3e&k=Ek00J9n4Fq1MUo8H
To connect to this server with WireGuard use:
███████████████████████████████████████████████████████████████████
███████████████████████████████████████████████████████████████████
█████ ▄▄▄▄▄ █▀▀█▀▀▄ ▄▀██▄█ ▄▀ ▀█▄█▀▄▀█ ▀▀█ █▄██ ▄ ██ ▄▄▄▄▄ █████
█████ █ █ █▀█▀▀█ ▄▀█▀▀▀█▄▄▄ ▄ ▄▀▄▀█▀█ ▀ ▀▄▄ ▀▀▄▄▄ ██ █ █ █████
█████ █▄▄▄█ █▀▀ ▄▀█▄▀ ▄ ▀██▀▄█ ▄▄▄ ▄▀▄▀▀▀ █ ▀█ ▀▄██ █▄▄▄█ █████
█████▄▄▄▄▄▄▄█▄█ ▀▄█▄█ █ █▄█ ▀▄█ █▄█ █▄▀▄▀▄█▄█ ▀ ▀ █ █▄█▄▄▄▄▄▄▄█████
█████▄ ▄ █▄ ▀█▄▄█▀▀▄▀▄█▄█▀▀▀█▄▄▄ ▄ ▀██▄▀█▀▀ ▀▄▀▀██▀ █ ▀▄█▄██████
█████▄ ▀█▄ ▄ ██▀▀▀▀█▄ ▄█▄▄▄█▀▄ █ ▀█▀▄▄▀▄▀▀█ ▀▀▀▀▄▄ ▄█▄ ▀ ▀███████
█████▀█ ▄ ▄ ▄▀▀█▄█▄▀██▄██ ▀▀▀▄ ███ ███ █▄▄█ ▀█▀▀▀▄▀▀█████
█████▄▄ ██▀▄█ ▄▄ ▄ ▀▄▄▀ ▀█▀▄ █▄▄█ ▄▀ █▀█▄█▄ ▀▀▄ ▀▀█ ▄ ▀ ▀▄ ███████
█████ ▀▀ █▀▄█ ▄ ▄█▀▀█▄▀▄ ▄██▄▀▄▄▄█▄▀█▀▀█▀▄▄▄ ▀█▀▀▀ █▄▀ ▄▀█▀▄▀▀█████
████████ ▀█▄▀ ▀ █▄▄ ▄▄█ ▄█▄ ▀▀▄▄▄█▀█▄ ▄▄█ ▄ ▀▄█▀▀█▄█ ▀▄▄█▄ ▀▀█████
█████ █▀█▄ ▀█ █ ▄▄▀█ ▄▀▀██▄ ▄▄▀██▀▀█▀▄ ▀▄▄█▀▀ █▄█▀▀▀▄▀███ ██████
██████▄█ ▀█▄██▄▀ █▀▀▀█ ▀▀ █▀▄ ▄██ ███▀▄▀▄ █ ▀▀█▀ ▄▀▀▀▄▄ ▀▀▄▀█████
██████▄█ ██▄█ ▀ ▄▄ ▄ ▄█▄ ▄▀▀▀▀ █ █▀▀█▀ █▀ █▄▀▀ ▀█▀▄█▄▀ █▀██▄▀▀█████
█████▄ █▀ ▄▄▄ ▀████▀ █▀ ██▀ ▀▄█ ▄▄▄ █ █▄▄██ ▄▀███▄▀▄█ ▄▄▄ ▀▀█████
█████ ▄ █▄█ ▄▀ ▀█▀▄▄▀ █▀▄▄▀▀ █▄█ ▄█▄█▄▄ █▄▀ ▀▄▀▄██ █▄█ ██▄ █████
█████ █ █ ▄ ▀▀ █▀▀▄▄█▄ █▀█▄▄ ▄▄ █ ▀█ ▀███ █▀▀ ▀▄▄▄ ▄▄▀▀▀██████
█████ █ ▄ █▄▄▄▄▀▀ █ ▀▄▀▄▀▄▀▀▀▀█▀▀▄▄███ █▄▄█▄ ██ █▀▀████▀█▄█ ▀ █████
█████▄▄ ▀█ ▄ ▄▀ ▄ ▄▀ █▀ █▄█▄▀▀▄█▄ ██▀▄▀█▀▄ █ ▀ ███▀ ▄██████
█████▀█ ▀██▄█▀██▀▄ ▄▄▀▄▄▄█▀▀▀▄█ ▄▀▀█ █▄█▄▄▀▄ █ ▄▀▄▄█▄▀▄█▄▀▀ ▀█████
██████▀█▀▄ ▄ █▀ ▀▀█▀▄ █ ▄███▀█▀█▄ ▄ ▄█ ▄▄▄▀ ▄▀ █▄▀▄▄█▄▄▀▄█ ▄▄█████
█████▀▄█▀ ▄▄▀ ▄▀▄▄█▀▀▄▀▄ █▀▀▀▀ ▄▄▄█▀▀█ ▄ ▄▀▄███▀▄▀██▀▄▀███▀██▀█████
█████▄ ██▀▄▀▄▄█ ██▄ ▄█▄▀▄█▄ ▀▄ ▄█▄▀▄▀▄▄▀▀ ▀▀▀▄ ▀▄ ▄▀▀█▀▀███████
█████▀▄▄ ▄██ ▄▀ █ ▄▄▄▀ ▄▄██▀██ ▄ █▀█ ▄▀▄▄▀ █▄▄▀▀▀▀▄▄▄▀▀▀█████
█████ ▀ ▀▀▄▄▀▀▀▀▄▀ ▄▄▀ ▄ ██▀▄ ▄▀ ▄▀ ▀ ▄ █▀█ ██ ▄▄▀▄ ▀▄█ ██████
███████████▄▄ █ ██▀ ▄█▀▄ ▄██▀ ▄▄▄ █▀ █▄ ▀▄ ▀█▀█▀▀▄▀ ▄▄▄ ██ ▀█████
█████ ▄▄▄▄▄ █▄▀▀▄ █▄▄█▄█▄███ █ █▄█ ▄ ▄ ▀▀ ▀▄█▀▀▀ ▄ █▄█ ▀▀█▀█████
█████ █ █ █ ▀▀▀ ▄▀█▄▄▀▀▀▀▄ ▀ ▄▄▄ ▄███ ▄▄█ ███▀▄ ▄ ▄███████
█████ █▄▄▄█ █ █ ▄ ▀▀▀██ ▀ ▀█▄ █ █▀▄ ▀▄▄█▄█▄▄ ▀██ ▄▄▄▀█▀█▀▀███████
█████▄▄▄▄▄▄▄█▄▄█████▄▄█▄█████▄▄█▄▄▄▄██▄█▄▄▄▄████▄██▄▄███████▄██████
███████████████████████████████████████████████████████████████████
███████████████████████████████████████████████████████████████████
[Interface]
PrivateKey = iiNAVqCqTQ4eQ/O+KT2aThpDf5gPgRyapl676J6w24w=
Address = 172.30.0.202/32
DNS = 8.8.8.8, 1.1.1.1
[Peer]
PublicKey = jQXPRTNFhDniijEMZayo/1g6zogNaT74miXiCnErlXc=
AllowedIPs = 0.0.0.0/0
Endpoint = usnj.wgn.qrvpn.com:10249
2026-01-23 15:43:11.0000 [M] Initialization started
2026-01-23 15:43:11.0000 [V] Connect VPN using usnj
2026-01-23 15:43:12.0000 [V] Initial backend request done
2026-01-23 15:43:12.0000 [M] VPN interface opened tun0
2026-01-23 15:43:12.0000 [M] VPN interface initialized
2026-01-23 15:43:12.0000 [V] Relay socket recreated
2026-01-23 15:43:12.0000 [M] Server ready
Monitor connections to your WireGuard server through qrvpn output.
2026-01-23 15:55:05.0000 [M] Connection with WireGuard 1
2026-01-23 15:55:05.0000 [V] WG WireGuard 1: Received handshake_initiation remote_idx=1365171958
2026-01-23 15:55:05.0000 [V] WG WireGuard 1: Sending handshake_response local_idx=1
2026-01-23 15:55:05.0000 [V] WG WireGuard 1: New session session=1
2026-01-23 15:55:05.0000 [V] UDP 8.8.8.8:443 UDP connection from WireGuard 1
2026-01-23 15:55:05.0000 [V] UDP 172.217.17.3:443 UDP connection from WireGuard 1
2026-01-23 15:55:05.0000 [V] DNS request mtalk.google.com (IPv4) via DNS server 8.8.8.8:53
2026-01-23 15:55:05.0000 [V] UDP 8.8.8.8:443 UDP connection from WireGuard 1
2026-01-23 15:55:05.0000 [V] DNS for mtalk.google.com (IPv4) is 192.178.223.188
2026-01-23 15:55:05.0000 [V] mtalk.google.com:5228 connection from WireGuard 1
2026-01-23 15:55:05.0000 [V] mtalk.google.com:5228 open
2026-01-23 15:55:05.0000 [V] mtalk.google.com:5228 connection established to 192.178.223.188
2026-01-23 15:55:06.0000 [V] 157.240.5.61:443 connection from WireGuard 1
2026-01-23 15:55:06.0000 [V] 157.240.5.61:443 open
2026-01-23 15:55:06.0000 [V] 157.240.5.61:443 connection established to 157.240.5.61
2026-01-23 15:55:06.0000 [V] 157.240.253.33:443 connection from WireGuard 1
2026-01-23 15:55:06.0000 [V] 157.240.253.33:443 open
2026-01-23 15:55:06.0000 [V] 157.240.253.33:443 connection established to 157.240.253.33
2026-01-23 15:55:11.0000 [V] 3.165.190.72:443 connection from WireGuard 1
2026-01-23 15:55:11.0000 [V] 3.165.190.72:443 open
2026-01-23 15:55:11.0000 [V] 3.165.190.72:443 connection established to 3.165.190.72
2026-01-23 15:55:12.0000 [V] UDP 172.217.168.174:443 UDP connection from WireGuard 1
2026-01-23 15:55:12.0000 [V] UDP 192.178.223.95:443 UDP connection from WireGuard 1
2026-01-23 15:55:12.0000 [V] 192.178.223.147:443 connection from WireGuard 1
2026-01-23 15:55:12.0000 [V] 192.178.223.147:443 open
2026-01-23 15:55:12.0000 [V] 192.178.223.147:443 connection established to 192.178.223.147
2026-01-23 15:55:12.0000 [V] UDP 192.178.223.147:443 UDP connection from WireGuard 1