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)
Typhon is a macOS specific payload aimed at targetting Jamf managed devices.

Typhon is a macOS specific payload aimed at targetting Jamf managed devices. This payload can be used to manipulate macOS devices into communicating with a Mythic instance, which acts as a Jamf serve

Mythic Agents 29 Dec 23, 2022
Secure connection between tenhou Window client and server.

tenhou-secure The tenhou Windows client looks awesome. However, the traffic between the client and tenhou server is NOT encrypted, including your uniq

1 Nov 11, 2021
Fast and configurable script to get and check free HTTP, SOCKS4 and SOCKS5 proxy lists from different sources and save them to files

Fast and configurable script to get and check free HTTP, SOCKS4 and SOCKS5 proxy lists from different sources and save them to files. It can also get geolocation for each proxy and check if proxies a

Almaz 385 Dec 31, 2022
Python Scrcpy Client - allows you to view and control android device in realtime

Python Scrcpy Client This package allows you to view and control android device in realtime. Note: This gif is compressed and experience lower quality

LengYue 126 Jan 02, 2023
This script will make it easier to connect to any wireguard vpn config

wireguard-linux-python-script-vpn This script will make it easier to connect to any wireguard vpn config also u will need your wireguard vpn from your

Jimo 1 Sep 21, 2022
NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.

NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.

NetworkX 12k Jan 02, 2023
GitHub action for sspanel automatically checks in to get free traffic quota

SSPanel_Checkin This is a dish chicken script for automatic check-in of sspanel for GitHub action, It is only applicable when there is no verification

FeedCatWithFish 7 Apr 28, 2022
Wifi-Jamming is a simple, yet highly effective method of causing a DoS on a wireless implemented using python pyqt5.

pyqt5-linux-wifi-jamming-tool Linux-Wifi-Jamming is a simple GUI tool, yet highly effective method of causing a DoS on a wireless implemented using py

lafesa 8 Dec 05, 2022
Nyx-Net: Network Fuzzing with Incremental Snapshots

Nyx-Net: Network Fuzzing with Incremental Snapshots Nyx-Net is fast full-VM snapshot fuzzer for complex network based targets. It's built upon kAFL, R

Chair for Sys­tems Se­cu­ri­ty 146 Dec 16, 2022
A pure python implementation of multicast DNS service discovery

python-zeroconf Documentation. This is fork of pyzeroconf, Multicast DNS Service Discovery for Python, originally by Paul Scott-Murphy (https://github

Jakub Stasiak 483 Dec 29, 2022
Whoisss is a website information gatharing Tool.

Whoisss Whoisss is a website information gatharing Tool. You can cse it to collect information about website. Usage apt-get update apt-get upgrade pkg

Md. Nur habib 2 Jan 23, 2022
A Python server and client app that tracks player session times and server status

MC Outpost A Python server and client application that tracks player session times and server status About MC Outpost provides a session graph and ser

Grant Scrits 0 Jul 23, 2021
pureSxS - A tool to export Component Based Servicing packages from a full Windows installation

pureSxS A tool to export Component Based Servicing packages from a full Windows installation. Usage pureSxS.py source_mum destination pureSxS wor

Gamers Against Weed 3 Oct 03, 2022
A simple DHCP server and client simulation with python

About The Project This is a simple DHCP server and client simulation. I implemented it for computer network course spring 2021 The client can request

shakiba 3 Feb 08, 2022
Rufus is a Dos tool written in Python3.

🦎 Rufus 🦎 Rufus is a simple but powerful Denial of Service tool written in Python3. The type of the Dos attack is TCP Flood, the power of the attack

Billy 88 Dec 20, 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
Securely and anonymously share files, host websites, and chat with friends using the Tor network

OnionShare OnionShare is an open source tool that lets you securely and anonymously share files, host websites, and chat with friends using the Tor ne

OnionShare 5.4k Jan 01, 2023
NSX-T infrastructure as code - SDDC deployment

Deploy NSX-T Infrastructure - Simple Topology by Nicolas MICHEL @vpackets / LinkedIn Introduction The purpose of this entire repository is to automate

21 Nov 28, 2022
Pritunl is a distributed enterprise vpn server built using the OpenVPN protocol.

Pritunl is a distributed enterprise vpn server built using the OpenVPN protocol.

Pritunl 3.8k Jan 03, 2023
Readable, simple and fast asynchronous non-blocking network apps

Fast and readable async non-blocking network apps Netius is a Python network library that can be used for the rapid creation of asynchronous non-block

Hive Solutions 120 Nov 20, 2022