Official ProtonVPN Linux app

Overview

ProtonVPN Linux App

Copyright (c) 2021 Proton Technologies AG

This repository holds the ProtonVPN Linux App. For licensing information see COPYING. For contribution policy see CONTRIBUTING.

Description

The ProtonVPN Linux App Library is intended for every ProtonVPN service user.

You can download the latest stable release, either from our official repositories or directly on the official GitHub repository.

Dependencies:

Distro Command
Fedora/CentOS/RHEL python3-gi, python3-gi-cairo, python3-psutil
Ubuntu/Linux Mint/Debian and derivatives gtk3, python3-gobject, python3-psutil
Arch Linux/Manjaro gtk3, python-gobject, python-psutil

Indicator/Tray dependency

Distro Command
Fedora/CentOS/RHEL libappindicator-gtk3
Ubuntu/Linux Mint/Debian and derivatives gir1.2-appindicator3-0.1
Arch Linux/Manjaro libappindicator-gtk3

Additional dependency:

ProtonVPN NM Library

Installation

Follow our knowledge base article on how to install the ProtonVPN Linux App on your system.

Comments
  • Unable to use ProtonVPN on Manjaro Gnome

    Unable to use ProtonVPN on Manjaro Gnome

    I am unable to use Protonvpn app or protonvpn-cli on Manjaro Gnome. App doesn't launch at all. 'protonvpn-cli login tbrimbo' and 'protonvpn-cli s' commands both prompt:

    Traceback (most recent call last): File "/usr/bin/protonvpn-cli", line 33, in sys.exit(load_entry_point('protonvpn-cli==3.7.1', 'console_scripts', 'protonvpn-cli')()) File "/usr/bin/protonvpn-cli", line 25, in importlib_load_entry_point return next(matches).load() StopIteration

    I tried them on Manjaro Cinnamon and they work.

    opened by tbrimbo 14
  • unable to run protonvpn

    unable to run protonvpn

    I am not able to launch the Linux CLI or App. I get the following error when I try to run protonvpn-gui and protonvpn-cli:

    input: $ protonvpn

    output:

    Traceback (most recent call last):
      File "/usr/lib/python3.9/site-packages/protonvpn_gui/main.py", line 262, in do_activate
        if not protonvpn.check_session_exists():
      File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/api.py", line 344, in check_session_exists
        return self._env.api_session.is_valid
      File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/environment.py", line 55, in api_session
        self.__api_session = APISession()
      File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/session/session.py", line 211, in __init__
        self.__session_create()
      File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/session/session.py", line 232, in __session_create
        self.__proton_api = Session(
    TypeError: __init__() got an unexpected keyword argument 'log_dir_path'
    
    

    i am using manjaro kde plasma and have tried rebuilding protonvpn and restarting multiple times

    edit: I installed protonvpn from aur

    opened by Excal-rs 12
  • Support Fedora 35 (Python 3.10)

    Support Fedora 35 (Python 3.10)

    Fedora 35 is currently in beta and should come out later this month shipping Python 3.10.

    Attempting to install protonvpn-gui in Fedora 35 with dnf install protonvpn-gui currently results in the following error:

    Error: 
     Problem: conflicting requests
      - nothing provides python(abi) = 3.9 needed by protonvpn-gui-0.7.2-1.noarch
      - nothing provides python(abi) = 3.9 needed by protonvpn-gui-0.7.3-2.noarch
      - nothing provides python(abi) = 3.9 needed by protonvpn-gui-1.0.0-1.noarch
      - nothing provides python(abi) = 3.9 needed by protonvpn-gui-1.0.1-1.noarch
      - nothing provides python(abi) = 3.9 needed by protonvpn-gui-1.1.0-7.noarch
      - nothing provides python(abi) = 3.9 needed by protonvpn-gui-1.1.1-1.noarch
      - nothing provides python(abi) = 3.9 needed by protonvpn-gui-1.2.0-2.noarch
      - nothing provides python(abi) = 3.9 needed by protonvpn-gui-1.3.0-7.noarch
    

    It would be nice if you could publish a new version built with Python 3.10 in anticipation of the Fedora 35 release. Thank you!

    opened by YarnSphere 10
  • Any plans to integrate gnome-keyring instead of kde-wallet for saving credentials?

    Any plans to integrate gnome-keyring instead of kde-wallet for saving credentials?

    I run Kubuntu 21.04, and only use kde wallet for protonvpn as its required.

    Any kde related software, such as with entering wifi passwords to connect to wifi, unlocking luks devices... all prompt me to unlock kwallet, which I have to keep cancelling out as I dont want to use it to save those credentials. The only way I know of getting rid of these prompts to unlock kwallet ia disabling the kwallet submodule in system settings, but then protonvpn is unable to retrieve the credentials to login.

    If no plans of integrating gome-keyring, is there at least a way of addressing above issue?

    Thank you :)

    opened by dhammel 10
  • Internet kill switch seems to be implicitly enabled [Debian, Ubuntu, Arch, Fedora]

    Internet kill switch seems to be implicitly enabled [Debian, Ubuntu, Arch, Fedora]

    I have the protonvpn-gui 1.0.1-1 installed (https://aur.archlinux.org/packages/protonvpn-gui/), and whenever I boot into my Linux desktop, the internet doesn't work.

    The workaround I've found is to open the VPN client (neither the client or service is enabled/started by default), and then close the client again, so I assume that the VPN client has something to do with my internet issues, and my theory is that the internet kill switch is enabled (is marked as disabled in the GUI).

    opened by Thalley 9
  • fail to start a vpn connection

    fail to start a vpn connection

    debian 11 kde

    when i start a connection i get a popup dialog asking to "provide the secrets for the VPN connection 'ProtonVPN US#43'

    logs are

    INFO:protonvpn-gui:Connection was setup INFO:protonvpn-gui:Displaying connection information INFO:protonvpn-gui:Attempting to connect INFO:protonvpn:Checking for internet connectivity INFO:protonvpn:Skipping as killswitch is enabled INFO:protonvpn:Starting VPN connection INFO:protonvpn:Getting VPN from "NetworkManagerConnectionTypeEnum.ALL" connections INFO:protonvpn:VPN connection: <NM.RemoteConnection object at 0x7fcbe08685c0 (NMRemoteConnection at 0x62df650)> INFO:protonvpn:Starting VPN connection INFO:protonvpn:Callback type: "start" ERROR:protonvpn:Exception: NM.Client.activate_connection_finish() takes exactly 2 arguments (1 given) Traceback (most recent call last): File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/connection_backend/nm_client/nm_client_mixin.py", line 117, in __dynamic_callback (callback_type_dict[callback_type]["finish_function"])(result) TypeError: NM.Client.activate_connection_finish() takes exactly 2 arguments (1 given) INFO:protonvpn:Template hash "aa91e34fef0f8a1a72a812a4b1845354222bdf5771881532805083eb7caab143" INFO:protonvpn:Generated hash at runtime "aa91e34fef0f8a1a72a812a4b1845354222bdf5771881532805083eb7caab143" INFO:protonvpn:Get connection interface from 'proton0' virtual device. ERROR:protonvpn:org.freedesktop.NetworkManager.Settings.PermissionDenied: uid 1000 has no permission to perform this operation Traceback (most recent call last): File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/dbus/dbus_wrapper.py", line 257, in get_vpn_interface all_settings = self.get_all_conn_settings( File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/dbus/dbus_wrapper.py", line 391, in get_all_conn_settings return iface.GetSettings() File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 72, in call return self._proxy_method(*args, **keywords) File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 141, in call return self._connection.call_blocking(self._named_service, File "/usr/lib/python3/dist-packages/dbus/connection.py", line 652, in call_blocking reply_message = self.send_message_with_reply_and_block( dbus.exceptions.DBusException: org.freedesktop.NetworkManager.Settings.PermissionDenied: uid 1000 has no permission to perform this operation INFO:protonvpn:Found virtual device 'proton0'. INFO:protonvpn:ProtonVPN conn info: [True, dbus.UInt32(1, variant_level=1), dbus.ObjectPath('/org/freedesktop/NetworkManager/ActiveConnection/18')] INFO:protonvpn:Adding listener to active ProtonVPN AU#43 connection at /org/freedesktop/NetworkManager/ActiveConnection/18

    opened by rafirafirafi 9
  • Please provide rpm repository for fedora 36

    Please provide rpm repository for fedora 36

    ProtonVPN Fedora Stable repository                                             95  B/s | 162  B     00:01    
    Errors during downloading metadata for repository 'protonvpn-fedora-stable':
      - Status code: 404 for https://repo.protonvpn.com/fedora-36-stable/repodata/repomd.xml (IP: 104.26.9.21)
    Error: Failed to download metadata for repo 'protonvpn-fedora-stable': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
    

    temporary solution using dnf.. --releasever=35

    opened by sbe-arg 8
  • Doesn't connect to VPN server_Mint

    Doesn't connect to VPN server_Mint

    Hello, Proton VPN doesn't connect. If I click connect the normal "connecting"-screen appears. After about 75% is loaded a new window opens and ask for a password.: Unbenannt

    If I click "OK" it takes some times and shows this window again. If I insert the Proton VPN password the same happens.

    I've already un- and reinstalled Proton VPN and deleted all .cache and .config files but nothing helps.

    opened by christian179717 6
  • Did the last update break the app for some Linux users or distributions?

    Did the last update break the app for some Linux users or distributions?

    For example, when I try to open the ProtonVPN app through the icon on the Gnome bar, nothing happens. When I try to run protonvpn on the command line, I get a Python missing import error.

    Like this:

    ➜  ~ protonvpn
    Traceback (most recent call last):
      File "/sbin/protonvpn", line 33, in <module>
        sys.exit(load_entry_point('protonvpn-gui==1.7.0', 'console_scripts', 'protonvpn')())
      File "/sbin/protonvpn", line 25, in importlib_load_entry_point
        return next(matches).load()
      File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 162, in load
        module = import_module(match.group('module'))
      File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
      File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
      File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 883, in exec_module
      File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
      File "/usr/lib/python3.10/site-packages/protonvpn_gui/main.py", line 14, in <module>
        from proton.constants import VERSION as proton_version
    ModuleNotFoundError: No module named 'proton'
    
    opened by renatoliveira 6
  • Unable to Launch Session

    Unable to Launch Session

    I am not able to launch the Linux CLI or App. I get the following error when I try to run protonvpn or protonvpn-cli login <username>. Since I use SUSE 15.3, I build this App tool along with the protonvpn-nm-lib and the protonvpn-cli package on my machine.

    Versions I built: protonvpn-nm-lib version I built: 3.6.1 protonvpn-cli version I built: 3.10.1 protonvpn-gui version I built: 1.6.0

    protonvpn-cli login <username> output:

    Traceback (most recent call last):
      File "/usr/bin/protonvpn-cli", line 11, in <module>
        load_entry_point('protonvpn-cli==3.10.1', 'console_scripts', 'protonvpn-cli')()
      File "/usr/lib/python3.6/site-packages/protonvpn_cli-3.10.1-py3.6.egg/protonvpn_cli/main.py", line 21, in main
      File "/usr/lib/python3.6/site-packages/protonvpn_cli-3.10.1-py3.6.egg/protonvpn_cli/cli.py", line 65, in __init__
      File "/usr/lib/python3.6/site-packages/protonvpn_cli-3.10.1-py3.6.egg/protonvpn_cli/cli.py", line 162, in login
      File "/usr/lib/python3.6/site-packages/protonvpn_cli-3.10.1-py3.6.egg/protonvpn_cli/cli_wrapper.py", line 63, in login
      File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib-3.6.1-py3.6.egg/protonvpn_nm_lib/api.py", line 322, in check_session_exists
        return self._env.api_session.is_valid
      File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib-3.6.1-py3.6.egg/protonvpn_nm_lib/core/environment.py", line 54, in api_session
        self.__api_session = APISession()
      File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib-3.6.1-py3.6.egg/protonvpn_nm_lib/core/session/session.py", line 206, in __init__
        self.__session_create()
      File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib-3.6.1-py3.6.egg/protonvpn_nm_lib/core/session/session.py", line 233, in __session_create
        tls_pinning=self._enforce_pinning,
    TypeError: __init__() got an unexpected keyword argument 'log_dir_path'
    

    protonvpn output:

    Traceback (most recent call last):
      File "/usr/lib/python3.6/site-packages/protonvpn_gui-1.6.0-py3.6.egg/protonvpn_gui/main.py", line 261, in do_activate
        if not protonvpn.check_session_exists():
      File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib-3.6.1-py3.6.egg/protonvpn_nm_lib/api.py", line 322, in check_session_exists
        return self._env.api_session.is_valid
      File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib-3.6.1-py3.6.egg/protonvpn_nm_lib/core/environment.py", line 54, in api_session
        self.__api_session = APISession()
      File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib-3.6.1-py3.6.egg/protonvpn_nm_lib/core/session/session.py", line 206, in __init__
        self.__session_create()
      File "/usr/lib/python3.6/site-packages/protonvpn_nm_lib-3.6.1-py3.6.egg/protonvpn_nm_lib/core/session/session.py", line 233, in __session_create
        tls_pinning=self._enforce_pinning,
    TypeError: __init__() got an unexpected keyword argument 'log_dir_path'
    
    opened by CPete88 6
  • linux app don't ask for 2FA code when acces with protonmail credentials

    linux app don't ask for 2FA code when acces with protonmail credentials

    on *ubuntu 22.04 please can you implement request for 2FA code? your services are very safe but the lack of 2FA even in the desktop version for linux I think it is a serious lack, moreover I always connect with the old OpenVPN protocol and yet the linux kernel in the * ubuntu 22.04 distro natively supports Wireguard. thank you!

    opened by gpdevsoft 4
  • How to compile?

    How to compile?

    We are happy to answer your questions about the code or discuss technical ideas.

    Please complete the following checklist (by adding [x]):

    • [X] I have searched open and closed issues for duplicates
    • [X] This isn't a feature request
    • [X] This is not a report about my app not working as expected

    How do I compile this? I've tried to run sudo make, sudo make install and read the Makefile but nothing compiles successfully.

    opened by Anonymous941 0
  • this app is just garbage

    this app is just garbage

    I am really disappointed that I spent money on this. This client is horrendous and made by people who have no idea how create modern apps for Linux. It is so annoying.

    opened by realtimetodie 2
  • Adventures in Ubuntu 22.04.1 LTS - Proton 1.0.3

    Adventures in Ubuntu 22.04.1 LTS - Proton 1.0.3

    Using this client has been a real pain in the ***.

    I have Proton running on at least one instance of every supported platform, and it works great...Unless it's Linux. The app will hang indefinitely on start-up, until you rub the genie lamp with the right number of sigterms & restarts. Usually, it just crashes with a report of, "Unknown Error," or "API Cannot be Reached." Honestly can't remember what the output was before I fixed a thing. Some times, some engrish would pop up, and I'd just throw the laptop in frustration.

    However, after fracking around with this program as my go-to VPN, I finally found something of a solution. The VPN boots fine when the VPN option in Ubuntu is disabled (thereby clearing the last-used VPN). This solution has worked consistently, but I honestly don't understand how. I'd assume Proton & Ubuntu are on some system-level spat about how to connect, and when the old settings are cleared, Proton has priority for its refreshed credentials. I have no idea. I can't believe you've read this far.

    This is only a gui-level fix. Maybe the precise cursor movements associated with this activity are some kind of rain dance to call on the VPN gods. So, there's supposed to be a question in here. Before I got the client working consistently, Proton was riddled with constant problems. Someone must have seen this behavior in testing compatibility with debian-based systems.

    Is there an underlying reason here? Can anything be done? Did this help any of the devs? Why would a loving god do this to her creation!?

    opened by SerialExperimentsPT 0
  • Unable to login on arch linux

    Unable to login on arch linux

    • [x] This isn't a feature request
    • [x] I have searched open and closed issues for duplicates
    • [x] This is not a report about my app not working as expected

    I am able to sign in to proton mail and the protonvpn app on my android phone, but no luck on linux for some reason. the login attempt just fails without any appropriate error message

    opened by beyond9thousand 1
  • Fedora 37 unsupported? (Python 3.10 vs 3.11)

    Fedora 37 unsupported? (Python 3.10 vs 3.11)

    I am currently on Fedora 36, and have ProtonVPN installed via the rpm package (https://protonvpn.com/support/official-linux-vpn-fedora/).

    Today Fedora 37 was released. When trying to update, I get the following error:

    Unable to upgrade to Fedora Linux 37:
    Error running transaction: python(abi) = 3.10 is needed by (installed)
    protonvpn-gui-1.12.0-1.noarch
    

    There doesn't seem to be an update for ProtonVPN yet, when using:

    sudo dnf upgrade --refresh
    

    When does the error occur? When updating through the Software Application Does not occur on sudo dnf system-upgrade download --refresh --releasever=37. Works here

    opened by CodingTil 3
  • On Linux Mint, when I open the Network Settings, I always see this

    On Linux Mint, when I open the Network Settings, I always see this "Dummy" option that seems to make internet access not work

    • [ X] I have searched open and closed issues for duplicates
    • [X ] This isn't a feature request
    • [ X] This is not a report about my app not working as expected

    On Linux Mint, when I open the Network Settings, I always see this "Dummy" option. The most often situation of this option is when i Restart the computer. I don't remember if this has something to do with ProtonVPN being enabled or disabled while restarting the computer. But when I go to the Network Settings (not "Network Configuration"), I would see this "Dummy option" that I found out was the cause of me not being able to access the internet. But when I opened the network settings. and then disabled that "Dummy" option, the internet would be able to get accessed again.

    Thanks in advance

    opened by ngalerchalegocity60330 1
Releases(1.12.0)
Cobalt Strike script for ScareCrow payloads

🎃 🌽 ScareCrow Cobalt Strike intergration CNA A Cobalt Strike script for ScareCrow payload generation. Works only with the binary and DLL Loader. 💣

UserX 401 Dec 11, 2022
A fire and forget command-line tool to allow for easy transitions of VPN connections between a pool of AWS machines.

VPN Swapper A fire and forget command-line tool to allow for easy transitions of VPN connections between a pool of AWS machines. Dependencies poetry -

Workday 5 Jul 07, 2022
Ip-Tracker: a script written in python for tracking Someone using targets ip-Tracker address

🔰 𝕀𝕡-𝕋𝕣𝕒𝕔𝕜𝕖𝕣 🔰 Ip-Tracker is a script written in python for tracking Someone using targets ip-Tracker address It was made by Spider Anongre

Spider Anongreyhat 15 Dec 02, 2022
A tiny end-to-end latency testing tool implemented by UDP protocol in Python 📈 .

udp-latency A tiny end-to-end latency testing tool implemented by UDP protocol in Python 📈 . Features Compare with other existing latency testing too

Chuanyu Xue 5 Dec 02, 2022
This is a zeep based SOAP client wrapper for simple communication with the Bricknode SOAP API.

This is a zeep based SOAP client wrapper for simple communication with the Bricknode SOAP API.

Nord Fondkommission AB 2 Dec 15, 2021
An curated collection of awesome resources about networking in cybersecurity

An ongoing curated collection of awesome software, libraries, frameworks, talks & videos, best practices, learning tutorials and important practical resources about networking in cybersecurity

Paul Veillard, P. Eng 7 Nov 30, 2022
ServerStatus with node management and monitor

ServerStatus with node management and monitor

lidalao 162 Jan 01, 2023
Minimal, self-hosted, 0-config alternative to ngrok. Caddy+OpenSSH+50 lines of Python.

If you have a webserver running on one computer (say your development laptop), and you want to expose it securely (ie HTTPS) via a public URL, SirTunnel allows you to easily do that.

Anders Pitman 423 Jan 02, 2023
A live streaming chatroom involving multiple modalities, such as voice, gesture, and facial expression

HiLive A live streaming chatroom involving multiple modalities, such as voice, gesture, and facial expression. Introduction We focus on demonstrating

Ryan Yen 2 Dec 02, 2021
BibleNotifyDesktop - Desktop version of Bible Notify

Bible Notify Desktop This is the repository for the Desktop version of the daily

Bible Notify 5 Nov 16, 2022
A non-custodial oracle and escrow system for the lightning network. Make LN contracts more expressive.

Hodl contracts A non-custodial oracle and escrow system for the lightning network. Make LN contracts more expressive. If you fire it up, be aware: (1)

31 Nov 30, 2022
Python tutorial for implementing Oxylabs' Residential Proxies with AIOHTTP

Integrating Oxylabs' Residential Proxies with AIOHTTP Requirements for the Integration For the integration to work you'll need to install aiohttp libr

Oxylabs.io 6 Sep 14, 2022
IPV4 network calculation project in Python

Curso de Python 3 do Básico ao Avançado Desafio: Calculando redes IPV4 Criar um programa que obtem um numero de IP com o prefixo da mascara de rede. O

Diego Guedes 3 Jan 21, 2022
Jogo da forca simples com conexão entre cliente e servidor utilizando TCP.

JogoDaForcaTCP Um jogo da forca simples com conexão entre cliente e servidor utilizando o protocólo TCP. Como jogar: Habilite a porta 20000, inicie o

Kelvin Santos 1 Dec 01, 2021
A website to list Shadowsocks proxies and check them periodically

Shadowmere An automatically tested list of Shadowsocks proxies. Motivation Collecting proxies around the internet is fun, but what if they stop workin

Jorge Alberto Díaz Orozco (Akiel) 29 Dec 21, 2022
TicTacToe using Socket Server

TicTacToe using Socket Server This is a project for the class : 18CSC302J - Computer Networks by Dr. S.Babu Contributors Suvodeep Sinha RA191100301010

Suvodeep Sinha 12 Nov 30, 2022
A simple, 2-person chat program that runs on a single computer. No Internet, just you

localChat A simple, 2-person chat program that runs on a single computer. No Internet, just you. Simple and Local This was created with ease of use in

Owls 2 Aug 19, 2022
A vpn that sits in your browser, accessible via a website

VPNInYourBrowser A vpn that sits in your browser, accessible via a website Example setup: https://VPNInBrowser.jaffa42.repl.co Setup Put the code onto

1 Jan 20, 2022
Godzilla traffic decoder Godzilla Decoder 是一个用于 哥斯拉Godzilla 加密流量分析的辅助脚本。

Godzilla Decoder 简介 Godzilla Decoder 是一个用于 哥斯拉Godzilla 加密流量分析的辅助脚本。 Godzilla Decoder 基于 mitmproxy,是mitmproxy的addon脚本。 目前支持 哥斯拉3.0.3 PhpDynamicPayload的

He Ruiliang 40 Dec 25, 2022
Repo for investigation of timeouts that happens with prolonged training on clients

Flower-timeout Repo for investigation of timeouts that happens with prolonged training on clients. This repository is meant purely for demonstration o

1 Jan 21, 2022