PROTONVPN(1)

NAME
protonvpn - command-line client for ProtonVPN

SYNOPSIS
protonvpn [-v] [COMMAND] [OPTIONS] [ARGUMENTS]

DESCRIPTION
protonvpn is an open-source command-line VPN client for Linux systems, developed by Proton AG. It allows users to connect securely to the ProtonVPN network and manage all settings directly from the terminal, without requiring a graphical interface.

It supports the WireGuard and OpenVPN protocols, and provides advanced features such as Kill Switch, NetShield, Secure Core, Tor over VPN, P2P servers, custom DNS, and more.

Note that some features and connection options are only available on paid subscription plans (VPN Plus or higher). Free plan users can connect to available free servers using protonvpn connect without additional options.

The typical workflow is:

1.  Sign in with your Proton account using protonvpn signin.

2.  Optionally configure security settings with protonvpn config set.

3.  Connect to a server with protonvpn connect.

4.  Disconnect when done with protonvpn disconnect.

5.  Sign out with protonvpn signout.

OPTIONS

-v, --verbose
    Show detailed output during command execution.

-h, --help
    Show help message and exit.

COMMANDS

  Authentication

protonvpn signin USERNAME
    Sign in with the specified Proton account username. The password will be requested securely via an interactive prompt and will not be echoed to the terminal.

protonvpn signout
    Disconnect from the VPN and permanently remove locally stored credentials.

protonvpn info
    Display information about the currently authenticated Proton account, such as username and subscription plan.

  Connection

protonvpn connect
    Connect to the fastest available server automatically, selected based on server load and geographic proximity. This is the only connection option available on the free plan.

