How to Install and Use ProtonVPN on Desktop Linux

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.

ProtonVPN Free
ProtonVPN Free

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.

ProtonVPN Account
ProtonVPN 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.

OpenVPN / IKEv2
OpenVPN / IKEv2

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 ProtonVPN in Ubuntu
Install ProtonVPN in Ubuntu

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.

ProtonVPN Setup in Linux
ProtonVPN Setup in Linux

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.

Choose OpenVPN Protocol
Choose OpenVPN Protocol

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
Disable IPv6 in Linux
Disable IPv6 in Linux

Save the changes and exit the configuration file. To persist the changes, run the command:

$ sudo sysctl -p
Modify Kernel Parameters
Modify Kernel Parameters

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.

ProtonVPN Country
ProtonVPN Country

Next, pick a server location from the country you have selected.

ProtonVPN Server
ProtonVPN Server

Next, you will be required to select a protocol. As before, select UDP for fast speeds.

ProtonVPN Protocol
ProtonVPN Protocol

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.

ProtonVPN Connected
ProtonVPN Connected

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.

Check IP Address
Check IP Address

Disconnect from ProtonVPN

Once you are done using the ProtonVPN service, you can disconnect using the command:

$ sudo protonvpn disconnect
Disconnect ProtonVPN
Disconnect ProtonVPN

And this concludes our guide today on how you can install and use Proton VPN on Linux.

James Kiarie
This is James, a certified Linux administrator and a tech enthusiast who loves keeping in touch with emerging trends in the tech world. When I'm not running commands on the terminal, I'm taking listening to some cool music. taking a casual stroll or watching a nice movie.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

2 Comments

Leave a Reply
  1. These instructions are for installing and setting up ProtonVPN on a systemd distribution. There are many people who use non-systemd distros such as Slackware or Gentoo. They may be able to install ProtonVPN but since their distros do not use “sysctl“, they will not be able to configure ProtonVPN.

    “If you get an error, head back and set up ProtonVPN again as provided in Step 3.”
    There is no Step 3. The setup steps are not numbered.

    Reply
  2. Of course, the installation and setup instructions are pretty much useless to anybody using a non-systemd distro.

    Reply

Leave a Reply to dragonmouth Cancel reply

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.