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)
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)

gRPC - An RPC library and framework gRPC is a modern, open source, high-performance remote procedure call (RPC) framework that can run anywhere. gRPC

grpc 36.6k Dec 30, 2022
Simple local RPG turn-based to play while learn something using the anki system

Simple local RPG turn-based to play while learn something using the anki system

Raphael Kieling 5 Aug 02, 2022
Ip-Seeker - See Details With Public Ip && Find Web Ip Addresses

IP SEEKER See Details With Public Ip && Find Web Ip Addresses Tool By Heshan

M.D.Heshan Sankalpa 1 Jan 02, 2022
sync application configuration and settings across multiple multiplatform devices

sync application configuration and settings across multiple multiplatform devices ✨ Key Features • ⚗️ Installation • 📑 How To Use • 🤔 FAQ • 🛠️ Setu

Souvik 6 Aug 25, 2022
The sequel to SquidNet. It has many of the previous features that were in the original script, however a lot of the functions that do not serve much functionality have been removed.

SquidNet2 The sequel to SquidNet. It has many of the previous features that were in the original script, however a lot of the functions that do not se

DrSquidX 5 Mar 25, 2022
Dnspython is a DNS toolkit for Python.

dnspython is a DNS toolkit for Python. It supports almost all record types. It can be used for queries, zone transfers, and dynamic updates. It supports TSIG authenticated messages and EDNS0.

Bob Halley 2.1k Jan 06, 2023
An opensource library to use SNMP get/bulk/set/walk in Python

SNMP-UTILS An opensource library to use SNMP get/bulk/set/walk in Python Features Work with OIDS json list [Find Here](#OIDS List) GET command SET com

Alexandre Gossard 3 Aug 03, 2022
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
User-friendly packet captures

capture-packets: User-friendly packet captures Please read before using All network traffic occurring on your machine is captured (unless you specify

Seth Michael Larson 2 Feb 05, 2022
These scripts send notifications to a Webex space when a new IP is banned by Expressway, and allow to request more info or change the ban status

Spam Call and Toll Fraud Mitigation Cisco Expressway release X14 is able to mitigate spam calls and toll fraud attempts by jailing the spam IP address

Luca Pellegrini 6 Aug 05, 2022
Linux SBC featuring two wifi radios, masquerading as a USB charger.

The WiFiWart is an open source WiFi penetration device masquerading as a regular wall charger. It features a 1.2Ghz Cortex A7 MPU with two WiFi chips onboard.

Walker 151 Dec 26, 2022
This is the code repository for Mastering Python for Networking and Security – Second Edition

Mastering Python for Networking and Security – Second Edition This is the code repository for Mastering Python for Networking and Security – Second Ed

Frank Gottinger 1 Feb 09, 2022
Aiotor - a pool of proxies, shifting on each request

Aiotor - a pool of proxies, shifting on each request

Leon 32 Dec 26, 2022
Raspberry Pi Based Serial Console Server, with PushBullet Notification of IP changes, Automatic VPN termination, custom menu, Power Outlet Control, and a lot more

ConsolePi Acts as a serial Console Server, allowing you to remotely connect to ConsolePi via Telnet/SSH/bluetooth to gain Console Access to devices co

120 Jan 05, 2023
基于多线程快速端口扫描脚本,支持目标批量导入、结果导出。

JWS_portscan 基于多线程快速端口扫描脚本,支持目标批量导入、结果导出。如果扫描公网资产,为了提升扫描的精准性,建议放到服务器运行。 用法 依赖安装:pip3 install -r requriement.txt 支持参数:python3 JWS_portscan.py --help 脚本

jammny 5 Apr 12, 2022
Dokumentasi belajar Network automation

Repositori belajar network automation dengan Docker, Python & GNS3 Using Frameworks and integrate with: Paramiko Netmiko Telnetlib CSV SFTP Netmiko, S

Daniel.Pepuho 3 Mar 15, 2022
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
gRPC typing stubs for Python

gRPC Typing Stubs for Python This is a PEP-561-compliant stub-only package which provides type information of gRPC. Install using pip: pip install grp

Blake Williams 27 Dec 20, 2022
Best discord webhook spammer using proxy (support all proxy type)

Best discord webhook spammer using proxy (support all proxy type)

Iтѕ_Ѵιcнч#1337 25 Nov 01, 2022
KoreaVPN - Create a VPN App for Mac Using Automator

VPN app 만들기 (a.k.a. KoreaVPN) VPN을 사용하기 위해 들어가는 10초의 시간을 아끼고, 귀찮음을 최소화 하기 위해 크롤링

DongHee 6 Jan 17, 2022