VPN With Kill Switch (2026): Why It Matters and Which VPNs Actually Implement It Correctly
What a VPN kill switch actually does, the difference between system-level and app-level kill switches, and which VPNs in 2026 ship a kill switch that holds under real-world conditions.
CasperVPN Team
May 10, 2026
A VPN kill switch is the feature that decides whether your real IP and unencrypted traffic ever reach the network when something goes wrong. It is one of the few VPN features where the difference between a good implementation and a bad one is the difference between privacy and a leak. This guide walks through what a kill switch actually does, the architectural choices behind it, and which providers in 2026 ship one that holds under real conditions.
What a Kill Switch Actually Does
A VPN kill switch monitors the encrypted tunnel between your device and the VPN server. The moment that tunnel drops — for any reason — the kill switch blocks all internet traffic from leaving your device until the tunnel is back up.
Without a kill switch, when the tunnel drops, your operating system silently fails over to your default network connection. Browsers, background apps, sync services, and OS-level telemetry continue communicating — over the unprotected connection. Your real IP, your DNS queries, and any cleartext traffic from non-HTTPS apps all leak.
A working kill switch prevents this failover. It is not a luxury feature. For users on public Wi-Fi, on strict networks, or with any threat model that includes IP correlation, it is the difference between privacy and not-privacy.
When Tunnels Actually Drop in 2026
People assume tunnels are stable. They are not. The common drop scenarios:
Without a kill switch, every one of these scenarios is a leak event.
System-Level vs App-Level Kill Switches
This is the architectural distinction that separates implementations that hold from implementations that do not.
App-Level Kill Switch
The VPN client app monitors the tunnel and, when it detects a drop, instructs the OS firewall to block traffic. This works fine when:
It fails when:
Most consumer VPN kill switches in 2026 are app-level. They work for most users most of the time. They do not work for the threat model where any leak is unacceptable.
System-Level Kill Switch
The kill switch is a permanent system firewall rule. The default policy is "block all internet traffic that is not going through the VPN tunnel interface." This rule lives in the OS regardless of whether the VPN app is running.
The architectural property: traffic cannot leave your device through any interface other than the VPN tunnel. If the tunnel drops, traffic stops. If the VPN app crashes, traffic stops. If you manually quit the app, traffic stops.
This is what the security community generally means by a "real" kill switch. On iOS, the equivalent feature is Always-On VPN with On-Demand rules combined with the system VPN configuration. On macOS and Linux, it is implemented with system firewall rules (`pf` on macOS, `nftables` or `iptables` on Linux). On Windows, it is route-table manipulation plus Windows Filtering Platform rules.
The trade-off: a system-level kill switch is harder to ship, harder to support, and more aggressive about blocking traffic when it kicks in. It is also the only kind that survives the threat models that justify a kill switch existing in the first place.
How to Test If Your Kill Switch Actually Works
Most users assume their kill switch works because their VPN provider's UI says it is on. The only way to verify is to test it.
The lab test:
A working kill switch returns: connection refused, no route to host, or a timeout. Your real IP is never visible.
A broken kill switch returns: your real IP, unencrypted, possibly with a brief delay before the VPN client reconnects.
Run this test on every device you depend on. Do not assume.
Kill Switch Implementations in 2026 — How the Major VPNs Compare
CasperVPN
CasperVPN ships a system-level kill switch on iOS via the standard NetworkExtension framework with on-demand rules. When the tunnel is configured, the iOS system enforces the routing rule at the kernel level — the VPN app does not need to be running for the kill switch to hold. This is the architecturally correct iOS implementation; many providers ship app-level approximations.
On macOS, Windows, and Linux clients (in development as of mid-2026), the design intent is the same: system firewall rules that block non-tunnel traffic regardless of client process state.
In the CasperVPN iOS app the kill switch is a setting you turn on in Settings. It has two modes: Soft reconnects when your network changes, and Strict blocks all internet traffic while the VPN is down. It is off until you switch it on, so if a leak would matter to you, turn it on and choose Strict.
ProtonVPN
ProtonVPN ships a credible system-level kill switch on macOS, Linux, and Windows. The iOS implementation uses on-demand rules similar to CasperVPN's approach. ProtonVPN also ships a "Permanent kill switch" mode that maintains the firewall rule across reboots — even before the VPN client starts. This is one of the strongest implementations in the consumer category.
NordVPN
NordVPN ships an app-level kill switch on most platforms with a system-level "Internet Kill Switch" mode that is more aggressive. The implementation is solid for most threat models. The default-on behavior varies by platform.
ExpressVPN
ExpressVPN ships a "Network Lock" feature that is system-level on Windows, macOS, and Linux. iOS uses the standard on-demand approach. Network Lock is one of the more battle-tested kill switch implementations, with a long track record of holding through network handoffs and OS sleep cycles.
Surfshark, Mullvad, and Others
Mobile Kill Switches — The Special Case
Mobile platforms (iOS and Android) have OS-level constraints that make kill switch implementation different from desktop.
iOS does not allow third-party apps to install permanent system firewall rules. The closest equivalent is `NEVPNManager.isOnDemandEnabled = true` combined with `NEOnDemandRuleConnect` rules, which tell the iOS system to refuse network traffic when the VPN should-be-connected but is not. This is what CasperVPN, ProtonVPN, and ExpressVPN use on iOS.
Android allows VPN apps more privileges via the `VpnService` API. The `setBlocking(true)` flag effectively makes the VPN service a system-level kill switch — traffic cannot leave the device through any interface while the VPN is "active" but disconnected. This is the right architectural choice and is well-supported by major providers.
The practical implication: on mobile, the kill switch is only as good as the OS framework the VPN client uses. The provider's UI promises mean less than whether they are using the correct framework correctly.
Always-On vs Kill Switch — They Are Not the Same
These terms get used interchangeably and they should not be.
Always-on without a kill switch leaks during reconnection windows. Kill switch without always-on leaves you offline rather than reconnecting. The correct configuration on any privacy-serious device is both enabled — automatic reconnection plus traffic blocking during the reconnection window.
DNS Leak Protection — The Other Half of the Story
A kill switch protects against IP and traffic leaks. It does not necessarily protect against DNS leaks. A DNS leak happens when your device queries an external DNS resolver outside the VPN tunnel — typically your ISP's resolver. The query reveals which sites you are browsing, even if the actual traffic goes through the tunnel.
A good VPN client sends your DNS lookups inside the encrypted tunnel, so your internet provider's resolver never sees them, and keeps them in the tunnel while it reconnects.
The CasperVPN app tells your iPhone or iPad to send DNS lookups through the encrypted tunnel on every protocol, not to your internet provider. While the VPN is down, only the kill switch in Strict mode keeps them from leaving outside the tunnel, so turn it on if this matters to you. Check it yourself on `ipleak.net` after connecting: the DNS server shown should not belong to your internet provider.
Why You Should Care Even If Your Threat Model Is "Casual"
A common pushback: "I don't need a kill switch — I'm just streaming on public Wi-Fi." Two reasons that argument is weaker than it sounds:
The asymmetry is what makes a kill switch worth enabling. The downside is mild inconvenience. The upside is your real IP and traffic never leak when something goes wrong. Pick the kill switch.
When CasperVPN Is the Right Choice for Kill-Switch Reliability
CasperVPN is the right choice if: you are on iOS and want a kill switch that uses the architecturally correct on-demand framework and a Strict mode that blocks all traffic while the tunnel is down; you also want CasperCloak, our own protocol, for strict networks; you want the lifetime tier ($149.99 one-time) for a long-term privacy stack.
Pick ProtonVPN instead if: you specifically want a "Permanent kill switch" mode that survives reboots before the client starts; you want a published audit history of the kill switch implementation; you need fully open-source apps you can inspect.
Pick ExpressVPN instead if: you want the longest track record of a "Network Lock"-style system-level kill switch on desktop platforms; you are willing to pay premium pricing for that track record.
All three are correct answers depending on which property matters most to your threat model. The wrong answer is a free VPN or a low-tier provider where the kill switch is either app-level or non-existent.
Frequently Asked Questions
Does CasperVPN have a kill switch? Yes. The iOS app has a system-level kill switch built on the iOS NetworkExtension on-demand framework. You turn it on in Settings; in Strict mode it holds when the tunnel drops, even if the app is suspended. macOS, Windows, and Linux clients are in development with the same design intent.
Is the kill switch on by default in CasperVPN? No. It is off until you turn it on in Settings. If you rely on the VPN for privacy, turn it on and choose Strict mode.
What happens if I close the VPN app — does the kill switch still work? On iPhone and iPad, yes — once you have turned the kill switch on in Strict mode. The block is held by iOS itself, not by the app, so it keeps working when the app is closed. CasperVPN for Mac, Android and Windows is not out yet; those apps will follow the same rule when they ship.
Can I test the kill switch myself? Yes — see the lab test in this article. Use `ipleak.net` and force the tunnel to drop. A working kill switch returns no internet access until the tunnel is back up.
Will the kill switch slow down my connection? No. A kill switch is not a network operation — it is a firewall rule that triggers only when the tunnel drops. There is no per-packet overhead.
Is there a difference between a kill switch and "Always-On VPN"? Yes. Kill switch blocks traffic when the tunnel is down. Always-On automatically reconnects. Use both together for the strongest protection.
---
Try CasperVPN Free · See pricing · Public Wi-Fi risks
Last updated: 6 October 2026. Provider feature comparisons reflect production state on the publish date and are based on each vendor's public documentation. We update this page when material facts change.