Tested against real VPN clients

Before each release, octomon is run inside Linux containers next to real VPN clients, and what it says about each tunnel is checked: that it names the client, that the location label has the right shape, and that the location it files the network under stays the same when the tunnel reconnects, lands on another server or gets a new address. These are the results.

The rig is in the repository under testing/vpn-rig/: one container per client, the rig's own WireGuard and OpenVPN servers for the self-contained cases, a real account for the rest. It is run by hand; it is not part of the automated test suite, which is why the result is published here rather than in a badge. What is published is the outcome only: the client, the device shape octomon saw, the name it gave the tunnel, and whether each check held. Addresses, keys and logs from the runs stay on the machine that ran them.

What it cannot tell you: anything about macOS or Windows (the rig is Linux by construction), Wi-Fi, a real home or office network underneath the tunnel, or corporate clients such as Zscaler and GlobalProtect.

octomon 0.12.0 · 8 November 2026 · 4/4 clients passed

Linux containers on Docker Desktop (macOS host) · built from fd27701

NordVPN app (NordLynx) passed

phasedevicerecognised aslocation keychecks
connect (nearest) nordlynx NordVPN first connection ✓ named · ✓ label · ✓ key · ✓ clean log
reconnect to another country nordlynx NordVPN same location after reconnecting ✓ named · ✓ label · ✓ key · ✓ clean log

OpenVPN (tun) passed

phasedevicerecognised aslocation keychecks
connect 1194 (pool 10.8) tun0 OpenVPN first connection ✓ named · ✓ label · ✓ key · ✓ clean log
reconnect 1195 (pool 10.9, another server) tun0 OpenVPN same location after reconnecting ✓ named · ✓ label · ✓ key · ✓ clean log

Cloudflare WARP passed

phasedevicerecognised aslocation keychecks
connect CloudflareWARP Cloudflare WARP first connection ✓ named · ✓ label · ✓ key · ✓ clean log
reconnect CloudflareWARP Cloudflare WARP same location after reconnecting ✓ named · ✓ label · ✓ key · ✓ clean log
re-register (new device identity and addresses) CloudflareWARP Cloudflare WARP same location after reconnecting ✓ named · ✓ label · ✓ key · ✓ clean log

WireGuard (wg-quick, kernel device) passed

phasedevicerecognised aslocation keychecks
connect wg0 wg0 WireGuard (label carries the tunnel address) first connection ✓ named · ✓ label · ✓ key · ✓ clean log
reconnect wg0 wg0 WireGuard (label carries the tunnel address) same location after reconnecting ✓ named · ✓ label · ✓ key · ✓ clean log
connect wg1 (second address) wg1 WireGuard (label carries the tunnel address) a new location, as designed ✓ named · ✓ label · ✓ key · ✓ clean log