sir-jick/linux-cli-ProtonVPN-CLI
Linux command-line client for ProtonVPN. Written in Python.
ProtonVPN-CLI
A Linux CLI for ProtonVPN. Written in Python.
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.
Installation & Updating
For more detailed information on installing, updating and uninstalling, please view the extensive usage guide.
Installing from distribution repositories
For the following Linux distribution(s), install the official protonvpn-cli package:
Fedora
sudo dnf install -y protonvpn-cliCentOS & RHEL
protonvpn-cli is available for CentOS/RHEL 7.x and 8.x via the EPEL repositories.
For CentOS/RHEL 7.x:
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install protonvpn-cliFor CentOS/RHEL 8.x:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install -y protonvpn-cliInstalling from PyPI
Installing Dependencies
Dependencies:
- openvpn
- dialog (optional, needed for interactive selection)
- pip for python3 (pip3)
- python3.5+
- setuptools for python3 (python3-setuptools)
Depending on your distribution, run the appropriate following command to install the necessary dependencies
| Distro | Command |
|---|---|
| Fedora/CentOS/RHEL | sudo dnf install -y openvpn dialog python3-pip python3-setuptools |
| Ubuntu/Linux Mint/Debian and derivatives | sudo apt install -y openvpn dialog python3-pip python3-setuptools |
| OpenSUSE/SLES | sudo zypper in -y openvpn dialog python3-pip python3-setuptools |
| Arch Linux/Manjaro | sudo pacman -S openvpn dialog python-pip python-setuptools |
Installing ProtonVPN-CLI
Installation happens via Python's package manager PIP.
Note: Make sure to run pip with sudo, so it installs globally and recognizes the command with sudo
sudo pip3 install protonvpn-cli
Updating ProtonVPN-CLI
sudo pip3 install protonvpn-cli --upgrade
Manual Installation from source
Disclaimer: If you are unsure about what you're doing, please follow the normal installation guide.
It is recommended to do the manual installation in a virtual environment. Especially if it serves the purpose of developing.
-
Clone this repository
git clone https://github.com/protonvpn/linux-cli -
Step into the directory
cd linux-cli -
Install
pip3 install -e .
For updating, you just need to pull the latest version of the repository with git.
How to use
For more detailed information, see the extensive usage guide.
| 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 server used. |
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 which transmission protocol is used for that connection (either udp or tcp).
Contributing
If you want to contribute to this project, please read the contribution guide.
