How to use the Proton VPN Linux CLI

The Proton VPN CLI (command-line utility) runs from the Linux terminal. It is different from our Linux (GUI) app, which has a graphic user interface.
The Proton VPN CLI is officially supported by Proton on the latest stable versions of:
- Debian
- Ubuntu
- Fedora
We also officially support the Arch package(nouvelle fenêtre) maintained by Peter Jung:
- Arch
It may also work on other Linux distributions, but support for other distros may be limited.
Note that the Linix CLI requires the gnome-keyring(nouvelle fenêtre) (it may also work with KDE’s KWallet, but this is not officially supported).
We’ll be adding more advanced features as development continues.
How to install the CLI for Linux
You can install both the official Proton VPN Linux GUI app and the Linux CLI, but you can’t run them both at the same time.
Debian and Ubuntu
1. Install the Proton VPN Linux repository as you would for the official Proton VPN Linux GUI app. Follow steps 1 and 2 in the following guides (if you prefer, you can use the beta repos instead):
If you already have the official GUI app installed, you don’t need to do this.
2. Run:
sudo apt install proton-vpn-cli
Fedora
1. Install the Fedora Proton VPN Linux repository as you would for the official Proton VPN Linux app (GUI). Follow steps 1 and 2 in the following guide (if you prefer, you can use the beta repo instead).
If you already have the official GUI app installed, you don’t need to do this.
2. Run:
sudo dnf install proton-vpn-cli
As part of the install process on Fedora, you’ll be asked to accept an OpenPGP key. To do this when prompted, tap y <enter>.
OpenPGP key 0xAD10060B: UserID : “Proton Technologies AG opensource@proton.me“
Fingerprint: 7BB2808996C47DC9EECDA475F7EB64B08C03490D
Arch
Simply open a terminal window and run:
pacman -S proton-vpn-cli
How to use the CLI for Linux
How to sign in
1. Open a terminal window and run:
protonvpn signin [username]
2. You’ll then be prompted to enter your Proton password. As usual with the Linux command-line, you won’t see any on-screen feedback when you do this, so just hit [Enter] when you’re done.

How to connect to a VPN server
To connect to the fastest VPN server available on your plan, run:
protonvpn connect
To connect to a specific country:
protonvpn connect --country [Country]
For [Country], you can use country code (US, GB, DE) or its full name inside quote marks. For example:
protonvpn connect --country US
or
protonvpn connect --country "United States"
To connect to a specific city, run:
protonvpn connect --city [City]
For [City], simply enter a single-word city name or use quotes for multi-word names. For example:
protonvpn connect --city miami
or
protonvpn connect --city "New York"
To connect to a specific server, run:
protonvpn connect [server name]
You can find a list Proton VPN server names here. For example:
protonvpn connect CH#242
Note that country, city, state, and server names are not case sensitive, so it doesn’t matter if you use capital letters or not.
How to disconnect and sign out
To disconnect the VPN, run:
protonvpn disconnect
Note that you’ll still be signed in to your Proton VPN account. If other people use this computer, its a good idea to sign out. To do this, run:
protonvpn signout
How to configure VPN settings
You can configure advanced VPN settings using the protonvpn config set command. For a full list of these commands currently supported by the CLI, run:
protonvpn config set

In many cases, using these commands will simply toggle the feature on or off. For example:
protonvpn config set vpn-accelerator on
Note: These settings reset to their default when you sign out from your Proton VPN account.
Port forwarding
Port forwarding routes connections through the firewall that we use to protect our customers. It’s mainly used for downloading and sharing files over P2P protocols (like BitTorrent) and online gaming.
Enable port forwarding for the Linux CLI is a two-stage process:
1. Enable port forwarding in the CLI
Run:
protonvpn config set port-forwarding on
If you’re connected to the VPN, you’ll need to reconnect for the new setting to take effect.

2. Manually configure port forwarding
Once the setting is enabled, you’ll need to configure port forwarding.
To do this, visit our How to manually set up port forwarding guide. Start from Step 2: Linux.