protonvpn connect SERVER_NAME
    Connect to a specific server by name (e.g. US#17, NL#42, CH#10). Requires a paid subscription plan.

protonvpn connect --country COUNTRY
    Connect to the fastest server in a given country. Accepts ISO 3166-1 alpha-2 country code (US, GB, DE, BR) or full country name in quotes ("United States", "United Kingdom"). Requires a paid subscription plan.

protonvpn connect --city CITY
    Connect to the fastest server in a specific city. Use quotes for multi-word city names ("New York", "Los Angeles"). Requires a paid subscription plan.

protonvpn connect --p2p
    Connect to the fastest server optimized for peer-to-peer (P2P) traffic. Requires a paid subscription plan.

protonvpn connect -sc, protonvpn connect --securecore
    Connect to the fastest Secure Core server. Secure Core routes traffic through privacy-friendly countries (Switzerland, Iceland, Sweden) before exiting, adding an extra layer of protection. Requires a paid subscription plan.

protonvpn connect --tor
    Connect to the fastest server with Tor over VPN support. Requires a paid subscription plan.

protonvpn connect --random
    Connect to a random available server. Requires a paid subscription plan.

protonvpn disconnect
    Terminate the active VPN connection.

  Server Discovery

protonvpn countries list
    Display all countries with available ProtonVPN servers.

protonvpn cities list COUNTRY
    Display all cities with available servers in the specified country, along with supported features (P2P, Tor, etc.). Accepts ISO country code or full country name.

  Configuration

protonvpn config list
    Display the current configuration for all available settings. Settings marked as Upgrade to enable require a paid subscription plan.

protonvpn config set kill-switch {off|standard}
    Set the Kill Switch mode. When set to standard, all network traffic is blocked if the VPN connection drops, ensuring no data leaks outside the encrypted tunnel.

protonvpn config set netshield {off|malware-only|malware-ads-trackers}
    Set the NetShield mode. Blocks malware, ads, and trackers at the DNS level during the VPN connection. Requires a paid subscription plan.

protonvpn config set custom-dns {off|on} [--dns IP1,IP2]
    Toggle custom DNS servers used during the VPN connection. When enabling, use --dns to specify one or more DNS server IPs separated by commas. Requires a paid subscription plan.

protonvpn config set vpn-accelerator {off|on}
    Toggle VPN Accelerator, a proprietary technology that improves connection speeds. Requires a paid subscription plan.

protonvpn config set moderate-nat {off|on}
    Toggle Moderate NAT. When enabled, allows direct connections between devices for gaming and video conferencing. Requires a paid subscription plan.

protonvpn config set port-forwarding {off|on}
    Toggle Port Forwarding support for P2P connections. Requires a paid subscription plan.

protonvpn config set ipv6 {off|on}
    Toggle IPv6 support during the VPN connection.

protonvpn config set anonymous-crash-reports {off|on}
    Toggle sending anonymous crash reports to help improve the application.

EXAMPLES

  1. First-time setup
The first step is always to sign in with your Proton credentials:

        $ protonvpn signin user@proton.me
        Enter password:
        Successfully signed in as user@proton.me.

Check your account information:

        $ protonvpn info
        {'name': 'user@proton.me'}

Before connecting, enable the Kill Switch to prevent data leaks if the VPN connection drops unexpectedly:

        $ protonvpn config set kill-switch standard
        Kill Switch set to standard.

  2. Discovering available servers
List all available countries:

        $ protonvpn countries list
        Country                 Code
        ----------------------  ------
        Afghanistan             AF
        Albania                 AL
        Algeria                 DZ
        Argentina               AR
        Australia               AU
        Brazil                  BR
        Germany                 DE
        Netherlands             NL
        United States           US
        /&...

List cities available in the United States with their features:

        $ protonvpn cities list US
        Cities in United States:
        City            Features
        --------------  ----------
        Phoenix         P2P
        Denver          P2P, Tor
        Washington      P2P
        Miami           P2P
        Los Angeles     P2P
        New York
        Seattle
        Secaucus
        /&...

  3. Connecting to VPN

Free plan users can only connect to the fastest available server:

        $ protonvpn connect
        Connected to US-FREE#57 in New York, United States.
        Your new IP address is 146.70.202.35.

Paid plan users can connect to a specific country:

        $ protonvpn connect --country BR
        Connected to BR#5 in Sao Paulo, Brazil.
        Your new IP address is 185.230.xxx.xxx.

Connect to a specific city (paid plan):

        $ protonvpn connect --city "New York"
        Connected to US#38 in New York, United States.
        Your new IP address is 146.70.xxx.xxx.

Connect to a specific server by name (paid plan):

        $ protonvpn connect CH#10
        Connected to CH#10 in Zurich, Switzerland.
        Your new IP address is 185.159.xxx.xxx.

Connect to a P2P-optimized server for torrenting (paid plan):

        $ protonvpn connect --p2p
        Connected to NL#P2P#1 in Amsterdam, Netherlands.
        Your new IP address is 89.39.xxx.xxx.

Connect to a Secure Core server for maximum privacy (paid plan):

        $ protonvpn connect --securecore
        Connected to SE-DE#1 via Secure Core.
        Your new IP address is 185.230.xxx.xxx.

  4. Checking current settings

        $ protonvpn config list
        Current configuration
        Setting                  Value
        -----------------------  -----------------
        vpn-accelerator          Upgrade to enable
        moderate-nat             Upgrade to enable
        ipv6                     on
        anonymous-crash-reports  on
        port-forwarding          Upgrade to enable
        custom-dns               Upgrade to enable
        kill-switch              off
        netshield                Upgrade to enable
        To upgrade to VPN Plus visit: https://account.protonvpn.com/pricing
        After upgrading online:
            Sign out and sign in again to activate your new plan:
            protonvpn signout && protonvpn signin

  5. Disconnecting and signing out
Disconnect from the VPN:

        $ protonvpn disconnect

Sign out and remove stored credentials:

        $ protonvpn signout

NOTES
protonvpn cannot run simultaneously with the ProtonVPN desktop GUI application. If the GUI is currently running, the CLI will refuse to execute and display the following error:

        Error: Proton VPN desktop app is currently running
        The CLI and GUI cannot run simultaneously. Please close the GUI
        application and try again.

To resolve this, close the ProtonVPN GUI application completely before using the CLI. To find and terminate the GUI process run:

        $ ps aux | grep proton
        $ kill <PID>

On the free plan, the following options are not available and will produce an error: --country, --city, --p2p, --securecore, --tor, --random. Free plan users should use protonvpn connect without any options to connect to the fastest available free server.

Features marked as Upgrade to enable in protonvpn config list require a paid ProtonVPN subscription plan. To upgrade, visit: https://account.protonvpn.com/pricing

FILES

~/.config/protonvpn/
    ProtonVPN CLI configuration directory.

~/.local/share/protonvpn/
    ProtonVPN CLI local data directory.

LICENSE
GNU General Public License version 3 or later (GPL-3+).

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

AUTHOR
Proton Technologies (contact@protonmail.com)

This manual page was written by Josenison Ferreira da Silva (nilsonfsilva@hotmail.com) for the Debian project (but may be used by others).

SUPPORT

Official website:
    https://protonvpn.com

Report issues:
    https://protonvpn.com/support-form

SEE ALSO
openvpn(8), wg(8), wg-quick(8)