ProtonVPN IP Leakage on Linux and Workaround

This is what I follow and use ProtonVPN or any VPN on Linux (albeit with less flexibility but with certainty):

Wireguard VPN via Terminal with Killswitch:

  1. Download config file
  2. Open config file
  3. Add the following under “Interface” section:
> PostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT && ip6tables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
> PreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT && ip6tables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
  1. Save file
  2. Add file in folder: admin:///etc/wireguard
  3. Enter this in terminal: systemctl enable wg-quick@config-file-name
  4. Enter system password to authenticate when prompted
  5. Start VPN: sudo wg-quick up config-file-name
  6. Reboot system with reboot or systemctl reboot

Now you have Wireguard VPN (with any service of your choice) with killswitch enabled that blocks all internet traffic and ensures all traffic goes through that encrypted tunnel as soon as OS connects to the internet and starts transmitting.

Follow Mullvad and Proton support website for more details: