Jump to content
From ArchWiki

Related articles

- OpenVPN
- vopono

ProtonVPN is a VPN provider that utilizes the OpenVPN protocol.

A ProtonVPN account and the installed openvpn package is mandatory for any of the steps below.

## OpenVPN command-line interface

VPN connection can be run manually with interface provided by the openvpn package.

### Setup

Download one or more OpenVPN configuration files from ProtonVPN Downloads page.

Copy the `*.ovpn` client configuration files into `/etc/openvpn/client/` and make backup of original.

Follow these steps to make sure that all your network traffic uses VPN. If you use systemd older than 229, follow these steps.

Note: If you install openvpn-update-systemd-resolvedAUR in the step above, remember to delete the lines in the `*.ovpn` referring to `/etc/openvpn/update-resolv-conf`, as the script is placed in `/usr/bin/update-systemd-resolved` instead

### Usage

Connect to the VPN:

    # openvpn /etc/openvpn/client/client_config_file.ovpn

Provide OpenVPN / IKEv2 Username from the ProtonVPN Account page.

Press `Ctrl+c` to close the VPN connection.

### Tips and tricks

#### Enable VPN on boot

For systemd service configuration, see OpenVPN#systemd service configuration.

#### Only run certain applications through VPN with network namespaces

vopono supports automatic configuration file generation for ProtonVPN, and allows you to run applications inside temporary network namespaces so only those run through the VPN.

#### Save login information

To retain VPN credentials for subsequent connections, create the following file with your own login information on two lines and place it in the directory where you will run the startup script listed above.

    username
    password

Then add the line `auth-user-pass login.conf` to any relevant `*.ovpn` files.

## Official ProtonVPN Client

The official ProtonVPN packages can be found on AUR. More details can be found on the official website. The packages are also available on Github:

- python-proton-client
- python-protonvpn-nm-lib
- protonvpn-cli
- protonvpn-gui

### Setup

Install the metapackage protonvpnAUR

### Usage

#### CLI (Command Line Interface)

Login:

    # protonvpn-cli login <your_protonmail>

Connect to the VPN:

    # protonvpn-cli connect

or

    # protonvpn-cli c

You should see a detailed country list with all available servers. Select preferred server and click OK.

Then select UDP or TCP protocol and click OK again.

If connection was successful, you will see following output:

    Setting up ProtonVPN.
    Connecting to ProtonVPN on <SERVERNAME> with <PROTOCOL>.

    Successfully connected to ProtonVPN.

Where <SERVERNAME> is the servername that you have selected to connect to and <PROTOCOL> is the protocol used to connect to the server.

To automatically connect to the fastest server, use:

    # protonvpn-cli c -f

A list of all options is available on the github repo

#### GUI (Graphical User Interface)

You can start the GUI by either:

- Searching for the ProtonVPN launcher
- Typing `protonvpn` in terminal

#### SysTray/Indicator

For the system/tray indicator to work, some additional packages might be needed:

- `libappindicator-gtk3`
- `gnome-shell-extension-appindicator`

## Graphical interface

This article or section needs expansion.

Reason: This section needs more content (Discuss in Talk:ProtonVPN)

Graphical interface for setting up OpenVPN connection may be provided by your desktop environment. Search in connection settings. Otherwise, NetworkManager#Installation, NetworkManager#VPN support and NetworkManager#Front-ends provide useful information.

Note: You still need to follow #Setup.
Category:

- VPN providers

Hidden category:

- Pages or sections flagged with Template:Expansion