Office Route Case Study: Ticket Filed Through the Office Exit, With the Deploy Token Still Blocked
An agent needs the office’s internal ticket tracker, so its traffic has to go through the office. vpnw sends that one program through the office route, and the policy still holds: the deploy token stays blocked.
The case was recorded with VPN Works 0.2.0’s demo kit, where the office route was a SOCKS5 proxy inside the office network that knew internal names like tracker.office.internal. The screenshot is from that recording. In 0.4.0 the office route can also be the office’s WireGuard server, which vpnw runs a tunnel to by itself.
The point is the same either way. The route is for this agent only. The developer’s browser, their chat, everything else on the laptop keeps its usual network.

Through the Office’s WireGuard
vpnw guard --policy agent.toml --wireguard office.conf -- ./agent --task task.txt
office.conf is the wg-quick file the office hands out. vpnw runs the tunnel inside its own process: no root, no network interface on the laptop, nothing changed for any other program. Before the agent starts, vpnw waits for a handshake with the office’s server; if it doesn’t come, the agent never starts, and nothing falls back to a direct connection.
Names are looked up at the office’s DNS server, through the tunnel, so tracker.office.internal resolves the way it does at the office, and the lookup never leaves the tunnel.
Or Through a Proxy
vpnw guard --policy agent.toml --proxy https://exit.office.example:8443 --token-file agent.token -- ./agent
A proxy over TLS works too, with its certificate checked and a token sent. Given more than once, --proxy makes a list of exits that fail over.
The Policy Doesn’t Care Which Way Out
The route decides how allowed connections leave. The policy decides which connections are allowed, and it’s checked first, against every address. The tracker is on the allow list; evil.example isn’t, so the token goes nowhere, whichever route is chosen.
One detail: the tracker sits on the office’s private network. A policy with deny_private = true refuses private addresses, the tunnel’s included, so a policy for an office agent either leaves deny_private off or allows the tracker’s address explicitly. Learn flags private destinations in its drafts for exactly this reason.