Our app officially supports Ubuntu 20.04 LTS.
These instructions explain how to download and install the early access version of the ProtonVPN Linux app. The early access gives you access to new features before they are released publicly, but it is still in development.
By using the early access version and sharing your feedback, you are helping us find and address bugs. However, if you are new to Linux or concerned about your threat model or, we recommend you download the stable version of our ProtonVPN Linux app.
Important: You cannot upgrade from the early access version of our Linux app to the stable version. You will need to uninstall the early access app and then install the official app. Similarly, if you are using the community-developed version of our Linux app or the stable version of the ProtonVPN Linux app, you should uninstall it before installing the new app. See the Notes section at the end of this article for instructions.
1. Get the early access version of the DEB setup package for the ProtonVPN repository
2. Install the ProtonVPN repo
Double-click the downloaded DEB package to install the repo using your default package manager.
3. Update the apt-get package list
Open Terminal and enter the command:
sudo apt-get update
4. Install the ProtonVPN Linux app
Last step! Enter:
sudo apt-get install protonvpn
Linux system tray icon
Our Linux app can show a system tray icon that stays active when you close the main ProtonVPN window and allows you to easily Quick Connect or Disconnect.
To install the system tray icon, open Terminal and enter:
sudo apt install gnome-shell-extension-appindicator gir1.2-appindicator3-0.1
You might be asked to select your default displays manager. If you are unsure which it is, enter the following command into a new terminal window to find out:
grep '/usr/s\?bin' /etc/systemd/system/display-manager.service
Restart your system.
ProtonVPN is now ready to use.
Your feedback helps us develop apps that meet your needs.
1. Uninstall the official app
sudo apt-get autoremove protonvpn
Then uninstall the stable app repo with:
sudo apt purge protonvpn-stable-release
Remove any leftover files:
rm -rf ~/.cache/protonvpn
rm -rf ~/.config/protonvpn
2. Uninstall the early access app
The instructions to uninstall the early access app are identical to the instructions for uninstalling the official app (see above), except that to remove the early access repo and keys, use the following command instead:
sudo apt purge protonvpn-beta-release
3. Uninstall the older community ProtonVPN app
To uninstall the older community ProtonVPN app, run:
Select option 7) Purge Configuration. Then uninstall through the package manager you used for installation. If the package is installed system-wide, use the command:
sudo pip3 uninstall protonvpn-cli
If not, then use:
pip3 uninstall protonvpn-cli
4. Disable the kill switch if you have uninstalled the official app
The kill switch can be easily disabled from within the Linux app, but this will not be possible if you uninstalled the app first without disabling the kill switch. This may result in your system being unable to access the internet. To remove the kill switch after the app has been uninstalled:
a) Identify ProtonVPN connection names by running the command:
nmcli connection show --active
This will display a list of all your system’s active connections.
b) Look for any connections with the pvpn- This usually includes pvpn-killswitch and pvpn-ipv6leak-protection, and may include pvpn-routed-killswitch. Delete all these connections using the following command:
nmcli connection delete [connection name]
nmcli connection delete pvpn-killswitch
c) Re-run the following command to verify that ProtonVPN connections have been deleted:
nmcli connection show --active
If any ProtonVPN connections remain, delete them as described above.
4. Required dependencies
Our Linux app needs one of the following dependencies installed in order to work. Installing both of these dependencies is not recommended as it may cause problems:
- KWallet or
Note that most distros come pre-installed with one of these dependencies, so usually no additional configuration is required. Also required is: