Proton team does not build packages for Gentoo Linux, so we have to figure out how to install it on our own. From what I have gathered, there are 3 ways to go about it: download OpenVPN and Wireguard configuration files from the ProtonVPN UI, install GUI and CLI apps from sources or use community CLI.
Configuration Files
In the ProtonVPN personal settings configuration files can be downloaded both for OpenVPN and Wireguard. To find them, go to:
- Downloads
- OpenVPN / Wireguard configuraion
More details can be found if official documentation. The configuration files can be then used in the respective VPN clients.
Install From Sources
This part is trickier. ProtonVPN CLI and GUI app have a lot of dependencies, and they are not documented very well. Luckily, there is an existing ebuild written by FlyingWaffleDev that install ProtonVPN GUI GTK app.
To install it, first add the waffle-build
overlay, and install the ebuild:
sudo eselect repository enable waffle-builds
sudo emerge --ask --quiet-build net-vpn/proton-vpn-gtk-app
Finally, launch the app from the icon, login and connect to VPN!
Community CLI
⚠️ Since March 2023 Proton team stopped allowing API calls from the community project, details: https://github.com/Rafficer/linux-cli-community/issues/365
Community CLI
can be installed via net-vpn/protonvpn-cli
package.
After installation, run protonvpn
command to establish to connect to VPN.
Installation
Repository has the required package, so it can be easily emerged:
emerge --ask net-vpn/protonvpn-cli
It can also be installed via pip (not preferred):
python -m venv protonvpn
source protonvpn/bin/activate
python -m pip install protonvpn-cli --break-system-packages>
alias protonvpn /home/labbrat/protonvpn/bin/activate protonvpn
Configuration
protonvpn
tool doesn’t have login
option and authentication
is done via init
. Main difference between the 2 is login
uses
Proton credentials as login, and init
uses OpenVPN credentials,
which can be found in account settings.
Find OpenVPN settings and enter them in init:
protonvpn init
Everything else is pretty much the same. To connect just run:
protonvpn c