A VPN (Virtual Private Network) is an encrypted tunnel that extends over a public network. It allows users to securely browse and access resources over an internet connection with utmost privacy and confidentiality.
[ You might also like: 13 Best VPN Services with Lifetime Subscription ]
ProtonVPN is a high-speed Swiss-based VPN that secures your precious data such as passwords using an encrypted tunnel. It provides notable features such as:
- Full disk encryption on ProtonVPN servers that helps secure data from attacks.
- Strong VPN protocols such as KEv2/IPSec and OpenVPN.
- Robust encryption with AES-256 for network encryption, 4096-bit RSA for key exchange, and HMAC with SHA384 for message authentication.
- Encryption cipher suites with perfect forward secrecy. This implies that encrypted traffic cannot be captured and be decrypted later if an encryption key gets compromised.
- No logs policy. Your data or internet activity is not tracked.
ProtonVPN provides numerous server locations, and at the time of writing this guide, it boasts of over 1200 servers spread out across 55 countries.
In this guide, we will show you how to install ProtonVPN on Linux.
Sign Up for a ProtoVPN Account
The first step, before anything else, is to create a ProtonVPN account. You can do so by heading over to the Offical ProtonVPN website and clicking on the ‘Pricing’ tab.
Proton VPN provides 4 pricing models namely: Free, Basic. Plus and Visionary. For demonstration purposes, we will use the ‘Free’ plan which allows you to test ProtonVPN free of charge for up to 7 days. With the ‘Free’ plan, you get access to 23 servers spread out across 3 countries.
So, click on the ‘GET FREE’ button under the ‘Free’ option.
This takes you to the Sign-up page whereupon you will be required to fill in your details. An OTP will be sent to your email account to activate your account.
Once logged in, head over to the left sidebar and click on ‘Account’ then ‘OpenVPN / IKEv2 username’ option. This will display the OpenVPN / IKEv2 username & password details.
Copy and paste these details somewhere else because you will need them later in this guide during the configuration of Proton VPN.
Install ProtonVPN in Linux
With the ProtonVPN account already created, the next step is to install ProtonVPN. The VPN leverages the IKEv2/IPSec and OpenVPN protocols. OpenVPN protocol supports both TCP and UDP and for this reason, we will use OpenVPN on our Linux desktop.
To install OpenVPN, run the following commands:
Install OpenVPN in Debian/Ubuntu
$ sudo apt update $ sudo apt install openvpn dialog python3-pip python3-setuptools
Then install ProtonVPN CLI using the pip package manager.
$ sudo pip3 install protonvpn-cli
Install OpenVPN in RHEL/CentOS 8 and Rocky Linux
On Red Hat derivatives such as RHEL/CentOS, Fedora, and Rocky Linux, run the commands shown.
$ sudo dnf install -y openvpn dialog python3-pip python3-setuptools $ sudo pip3 install protonvpn-cli
Install OpenVPN in ArchLinux / Manjaro
For Arch-based distributions, run the commands shown.
$ sudo pacman -S openvpn dialog python-pip python-setuptools $ sudo pip3 install protonvpn-cli
Setup ProtonVPN in Linux
Once the required OpenVPN packages have been installed, the next step is to configure ProtonVPN on your Linux desktop.
To do so, run the command below.
$ sudo protonvpn init
This walks you through a few configuration steps. First, you will be required to provide the OpenVPN username and password. Recall the details we recommended you copy and paste somewhere? These are the details that you need to provide.
Therefore, type your username and password and confirm your password.
Next, Type 1
to select the basic plan which is the plan we are using.
Next, you will be required to choose either between TCP or UDP protocols. Both work just fine, but for the sake of speed, we recommend you go with UDP, and therefore type 1
and hit ENTER.
Finally, a summary of the configurations chosen will be displayed for you to review. If all looks good, hit ‘Y’
and press ENTER. Otherwise, press ‘n’
to go back and start all over again.
Disable IPv6 in Linux
Since the ProtonVPN client doesn’t provide support for Ipv6, best practice demands that we disable it to avoid IPv6 leaks. To do so, open the /etc/sysctl.conf configuration file.
$ sudo vim /etc/sysctl.conf
At the very end, append the following lines
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 net.ipv6.conf.tun0.disable_ipv6 = 1
Save the changes and exit the configuration file. To persist the changes, run the command:
$ sudo sysctl -p
Connect to ProtonVPN in Linux
We are done with the bulk of the configurations. The only step remaining is to establish a secure connection to one of the ProtoVPN servers from our Linux desktop using the ProtonVPN client.
To make a connection, run the command:
$ sudo protonvpn connect
The Free plan gives you a choice of 3 countries: Japan, the Netherlands, and the US. Any of these will do just fine. Here. we have selected Japan.
Next, pick a server location from the country you have selected.
Next, you will be required to select a protocol. As before, select UDP for fast speeds.
A few seconds later, a secure connection will be established as shown. If you get an error, head back and set up ProtonVPN again as provided in Step 3.
You can confirm the IP change from your web browser by visiting https://whatismyip.com. The output confirms that our location has changed to Osaka, Japan which confirms that our setup was successful.
Disconnect from ProtonVPN
Once you are done using the ProtonVPN service, you can disconnect using the command:
$ sudo protonvpn disconnect
And this concludes our guide today on how you can install and use Proton VPN on Linux.