Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Rafficer/linux-cli-community
Linux command-line client for ProtonVPN. Written in Python.
https://github.com/Rafficer/linux-cli-community
linux openvpn protonvpn protonvpn-cli python python3 vpn
Last synced: about 1 month ago
JSON representation
Linux command-line client for ProtonVPN. Written in Python.
- Host: GitHub
- URL: https://github.com/Rafficer/linux-cli-community
- Owner: Rafficer
- License: gpl-3.0
- Created: 2019-09-30T15:43:25.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-03-24T04:25:04.000Z (9 months ago)
- Last Synced: 2024-11-08T17:57:05.941Z (about 1 month ago)
- Topics: linux, openvpn, protonvpn, protonvpn-cli, python, python3, vpn
- Language: Python
- Homepage: https://protonvpn.com
- Size: 710 KB
- Stars: 1,307
- Watchers: 50
- Forks: 199
- Open Issues: 134
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Authors: AUTHORS
Awesome Lists containing this project
- awesome-useful-projects - <img src="https://icon.horse/icon/github.com" height="20px" align="center"/>/Rafficer/proton-cli-community - Linux command-line client for ProtonVPN (Jump To / Privacy/Security)
- awesome-useful-projects - <img src="https://icon.horse/icon/github.com" height="20px" align="center"/>/Rafficer/proton-cli-community - Linux command-line client for ProtonVPN (Jump To / Privacy/Security)
- awesome-repositories - Rafficer/linux-cli-community - Linux command-line client for ProtonVPN. Written in Python. (Python)
README
ProtonVPN-CLI
A Linux CLI for ProtonVPN. Written in Python.
ProtonVPN-CLI is a full rewrite of the [bash protonvpn-cli](https://github.com/ProtonVPN/protonvpn-cli/blob/master/protonvpn-cli.sh) in Python, which adds more features and functionality with the purpose of improving readability, speed and reliability.
## Important information
The [official ProtonVPN Linux](https://protonvpn.com/blog/protonvpn-linux-app/) app is available for Debian 10, Ubuntu 20+, Mint 19+, MX Linux 19+, Fedora 31+ and Archlinux / Manjaro. Where possible, we recommend that you [upgrade to the official app](https://protonvpn.com/support/linux-vpn-setup/).
The community Linux client described below remains available for those who need it.## Installation & Updating
For more detailed information on installing, updating and uninstalling, please view the extensive [usage guide](https://github.com/ProtonVPN/linux-cli-community/blob/master/USAGE.md#installation--updating).
### Installing from distribution repositories
For the following Linux distribution(s), install the official `protonvpn-cli` package:
#### Fedora
```sh
sudo dnf install -y protonvpn-cli
```#### CentOS & RHEL
`protonvpn-cli` is available for CentOS/RHEL 7.x and 8.x via the [EPEL repositories](https://fedoraproject.org/wiki/EPEL).
**For CentOS/RHEL 7.x**:
```sh
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install protonvpn-cli
```**For CentOS/RHEL 8.x**:
```sh
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install -y protonvpn-cli
```### Installing 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](https://github.com/ProtonVPN/linux-cli-community/blob/master/USAGE.md#installation--updating).*
It is recommended to do the manual installation in a virtual environment. Especially if it serves the purpose of developing.
1. Clone this repository
`git clone https://github.com/ProtonVPN/linux-cli-community`
2. Step into the directory
`cd linux-cli`
3. 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](https://github.com/ProtonVPN/linux-cli-community/blob/master/USAGE.md).
| **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](https://github.com/ProtonVPN/linux-cli-community/blob/master/CONTRIBUTING.md).