Connect your phone or laptop to your server privately — like having your server on your home WiFi, no matter where you are.
Imagine your server is a house and the internet is a public street. Normally, apps and services inside your house aren't visible from the street. WireGuard VPN builds a private tunnel from your phone or laptop directly into your house. Once connected, your phone can reach every service inside — databases, private web apps, anything — as if it's sitting right next to the server. DevMonk manages the WireGuard config, generates QR codes for easy mobile setup, and keeps everything encrypted.
apt install wireguard)net.ipv4.ip_forward=1)Run this in the DevMonk web terminal (or SSH). After activating WireGuard on your device, you should see latest handshake: X seconds ago appear within 10 seconds.
wg show
Run this on your device after the tunnel is active. It hits the DevMonk agent over the VPN — if it responds, everything works.
curl http://10.100.0.1:7474/api/health
ICMP (ping) packets can be blocked by the firewall even when WireGuard itself is working. Always use curl http://10.100.0.1:7474/api/health as your primary connectivity test — not ping.
.conf file again (fresh copy)wg show on the server and confirm you see latest handshake
systemctl restart devmonk-agentlatest handshake within seconds.
curl http://10.100.0.1:7474/api/health to verify connectivity instead of ping.
optionalfeatures, press EnterEnable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart[Peer] section, change AllowedIPs to only include the server's VPN subnet, e.g. 10.100.0.0/2410.100.0.2/32 from AllowedIPs)New-NetFirewallRule -DisplayName "WireGuard UDP 51820" -Direction Inbound -Protocol UDP -LocalPort 51820 -Action AllowNew-NetFirewallRule -DisplayName "WireGuard Out" -Direction Outbound -Protocol UDP -RemotePort 51820 -Action Allow443 or 53 (update your peer config's Endpoint to match), then re-import the config on your Windows device.[Peer] section:PersistentKeepalive = 25AllowedIPs includes your own VPN IP as a /32 (e.g. AllowedIPs = 10.100.0.0/24, 10.100.0.2/32), it can create a routing loop — packets destined for the tunnel get routed back through themselves.[Peer] → AllowedIPs, remove your own client IP (/32 entry) — keep only the server subnet, e.g. AllowedIPs = 10.100.0.0/24[Interface], your Address should still be your full VPN IP: Address = 10.100.0.2/24/32 in AllowedIPs tells WireGuard to route only that single host through the tunnel. Using it for your own client IP on Windows 11 is known to cause routing failures — use the full subnet CIDR instead.route print in Command Prompt after activating the tunnel. You should see a route for 10.100.0.0 with the WireGuard interface (listed as the adapter with the VPN gateway). If you see duplicate or conflicting routes, deactivate the tunnel, run route delete 10.100.0.0, then reactivate.
New-NetFirewallRule -DisplayName "WireGuard UDP In 51820" -Direction Inbound -Protocol UDP -LocalPort 51820 -Action AllowNew-NetFirewallRule -DisplayName "WireGuard Ping In" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -InterfaceAlias wg0 -Action AllowSet-NetConnectionProfile -InterfaceAlias wg0 -NetworkCategory PrivateNew-NetFirewallRule -DisplayName "RDP via WireGuard" -Direction Inbound -Protocol TCP -LocalPort 3389 -InterfaceAlias wg0 -Action AllowNew-NetFirewallRule -DisplayName "SSH via WireGuard" -Direction Inbound -Protocol TCP -LocalPort 22 -InterfaceAlias wg0 -Action Allowwg0 with the actual interface alias shown in the WireGuard app if it differs.
10.100.0.1. Devices are assigned starting from 10.100.0.2.
10.100.0.0/24 goes through the VPN tunnel. Your normal internet traffic (browsing, streaming) uses your regular connection unaffected.