ProtonVPN, install the CLI of this VPN service in Ubuntu

about protonvpn

In the next article we are going to take a look at ProtonVPN. This is a VPN service provider based in Switzerland. In the following lines we will see how to install and use ProtonVPN from the Ubuntu, Debian or Linux Mint desktop.

For those who don’t know, VPN stands for Virtual Private Network, and with this service a secure and encrypted ‘tunnel’ is configured between our device and the VPN server. Keep in mind that using a VPN service is not a silver bullet to protect our privacy and security online. For those looking for greater security, perhaps it is a better option to use the Tor browser in Tails Linux. However, I think most users don’t need to go that far.

General characteristics of ProtonVPN

  • He full disk encryption it is implemented on all ProtonVPN servers.
  • All client applications are open source.
  • In the paid version we can route all your traffic through the Tor network and access the Onion sites.
  • Supports IKEv2 / IPSec and OpenVPN secure protocols.
  • DNS leak protection and IPv6 leak protection.
  • Graphical VPN Client available for Android, iOS, Mac OS X, and Windows. In Gnu / Linux we can use the terminal client.
  • In the paid version we can use ProtonVPN to browse anonymously on multiple devices at the same time.
  • ProtonVPN has more than 1076 servers in 54 different countries.
  • No registration policy. ProtonVPN does not collect, record or store any browsing activity, data, or IP addresses.
  • The torrent function in the paid version.
  • VPN kill switch. If the VPN connection drops, our computer will revert to the original public IP by default.

These are just some of the features. Can be consult all of it in detail from the project website.

Install ProtonVPN on Ubuntu / Debian / Mint

First of all, we will need go to the official website of ProtonVPN and sign up for a free account. With the free version that we are going to use in this example we will get 1 VPN connection, servers in 3 countries, an average speed and we will get a service without registrations or ads.

web log

It is necessary to mention that ProtonVPN supports IKEv2 / IPSec and OpenVPN protocols. For this example we will use OpenVPN, since it is very secure and easy to configure:

protonvpn requirements

sudo apt install openvpn dialog python3-pip python3-setuptools

Next we need install ProtonVPN client for Gnu / Linux. We will achieve this by typing in a terminal (Ctrl + Alt + T):

pip3 install protonvpn

sudo pip3 install protonvpn-cli

Using the ProtonVPN client in Ubuntu

After installation, we will have to log into our ProtonVPN account with the following command:

login user password terminal

sudo protonvpn init

Username and password can be found at bill we just created.

user password protonvpn

Back in the terminal, we will have to select our ProtonVPN plan (in this case free) and choose UDP or TCP as the transport layer protocol. As indicated on their website, it is advisable to use UDP first, if there is a problem establishing the VPN connection, we can use the TCP protocol.

vpn terminal configuration

Keep in mind that ProtonVPN client for Gnu / Linux does not support IPv6. It is recommended to disable IPv6 on our Gnu / Linux device to avoid IPv6 address leakage. We will achieve this by editing /etc/sysctl.conf with a text editor:

sudo vim /etc/sysctl.conf

AND adding the following lines at the end of this file.

disable ipv6

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 and close the file. Now we can now establish the VPN connection to the ProtonVPN server:

sudo protonvpn connect

It will ask us to choose a country. Free users will have 3 countries to choose from.

select connection countries

The next screen it will ask us to choose a server from the selected country.

select server within country

Then we will have to choose TCP or UDP as the transport layer protocol. After a few seconds, VPN connection should be established.

established connection

IPv6, DNS and WebRTC leak test

Once the connection is established, we can direct us to If everything works correctly, we should see something like the following:

IP adress

This page will show us that our team will have a new IP address, so from the Internet you should no longer be able to see our real public IP address.

As you can see from the above screenshot, there is no IPv6 address in the test result, which means that the IPv6 address is also hidden from the Internet. There is also no IP address in the detection section of WebRTC and no IP address in the DNS addresses section. If your ISP’s DNS server appears in the test results, it means we have a DNS leak, which means that your ISP’s DNS server is translating domain names to IP addresses, so the ISP knows which websites you are visiting.

How to disconnect ProtonVPN

We just have to run the following command to disconnect ProtonVPN:

sudo protonvpn disconnect


If we want uninstall this client through the package manager that we use for installation:


sudo pip3 uninstall protonvpn-cli

For learn more about prontonvpn-cli installation and how to use it, users can consult the help offered on the project website.

Add Comment