This may have happened to a few of us. Meanwhile, you will find some workarounds in these forums that will help you regain connectivity. Well, it’s time to get rid of the workarounds and address the issue head on with a solution that will work on all distros.
First, to identify the problem. You are not losing internet connection. ProtonVPN initiates two different connections when you fire it up. One is the actual VPN tunnel, while the other is a leak protection for the IPv6. If you shutdown, suspend, or reboot while ProtonVPN is still running, chances are - when you log back in - you won’t be able to visit any website or do updates. The reason is that the IPv6 leak protection is still active, but without the VPN tunnel.
In short, you have Internet access, but your system cannot resolve domains. You can verify that by opening up a terminal and typing:
ping -c 3 1.1.1.1
This is the Name Server address for Cloudflare, and you will notice that your system is still able to reach it. However, if you type something like:
ping -c 3 cloudflare.com
You will get an error.
So, how do you solve this?
While on terminal, type the following:
ip link
You will notice an additional connection tunnel that looks like the one below:
3: ipv6leakintrf0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
The only thing you need to do is delete it. First, keep note of the actual name of the connection. In our scenario, that name is: ipv6leakintrf0
Thus, all you need to do is this:
sudo ip link delete ipv6leakintrf0
And voila, your Internet name resolution is restored!
How to avoid this in the future?
Until ProtonVPN issues a correction to this problem, before you shutdown or reboot your system, make sure you disconnect from the VPN. If you have the graphic user interface client, just click on it and select disconnect.
If you’re a terminal person, just type in:
protonvpn-cli d
And that’s it.
Enjoy your Digital Freedom!