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)
A TrueCharts automatic and bulk update utility

trueupdate A TrueCharts automatic and bulk update utility How to install run pip install trueupdate Please be aware you will need to reinstall after e

TrueCharts 125 Jan 04, 2023
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
Implementing Cisco Support APIs into NetBox

NetBox Cisco Support API Plugin NetBox plugin using Cisco Support APIs to gather EoX and Contract coverage information for Cisco devices. Compatibilit

Timo Reimann 23 Dec 21, 2022
TsuserverMoS - A Python-based server for Attorney Online,

tsuserverMoS A Python-based server for Attorney Online, forked from RealKaiser/tsuserverCC Requires Python 3.7+ and PyYAML. Changes/additions from tsu

1 Dec 30, 2021
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
A simple Encrypted IM chat software Server & client based on Python3.

SecretBox A simple Encrypted IM chat software Server & client based on Python3. Version 1.0 命令行版 安装步骤 Server 运行pip3 install -r requirements 安装依赖。 运行py

h3h3da 5 Oct 31, 2022
Socket programming is a way of connecting two nodes on a network to communicate with each other

Socket Programming in Python Socket programming is a way of connecting two nodes on a network to communicate with each other. One socket(node) listens

Janak raikhola 1 Jul 05, 2022
A lightweight python script that can monitor the T-Mobile Home Internet Nokia 5G Gateway for band and connectivity and reboot as needed.

tmo-monitor A lightweight Python 3 script that can monitor the T-Mobile Home Internet Nokia 5G Gateway for band and connectivity and reboot as needed.

61 Dec 17, 2022
Py script to aid in setting up the boot chime in OpenCore.

BootChime Py script to aid in setting up the boot chime in OpenCore. It does so by helping you locate your IOHDACodecDevices, IOHDACodecAddress values

CorpNewt 7 Sep 19, 2022
Mass querying whois records using whois tool

Mass querying whois records using whois tool

Mohamed Elbadry 24 Nov 10, 2022
ANalyse is a vehicle network analysis and attack tool.

CANalyse is a tool built to analyze the log files to find out unique datasets automatically and able to connect to simple user interfaces suc

0xh3nry 87 Dec 18, 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
A Python Tor template on Gitpod

A Python Tor template on Gitpod This is template configured for ephemeral development environments on Gitpod. prebuild Get Started With Your Own Proje

Ivan Yastrebov 1 Dec 17, 2021
MQTT Explorer - MQTT Subscriber client to explore topic hierarchies

mqtt-explorer MQTT Explorer - MQTT Subscriber client to explore topic hierarchies Overview The MQTT Explorer subscriber client is designed to explore

Gambit Communications, Inc. 4 Jun 19, 2022
Public HTTPS access to Home Assistant with Dataplicity service

Custom component for public HTTPS access to Home Assistant with Dataplicity service. Should work on any Linux PC or ARM, not only Raspberry as Dataplicity service said. Don't work on Windows.

Alex X 70 Oct 03, 2022
Python port of proxy-www (https://github.com/justjavac/proxy-www)

proxy-www.py Python port of proxy-www (https://github.com/justjavac/proxy-www). Implemented additional functionalities! How to install pip install pro

Minjun Kim (Lapis0875) 20 Dec 08, 2021
PySocks lets you send traffic through SOCKS proxy servers.

PySocks lets you send traffic through SOCKS proxy servers. It is a modern fork of SocksiPy with bug fixes and extra features. Acts as a drop-i

1.1k Dec 07, 2022
Linkedin Connection Automation

Why spend an hour+ a week, connecting with the correct people on LinkedIn when you can go for lunch and let your computer do the hard work?

1 Nov 29, 2021
A script to automatically update the github's proxy IP in hosts file.

updateHostsGithub A script to automatically update the github's proxy IP in hosts file. Now only Mac and Linux are supported. (脚本自动更新本地hosts文件,目前仅支持Ma

2 Jul 06, 2022
Easily share folders between VMs.

This package aims to solve the problem of inter-VM file sharing (rather than manual copying) by allowing a VM to mount folders from any other VM's file system (or mounted network shares).

Rudd-O 12 Oct 17, 2022