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)
This is a Client-Server-System which can send audio from a microphone from the server to client and in the other direction.

Audio-Streaming-Python This is a Client-Server-System which can send audio from a microphone from the server to client and in the other direction. You

VFX / Videoeffects Creator 0 Jan 05, 2023
Nautobot is a Network Source of Truth and Network Automation Platform.

Nautobot is a Network Source of Truth and Network Automation Platform. Nautobot was initially developed as a fork of NetBox (v2.10.4). Nautobot runs as a web application atop the Django Python framew

Nautobot 549 Dec 31, 2022
Ping Verification Python Script

Python Script Port Scanner Script WHAT IS IT? Port scanner script using Python. HOW IT WORKS Once the script has been executed, it will request the ta

AC 0 Dec 12, 2021
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
Converts Cisco formatted MAC Addresses to PC formatted MAC Addresses

Cisco-MAC-to-PC-MAC Converts a file with a list of Cisco formatted MAC Addresses to PC formatted MAC Addresses... Ex: abcd.efgh.ijkl to AB:CD:EF:GH:I

Stew Alexander 0 Jan 04, 2022
Dos attack a Bluetooth connection!

Bluetooth Denial of service Script made for attacking Bluetooth Devices By Samrat Katwal. Warning This project was created only for fun purposes and p

Samrat 1 Oct 29, 2021
BlueHawk is an HTTP/1.1 compliant web server developed in python

This project is done as a part of Computer Networks course. It aims at the implementation of the HTTP/1.1 Protocol based on RFC 2616 and includes the basic HTTP methods of GET, POST, PUT, DELETE and

2 Nov 11, 2022
🐛 SSH self spreading worm written in python3 to propagate a botnet.

Mirkat SSH self spreading worm written in python3 to propagate a botnet. Install tutorial. cd ./script && sh setup.sh Support me. ⚠️ If this reposito

Ѵιcнч 58 Nov 01, 2022
Truetool - A TrueCharts automatic and bulk update utility

truetool A easy tool for frequently used TrueNAS SCALE CLI utilities. Previously

TrueCharts 125 Jan 04, 2023
Wifijammer - Continuously jam all wifi clients/routers

wifijammer Continuously jam all wifi clients and access points within range. The effectiveness of this script is constrained by your wireless card. Al

Dan McInerney 3.5k Dec 31, 2022
A simple python script to send cute messages to my boyfriend.

Morning Messages A simple python script to send cute messages to my boyfriend. It gives him the weather and news currently. Installation git clone htt

Sabrina Medwinter 3 Oct 12, 2022
HTTP proxy pool server primarily meant for evading IP whitelists

proxy-forwarder HTTP proxy pool server primarily meant for evading IP whitelists. Setup Create a file named proxies.txt and fill it with your HTTP pro

h0nda 2 Feb 19, 2022
Simple self-hosted server to receive files from remote systems

Badtray This is a very simple self-hosted server to receive files from remote systems. This works similar to Bintray (RIP) and primarily designed to d

Alex Taradov 1 Nov 22, 2021
A Python tool used to automate the execution of the following tools : Nmap , Nikto and Dirsearch but also to automate the report generation during a Web Penetration Testing

📡 WebMap A Python tool used to automate the execution of the following tools : Nmap , Nikto and Dirsearch but also to automate the report generation

Iliass Alami Qammouri 274 Jan 01, 2023
Simple app that redirect fixed URL to changing URL, configurable via POST requests

This is a basic URL redirection service. It stores associations between apps and redirection URLs, for apps with changing URLs. You can then use GET r

Maxime Weyl 2 Jan 28, 2022
Automatically block traffic on Cloudflare's side based on Nginx Log parsing.

AutoRL This is a PoC of automatically block traffic on Cloudflare's side based on Nginx Log parsing. It will evaluate Nginx access.log and find potent

Nova Kwok 62 Dec 28, 2022
DataShare - Simple library for data sharing between scripts and public functions calling

DataShare - Simple library for data sharing between scripts and public functions calling. Installation. Install code, Delete LICENSE, README, readme.t

Ivan Perzhinsky. 1 Dec 17, 2021
ASC - Api Server Controller

ASC - Api Server Controller

Uriel Alves 1 Jan 03, 2022
SocksFlood, a DoS tools that sends attacks using Socks5 & Socks4

Information SocksFlood, a DoS tools that sends attacks using Socks5 and Socks4 Requirements Python 3.10.0 A little bit knowledge of sockets IDE / Code

ArtemisID 0 Dec 03, 2021
With the use of this tool, you can change your MAC address

Akshat0404/MAC_CHANGER This tool has to be used on linux kernel. Now o

1 Jan 25, 2022