Note the server and the adapter
Write down the VPN server address and the adapter name the client creates. Both are needed for the allow rules; guessing them produces a kill switch that blocks the tunnel as well.
ipconfig /all
When the tunnel drops, Windows happily sends everything over the normal connection. A firewall rule makes that impossible until you say otherwise.
Create a **block-all outbound** rule, allow only the **VPN adapter and its server**, then activate the rules together. Test by dropping the tunnel and watching the connection fail.
Write down the VPN server address and the adapter name the client creates. Both are needed for the allow rules; guessing them produces a kill switch that blocks the tunnel as well.
ipconfig /all
In the advanced firewall, add an outbound rule that blocks all programs and all profiles. It is inactive until enabled, so nothing breaks while you build the rest.
wf.msc > Outbound Rules > New Rule > Block
Add allow rules that sit above the block: one for the client executable, one for remote addresses equal to the VPN server on its port. Firewall rules are evaluated in order.
Allow: <vpn-client>.exe -> Any
Allow: Any -> <server-ip>:<port>
Printers, a local NAS and casting break under a strict kill switch. Permit the private profile for those addresses so the house keeps working while the internet stays blocked.
Allow: Any -> 192.168.0.0/16 (Private profile)
Disconnect the VPN with the rules enabled and try to load a page. It has to fail. If it loads, one of the allow rules is too broad or the block rule is disabled.
A kill switch that is always on needs a way out when the client itself is broken. Keep a second account or a documented one-line command that disables the two rules.
netsh advfirewall set allprofiles firewallpolicy blockinbound,blockoutbound
The allow rules are below the block rule or point at the wrong executable. Check the order in wf.msc.
DNS still goes to a local resolver that is blocked. Allow the tunnel's DNS server or use encrypted DNS through the VPN.
The local exception is missing or limited to a different profile. Add the printer's address for the private profile.
Expected under a strict outbound block. Disable the rules for the update window, then re-enable them.
It is a good first layer, but a crashed client can take it down with it. Firewall rules survive the process.
A firewall rule adds no measurable latency. The tunnel does.
Disable or delete the rules you created in **wf.msc > Outbound Rules**. Network access returns immediately, without a reboot.
Free · no account needed · tracks your progress