I’m a network engineer, and I’m writing this because almost nobody here knows what they are saying. Two facts:
Non-controversial fact: There is no such thing as a kill switch on iOS/macOS.
It does not work, it cannot work, not for Proton or any other VPN. The operating system network stack does not support it. Apple knows the bug (reported by Proton many years ago) but decide not to fix it. It’s not the fault of the VPN providers, and it occurs when you connect/disconnect, there is no workaround.
Little controversial fact: There is no such thing as a kill switch on Linux.
I’m a Linux developer, and yes, you might get it working OK on some distros, but you won’t make it work on all distros, not even most distros. There is no possibility to do it, there are just too many distros with their own network quirks and problems.
I read here many bad solutions proposed. Let me give a good solution.
Do not remove Proton VPN or other VPNs. Do not separate services and clients. All will hit the two facts above.
Do put a general warning box in the VPN section that kill-switch is unreliable for iOS/macOS due to Apple bug for ALL VPNs, and use on kill-switch at your own risk in Linux based on distribution and always test it yourself first.
Last comment about Proton VPN because I checked it before when I was in country with censorship, just curious why it worked and other VPN did not. Usually when you check kill switch, you think you have a leak if you see non-VPN traffic while reconnecting. True for most VPN but not for Proton. Because Proton VPN is the anticensorship VPN, it probes the network during reconnect, and makes the probe traffic look like non-VPN network activity to hide it.
It’s not a leak, its how they obfuscate traffic to their hidden servers to test current network. I don’t say more to not make life easier for the censors ![]()