ProtonVPN-CLI is a full rewrite of the bash protonvpn-cli in Python, which adds more features and functionality with the purpose of improving readability, speed and reliability.
Dependencies:
- openvpn
- dialog (optional, needed for interactive selection)
- python3.5+
- pip for python3 (pip3)
On Fedora/CentOS/RHEL:
sudo dnf install -y openvpn dialog python3-pip python3-setuptools
sudo pip3 install protonvpn-cli
On Debian/Ubuntu/Linux Mint and derivatives:
sudo apt install -y openvpn dialog python3-pip python3-setuptools
sudo pip3 install protonvpn-cli
On SUSE:
sudo zypper in -y openvpn dialog python3-pip python3-setuptools
sudo pip3 install protonvpn-cli
On Arch/Manjaro:
sudo pacman -S openvpn dialog python-pip python-setuptools
sudo pip3 install protonvpn-cli
Make sure to run pip as sudo, so it installs globally and recognizes the command with sudo.
Updating works via PIP as well
sudo pip3 install protonvpn-cli --upgrade
-
Clone this repository or download the zip file
git clone https://github.com/protonvpn/protonvpn-cli-ngor
unzip protonvpn-cli-ng-master.zip -
Step into the directory
cd protonvpn-cli-ng -
Install (make sure to use sudo to install globally)
sudo pip3 install .
| Command | Description |
|---|---|
protonvpn init |
Initialize ProtonVPN profile. |
protonvpn connect, c |
Select a ProtonVPN server and connect to it. |
protonvpn c [servername] |
Connect to a specified server. |
protonvpn c -r |
Connect to a random server. |
protonvpn c -f |
Connect to the fastest server. |
protonvpn c --p2p |
Connect to the fastest P2P server. |
protonvpn c --cc [countrycode] |
Connect to the fastest server in a specified country. |
protonvpn c --sc |
Connect to the fastest Secure-Core server. |
protonvpn reconnect, r |
Reconnect or connect to the last used server. |
protonvpn disconnect, d |
Disconnect the current session. |
protonvpn status, s |
Print connection status. |
protonvpn configure |
Change CLI configuration. |
protonvpn refresh |
Refresh OpenVPN configuration and server data. |
protonvpn examples |
Print example commands. |
protonvpn --version |
Display version. |
protonvpn --help |
Show help message. |
All connect options can be used with the -p flag to explicitly specify the Protocol (either udp or tcp).
You can see the full list of commands by running protonvpn --help and a list of examples by running protonvpn examples.
Most of the commands need to be run as root, so use sudo with the commands in this guide!
Before using any other commands, you need to initialize your profile:
protonvpn init
To connect to a server you always need the connect option (or just c):
protonvpn connect
Running it just like that will give you a menu that let's you select the country, server and protocol interactively:
If you specify a server name after connect, you can directly connect to a server of your choice:
protonvpn connect US-NY#6
The server name can be written in a few different ways. For example, usny6, us-ny-6 or usny-06 are all valid formats.
To connect to the fastest server, you can use the --fastest or -f flag:
protonvpn c --fastest
protonvpn c -f
You can use the --random or -r flag to connect to a random server:
protonvpn c -r
There are a few methods of fastest connect. You can connect to the fastest server of a country, the fastest Secure-Core server, the fastest P2P server or the fastest Tor server.
Fastest server in a country (replace UK with the code of the desired country, e.g. US for USA, JP for Japan, AU for Australia, etc.):
protonvpn c --cc UK
Fastest Secure-Core server:
protonvpn c --sc
Fastest P2P/torrent server:
protonvpn c --p2p
Fastest Tor server:
protonvpn c --tor
All connection methods (except the interactive menu) can be used with the -p flag to choose a protocol. Possible values are either TCP or UDP If that flag is not used it will use the default protcol specified in the initialization:
Connect to the fastest server with TCP:
protonvpn c -f -p TCP
Connect to a random server with UDP:
protonvpn c -rp UDP
To disconnect the VPN, you need to use the disconnect or d option:
protonvpn disconnect
protonvpn d
If you're having trouble with your connection, e.g. because you switched networks or your device woke up from sleeping, you can easily reconnect to the last server with the reconnect or r option:
protonvpn reconnect
protonvpn r
If you want to see the status and information of your current connection, you can use the status or s option, which doesn't require root:
protonvpn status
protonvpn s
If you want to change different values that you've set during initialization, you can do this with the configure option, just follow the prompts to change your username/password, default protocol and so on:
protonvpn configure
If you want to uninstall ProtonVPN-CLI, run configure first and purge the configuration. Then uninstall through the package manager you used for installation.
For PIP this would be
sudo pip3 uninstall protonvpn-cli
Bye Bye 😔




