Return to Facebook   Twitter   Reddit   Instagram   Mastodon   ProtonMail
Support Center / Download and setup / How to manually configure OpenVPN for ProtonVPN in Linux

How to manually configure OpenVPN for ProtonVPN in Linux

ProtonVPN offers both an official Linux app with graphical user interface and an official Linux CLI. You can also manually configure OpenVPN for ProtonVPN in Linux. In this article, we explain how.

You can set-up VPN for Linux by using the ‘openvpn’ package and with the appropriate config files of the ProtonVPN servers.

As an example, the below Linux VPN setup guide shows how to configure a connection on Ubuntu 16.04LTS.

We strongly recommend downloading official ProtonVPN Linux CLI app, which makes it easy to connect on Linux machines (supported on Debian-based and Fedora 33 systems).

Note: To address frequent DNS leaks on Linux, we’ve updated this guide with new Linux specific config files and new instructions to connect via CLI (see option B below)


Preparation for the Linux VPN setup:


1. Install the necessary packages:

Install the OpenVPN package by opening a terminal (press Ctrl + Alt + T) and entering:

sudo apt-get install openvpn

  • It will prompt you for your password to allow installation, enter it to proceed
  • When it prompts you to confirm the installation, press ‘y’ and hit ‘[Enter]’
  • If it’s installed already, it will look like this:

Note: if you do not have administrator privileges on your machine, please contact your system administrator and ask them to perform the installation for you.

Install the ‘network-manager-openvpn-gnome’ package, for easier use and compatibility with the Ubuntu Network Manager GUI, by entering:

sudo apt-get install network-manager-openvpn-gnome

And pressing [Y] and then [Enter] to confirm the installation.

Also, ensure that the resolvconf is installed:

sudo apt install resolvconf

2. Get the ProtonVPN config files: 

  • Download the desired configuration files

    • Log into your ProtonVPN dashboard at
    • Select Downloads on in the left navigation bar
    • Find the OpenVPN configuration files section and chose
      • Platform: Linux
      • Protocol: UDP (recommended) / TCP if you experience slow VPN speeds (this utilizes port 443)
    • Click the download icons for the server you wish to download

If you selected “Download All configurations”, extract the zip file to your desired location

3. Find your OpenVPN credentials:

For increased security, ProtonVPN is set-up with two separate credentials to authenticate a connection.

Learn more about how two pairs of credentials increase the security of ProtonVPN.

Log in to the ProtonVPN dashboard and click on Account tab. Here you will see your two type of credentials.
The credentials ProtonVPN Login are used in our applications. OpenVPN / IKEv2 Username is used on manual connections. So please configure the OpenVPN credentials to your preference as you will need to use them to establish a Linux VPN connection. Note: to use our NetShield DNS filtering feature, append the suffix +f1 to your username to block malware, or +f2  to block malware, ads, and trackers (for example 123456789+f2).


Option A: Linux VPN setup using the Network Manager

Attention: At this point, there is a known issue with DNS Leaks on distributions up to Ubuntu 16.04LTS (and its dependencies and parents). If you find that you too are affected by DNS leaks, we recommend you to use Option B below.

A1. Adding a new connection
  • Click on your connection symbol, in the system menu on the top right and select ‘Edit connections’.

Click ‘Add’ in the new window to create a new connection. Select ‘Import a saved VPN configuration…’ in the drop-down menu and click “Create…

Import the config file of the server you want to connect to, by navigating to the location where you downloaded the configuration file OR extracted the and selecting the desired file.

The files are named with a two-letter abbreviation of the destination country and a number to show which server in that country. For example: de-01 is the first server in Germany; ca-04 is the fourth server in Canada. You can check the ProtonVPN servers page and find the abbreviations there. Files with two country abbreviations are secure core servers, for example: is-us-01 is the secure core connection over Iceland to the USA. Learn more about our Secure Core feature.

  • Enter the OpenVPN credentials from step 3 in the ‘username‘ and ‘password‘ field of the new window and hit save.

For Ubuntu 14.04 LTS: there is an issue specific to 14.04 where importing the configuration that does not read all settings automatically. If you are experiencing issues with the auto-import feature with the network manager, please drop us a line at this link for further instructions.

A2. Establish the Linux VPN connection

Click on your connection symbol in the system menu. Select ‘VPN Connections’, click the entry of your newly added config and it will automatically connect to your chosen ProtonVPN server.

You will see a popup confirming the VPN connection has been established and a lock next to your connection symbol. Congratulations, you’ve just successfully connected to ProtonVPN!

A3: Optional: To add more connections, simply repeat step A1 with a different configuration file(s).

Option B: VPN setup for Linux using the Terminal (CLI)

Note: if you do not have administrator privileges on your machine, please contact your system administrator and ask them to perform the connection for you

Please ensure that the resolv-conf script is properly downloaded on your device by using the following commands:

sudo wget "" -O "/etc/openvpn/update-resolv-conf"

sudo chmod +x "/etc/openvpn/update-resolv-conf"

Open a terminal (press Ctrl+Alt+T) and navigate to the folder where you unzipped the config files using  cd <path> .  In our example, they are located in ~/Downloads so we enter:

cd ~/Downloads

If you find it hard to navigate using CD command line, you can open the folder that the file is located in using any file manager and right click > Open in terminal

Enter the following to initialize a new connection:

sudo openvpn <config.ovpn>

Where <config.ovpn> is the config file name of the server you want to connect to, e.g. for Germany #3 server. Enter your PC’s administrator password to execute (openvpn will modify your network adapters and needs root privileges)

Subsequently, you will be prompted for your OpenVPN credentials from step 3, enter your credentials to authenticate

  • You have finished the Linux VPN setup and successfully connected to the ProtonVPN servers once you see Initialization Sequence Completed
  • Keep this Terminal open, to stay connected to ProtonVPN. If you close the terminal, the VPN connection will disconnect.

Click here if you’d like to ensure that the connection is successfully established and there are no leaks.

To disconnect your Linux VPN connection, press Ctrl+C and/or close the Terminal.

  • Additional Resources

Download Linux config files via the Dashboard

  • Related articles

ProtonVPN Linux client tool

Does ProtonVPN store user information?

Does ProtonVPN have bandwidth limit?

What is OpenVPN?


Post Comment


  1. Protonero

    Is it possible to activate the 7 day free trial using the linux command line tool?
    If yes, how? I tried to use the plus option, but I cannot connect to italian servers.

  2. ProtonVPN Team

    Hello. The first connection has to be made to the Free servers, upon that, your trial will activate and you will be able to connect to the Plus servers for 7 days. If you encounter any issues, feel free to let our customer support team know!

  3. Zero

    I just connect a VPN on linux machine using proton Free VPN plan, looks great, but after checking my ip on . it just shows my real IP along and my VPN Server IP, It says because of WebRTC detection, and also it guides how to stop on browsers ,and my question is 🙁 Still how many traps on the internet to reveal our Real IP like this,
    I need answers !
    Thank You!

  4. ProtonVPN Team

    Hello. You should contact our CS team for detailed investigation. As for the traps, the question is a bit undefined and there are many ways of answering it, but basically you could leak your information with IP, DNS, WEBRTC and browser Fingerprint. We take care of first 3 but fingerprint is not in VPN power to protect, so you can look up some add-ons or extensions to hide that.

  5. Vince

    Hi there,
    I followed the step by step tutorial for Linux installation, and when I finished, everything was working fine and I connected to the VPN. But then, I decided to reboot my computer and now I tried everything but can’t connect again on the VPN. Even my wlan0 is connected and wifi seems to be working, but I can’t access internet on Firefox anymore.
    Help please

  6. ProtonVPN Team

    Hello Vince, please contact our customer support team as we need the connection logs and your DNS settings.

  7. kuchera

    Good afternoon, great work, fedora 28 everything works out of the box, downloaded ovpn, opened in networkmanager, + vpn, turned on and everything works, only webrts turned off in browsers, there are no dns leaks, thanks to the fastest and most convenient bypass of Belarusian censorship for me present day.

  8. Aaron James

    Bit of a newbie to this but does anyone know if you can use the server script to setup openVPN inside an untangle box? I am currently trying to figure out how to get this working with my untangle Environment. Thank you.

  9. AScience

    Linux pc 4.9.124-nrj-desktop-1rosa-x86_64 #1 SMP PREEMPT Tue Sep 4 09:48:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

    [!] Error connecting to VPN.
    [!] Reason: Authentication failed. Please check your ProtonVPN OpenVPN credentials.
    [!] There are issues in managing IPv6 in the system. Please test the system for the root cause.
    Not being able to manage IPv6 by protonvpn-cli might cause issues in leaking the system’s IPv6 address.

  10. ProtonVPN Team

    Hello. Please try installing open-resolv and updating the client using pvpn -update. After doing so, re-initiate the client using pvpn -init and make sure you enter OpenVPN credentials and not ProtonVPN credentials.

  11. john

    Hey can you break this down and explain what you are talking about instead of giving a five second answer? I am not a LInux guru. Tell me what tot ype.

  12. ProtonVPN Team

    Hello, please enter these commands:
    sudo apt-get update
    sudo apt-get install openresolv

  13. Andrew

    Do you have any plans to release your own GUI client for linux?

  14. ProtonVPN Team

    Hey Andrew, currently we do not have any plans for that as we are still polishing the cli.

  15. CombatManeuverJunkie

    “Click here if you’d like to ensure that the connection is successfully established and there are no leaks.” FYI, that link doesn’t work anymore.

  16. ProtonVPN Team

    Hey, thanks for the heads up, seems that the link was not working with www. and now we fixed it.

  17. PaulX

    I am trying to use Option B on Lubuntu 16.04 LTS. When I invoke openvpn I get this:
    paul@len780:~/Downloads/ProtonVPN$ sudo openvpn
    [sudo] password for paul:
    Options error: –up script fails with ‘/etc/openvpn/update-resolv-conf’: No such file or directory
    Sure enough, there is no file in /etc/openvpn. Your recipe seems to be missing something. Yes, I checked via Synaptic that I have openvpn, network-manager-openvpn-gnome, and resolvconf installed. I got update-resolv-conf from github, and did a chmod to 744. That allowed me to get the tunnel working and google maps showed me as being in Japan, as expected. However the DNS is leaking, and invoking openvpn gives me this error message:
    Mon Sep 10 20:11:02 2018 /etc/openvpn/update-resolv-conf tun0 1500 1637 init
    dhcp-option DNS
    resolvconf: Error: Command not recognized
    Synaptic shows resolvconf as being installed. Apparently the update-resolv-conf script uses the command improperly?
    Anyway for me, ProtonVPN is not ready for prime time.

  18. ProtonVPN Team

    Hello Paul, may we ask have you tried using our cli tool that we made for linux? any feedback is greatly appreciated to our support team here –

  19. Scotus

    Hi, I’ve been using ProtonVPN on a new installation of Linux Mint for the last week or so, I had initially configured the VPN using method A, and although it was connecting without any issue it was constantly producing DNS leaks. Since configuring the VPN using method B, the VPN connects and no longer produces any DNS leaks.

    I wanted to ask though, how do you go about ensuring the client is always kept up to date as you guys release new versions?

  20. ProtonVPN Team

    Hello Scotus. None of the methods included in this article are build by us. All of them just use our generated server configuration files, so we are not in control of that software. Network manager is known to have bugs and issues for many distributions, thus we suggest registering them on appropriate community forums for them to be fixed. We always recommend using our ProtonVPN linux command line interface that has no leaks of any sorts.

  21. Vital

    Installation on Ubuntu 18.04 was easy. Yet that seemed to me “core” and “country” config tabs were a little misleading.

  22. Pete

    A couple of days ago I got the ‘plus’ package with (5) VPN connection. Installed it without any problems on my Win based Notebook and it’s doing really fine there…
    But I have got real problems with my two other PC’s, which are running on Linux Mint Cinnamon. Followed all the instructions on your site and after switching to VPN connection it tells me correctly that the connection is successfully established. But then it kills any streams in my browser and it’s impossible to connect any new sites. ‘timeout error’.
    After a while I get the message ‘…connection failed’.
    Any idea what I did wrong there?

  23. ProtonVPN Team

    Hello Pete, it could be that the method you did has some issues on your specific distribution. Thus we would suggest to try our linux client tool.

  24. LiveUser


    To the question activate Kill Switch, do you choose Y or N ?

    Following your link, I use Chalet Os Distro
    Here is what I get :

    [!] Error connecting to VPN.
    [!] There are issues in managing IPv6 in the system. Please test the system for the root cause.
    Not being able to manage IPv6 by protonvpn-cli might cause issues in leaking the system’s IPv6 address.

    thank you

  25. ProtonVPN Team

    Hello. Please update the linux cli since we removed killswitch because it had too many issues for now. You need openresolv to run the vpn. Check if your distro has this as a package and install it.

  26. osten

    After switching from Linux Mint 19 Tara (base: Ubuntu Bionic 18.4.x) with the MATE desktop to Cinnamon in late Aug. 2018, I also lost the ability to use the Proton-CLI tool, which works excellently on MATE. Thanks!

  27. ProtonVPN Team

    Hello Osten, please contact our team here and we will do our best to investigate your issues.

  28. phantomas

    About option A and B
    For DNS leaks you can edit the .ovpn file and and add at the bottom:
    that is a new option introduced from OpenVPN v2.3.9
    check your version using : openvpn –version
    in my case
    OpenVPN 2.3.10 x86_64-pc-linux-gnu
    I would like to advice you to always change your default ISP dns servers and setup OpenNIC or whatever Dns service you prefer, if you have the possibility to do it.

  29. PaulX

    Apparently, block-outside-dns is only effective in Windows (from what I’ve read).

  30. LYMO


  31. Sean

    Am I able to use two-factor authentication using the command line process? I’m having difficulty authenticating.

  32. ProtonVPN Team

    Hello Sean, VPN does not have 2FA at all for now, using linux connection method, you have to use your OpenVPN credentials that you can find in your ProtonVPN dashboard on our website.

  33. WhoMan

    I constantly have problems with dns leaks :/ leak tests always show my real ip address, no matter what i do. Using linux, ubuntu based distribution. Currently on openvpn configuration, i was used your script from github too, but i have problems with it all the time, when it can’t connect properly and it’s always warning me about dns leaks when it connects.

  34. ProtonVPN Team

    Hello! Please contact our customer support team for detailed investigation.

  35. privacy

    do you log which device i have used to create an account or which device i have used to log in to protonmail

  36. ProtonVPN Team

    No, the devices are not logged, if you want to log IP addresses that log in to your protonmail account, you can do so on Protonmail mail dashboard -> security and switch logging to highest.

  37. sedax

    As “KDE user” posted on June 1 2018
    On Ubuntu 18.04.1 LTS
    If you follow step by step
    – 1. Install the necessary packages
    – 2. Get the ProtonVPN config files
    – 3. Find your OpenVPN credentials
    And next:
    – Option A: Linux VPN setup using the Network Manager
    It work greats
    just for the image:
    User name: IS NOT Protonvpn.user BUT OpenVPN/IKEv2 Username

    Sorry i am new in linux
    yesterday night on my windows 10 on my laptop lenovo yoga x1, some windows process were duplicate with a _f4rtn something like that, so i dowloaded a fresch instal from microsoft and i instal new clean, and when the computer restart the same process where duplicate, and i never creat an microsoft account.
    As you known the serial key of windows 10 is include in the intel inside… when i start windows store i saw some app i had instal last year, so microsoft keep in mind all what you do with your serial number (i had put tool to stop telemetry)
    so i go subito presto on ubuntu and creat a usb boot, and erase all partions on my M.2 2280 (new hard disk on laptop like ssd)
    AND i am very happy, everything work great, ubuntu recognize all my hardware (last time i used linux was in 2001, and this time i need to compile the kernel, too lazy i was!)
    viva linux
    have a nive time to all
    sorry for my english

  38. ProtonVPN Team

    Hello Sedax, we appreciate the heads up on the little mistake, which we have corrected thanks to you, and we are happy to hear that you are satisfied with the services!

  39. Michal

    Is it possible to use proton vpn on amazon fire tv? if not could you please suggest a router that support vpn connections.

  40. ProtonVPN Team

    Hello Michal,For now, the application is in testing period, but for recommended routers we think that ASUS are the best ones, since they are easy to configure with sleek UI.
    Asus: RT-AC88U, RT-AC3100, RT-AC5300

  41. Jane

    I used the terminal and am connected to NL, but see my AU ISP address (WebRTC detection & DNS Address).
    How to stop the leak?

  42. ProtonVPN Team

    Hello Jane, it would be the best if you contacted our customer support team for detailed investigation and instructions on what to do in your case.

  43. peter

    I’m really grateful for this guide. Running Debian stretch on my Planet Gemini pda means no network-manager and the nifty looking tool you provided didn’t work, but option B runs perfectly.

  44. ProtonVPN Team

    Hello Peter, we are happy to hear that you`ve found a way to connect!

  45. peter

    After playing around a little more, I discovered that using Option B over a cellular connection produces a DNS leak. It’s easily corrected by modifying the interface settings, but perhaps at some point the config files could be updated to include either OpenDNS or Google DNS by default.
    Should I relay this observation / request to Customer Support?

  46. ProtonVPN Team

    Hello Peter, thank you for feedback. There is no need to relay it to our support team, we will manage to consult with our developers on this aspect. 🙂

  47. peter


  48. Debian user

    I have been using Debian 9 and ProtonVPN for some time. Today I was searching for something else and found this page, so tried it out. I works quite well. I like the link, I hadn’t tried that before and confirmed with other non ProtonVPN options. I’m very happy with the way ProtonVPN works and recommend it to my friends.
    Thanks for your work to get this working and to maintain it.

  49. Proton Loyalist

    Hi Proton Team,
    Any plans to release TLS/SSL based VPN?
    Some countries just block the other options.

  50. ProtonVPN Team

    Hello. Honestly speaking, we haven`t thought about it yet, so there are no plans for now as we need to prioritize other more important factors for stability and accessibility.

  51. Anonymous

    You guys might want to add auth-nocache to your config files, also, comp-lzo is deprecated and may be removed in future OpenVPN versions, compress is the replacement.

  52. ProtonVPN Team

    Hello, thank you for the tips! Yes, we are aware of the situation and we are preparing the changes.

  53. KDE user

    Hi! I tested all 3 VPN connection methods in Kubuntu 18.04 LTS.
    This is a clean install of Kubuntu 18.04 LTS with all updates.
    I did about 100 tests.
    1. Connect with standard OpenVPN client.
    RESULT: Permanent DNS leaks. GoogleDNS servers.
    2. Connect with ProtonVPN Linux client tool.
    RESULT: No DNS leaks.
    3. Connect with KDE NetworkManager.
    RESULT: Permanent DNS leaks. GoogleDNS servers + 1 ProtonDNS server.
    You can see all 3 methods show 3 different results.
    2 with DNS leaks (a bit different) and 1 with no DNS leaks.
    In Kubuntu 16.04 LTS I had DNS leaks only sometimes. But all 3 methods worked fine for me most of time. But in 18.04 something has changed. I have no leaks only with ProtonVPN client.

  54. Daryle

    Hello Protonvpn Support,

    I am using Protonvpn FREE on Ubuntu 18 Gnome3 and connect using (Option B: VPN setup for Linux using the Terminal (CLI). Is there a way to configure the VPN to automatically connect when Ubuntu starts?
    Thanks in advance for any help you can offer.

  55. ProtonVPN Team

    Hello Daryle, Please contact our customer support team and we will investigate the possibilities for your OS to start the terminal cli on boot since for now we do not have an official one as there are too many different linux distributions to make one available for all.

  56. KDE user

    IMPORTANT: For all KDE and Kubuntu users!!!
    I tested ProtonVPN with NM in Kubuntu 18.04 LTS.
    Same problem as in all previous releases – YOU CAN’T CONNECT to OpenVPN without “network-manager-openvpn” package (not installed by default). I DON’T KNOW WHY, but this package is not included by default in all versions of Kubuntu. So NetworkManager DOESN’T ALLOW YOU to press the “Connect” button in it’s applet and connect to OpenVPN.
    You must install “network-manager-openvpn” package for NM.
    > sudo apt-get install network-manager-openvpn
    I just don’t understand the logic of Kubuntu devs – NM allows user to CREATE an OpenVPN connection, but doesn’t allow to connect to it without additional packages that is not installed by default. Moreover – NM doesn’t show any errors or hints! This is sucks.
    I hope this post will help. 🙂

  57. ProtonVPN Team

    Hello. Thank you for the valuable information provided, we hope this helps for the users facing similar issues. 🙂

  58. manman

    vpn bağlantısı kuruluyor, ancak bağlantı kurulduktan sonra hiç bir uygulama internete bağlanamıyor. Android uygulamasında sorun yok, Widows ile denemedim.

    The vpn connection is being established, but no application can connect internete after the connection is established. No problem with Android application, I did not try it with Widows.

  59. ProtonVPN Team

    Hello. Seems like you are in a restricted network country. Could you please contact our customer support team and we will do our best to help you out!

  60. Murray

    Hello ProtonVPN Team! I followed the Linux ProtonVPN installation process above and I verified if my connection was successful but it turns out my personal ip address has not been masked. I can clearly see my Internet Provider name, city/state/country, and my personal ip address. I don’t feel safe/secure on the web unless I have my ProtonVPN active. I would appreciate any help to resolve this issue, thank you!

  61. ProtonVPN Team

    Hello Murray. Thank you for reporting this to us. May we know, what Linux distribution did you install, what servers have you tried connecting to and where did you check the IP address data? It could be cache too, dont forget to refresh the browser cache after each connection. Please contact our customer support team with all this information and we will do our best to help you out!

  62. Adrian

    Hi, I can connect to the Swiss server (no DNS leak! but no Ipv6 test or Ipv4 for that matter possible. I cannot connect with the Netherlands server, which is the one I would like to, if possible. Thanks

  63. ProtonVPN Team

    Hello Adrian, could you please contact our customer support team? We will do our best to help you out!

  64. Richie

    Im running proton VPN using option A, not from terminal. Is there any way to check if VPN is connected and running using terminal?
    Programmatically I want to keep an eye whenever it gets disconnected.

  65. ProtonVPN Team

    Hello Richie. You can check your IP address online on the website, as for terminal, you should always see Initialization Sequence Completed at the end of the connection log , it means that you are connected but keep an eye if you get any errors on the terminal window. Other than that, there is no way to constantly check your connection.

  66. Craig

    In Ubuntu (17 in my case), you upgrade your service from free to (I guess) any other payment plan (I went to basic) don’t forget to reinitialise the Linux client protonvpn-cli (Ubuntu terminal is “sudo protonvpn-cli -init” then “Y” then choose the new plan when prompted). I didn’t do this and ended up hassling support wondering why I couldn’t see all the extra servers promised. Actually, the first time I reinitialised, I saw all the extra servers but couldn’t connect to any, including the free servers I had previously been connecting to. I reinitialised again and this time I saw the servers and could connect (in both cases I attempted multiple servers).

  67. Rob

    Fedora 27. I see “Initialization Sequence Completed” but no network until I hit CTRL C.

  68. ProtonVPN Team

    Hello Rob, does the same happen while using our linux client tool? It looks like there is something wrong with your DNS addresses in /etc/resolv.conf

  69. Robert

    I have had protonVPN, using openVPN working on Linux mint, and it has been fine. But, I just got a new machine (very similar to the first one), and installed a fresh copy of the same operating system. It is slightly newer (Linux Mint 18.3 Cinnamon 64-b, versus, Linux Mint 18.2 Cinnamon 64-b). I am connecting to the same VPN server, and all of the settings are the same (at least that is my intent). But, the new machine doesn’t connect. Instead, it fails complaining of a timeout.
    Is there any reason that version 18.3 might have a problem, but 18.2 does not? Or, could it be that it does not connect because of the 2 device limit in the Basic subscription? I did connect using my phone once a while ago, but I don’t wish to use this device normally. If so, how to dis-enable that one?

    Thanks, Robert

  70. ProtonVPN Team

    Hello Robert, We have tested Linux mint 18.3 with our cli-tool and it connects like it should without any timeouts. Have you tried a few different servers and different protocol (UDP/TCP) ?
    Please contact our customer support team and we will do our best to help you out!

  71. daniel

    Ok, I managed to get a bit further and downloaded this file
    so whenever I choose a file at random, for instance,
    the outcome is that my system pop up says that the connection fails to the server because the time of connection is out ?
    it seems that any server is out of reach ??

    thank you

  72. ProtonVPN Team

    Hello Daniel, we had some short server maintenance yesterday. If you still face the same issue, please contact our support team here :

  73. MX

    Thanks for this! Works beautifully

  74. Podesta

    Just a heads up. Simply closing the terminal window does not close the vpn connection. You should kill the processes. Using the gui option you don’t need to do so, but as pointed out in the article, you will be leaking your DNS on Ubuntu variants.

  75. ProtonVPN Team

    Hello Podesta,
    Thank you for the heads up!
    Please try our new tool and contact our support if you have any issues.
    Support link :

  76. Andre

    Hello, I just a question. Are all the DNS queries made through the VPN tunnel? And if they are, the DNS used is the one configured in my machine or the one used in the VPN?

    Great services, ProtonMail, ProtonVPN! I wish the best for all the Proton community!

  77. ProtonVPN Team

    Hello Andre,
    All of our VPN servers run DNS servers on them too, so your IP and DNS queries go trough it and the perfect connection is when you have the same DNS addresses as the IP.
    Thank you for your great feedback! Wish the best for you too!

  78. Matt

    I’m running the Canada (via Iceland) config on Linux CLI. is showing DNS leaks.

  79. ProtonVPN Team

    Hello Matt,

    Please contact our customer support team with provided details of your resolv.conf file and screenshots of leaks.

  80. jonathan

    I keep recieving this message when trying to install. can you help?
    E: dpkg was interrupted, you must manually run ‘sudo dpkg –configure -a’ to correct the problem.

    thank you

  81. ProtonVPN Team

    Hello Jonathan,

    Could you please contact our support team with all of the detailed information?

  82. Chicken Turtle

    That script works, but it only lets you see the country list. No secure core. Are you going to fix that?

  83. ProtonVPN Team

    Secure core servers are in the list if you scroll down. The right side column says what specialty the server has, for example, P2P or Secure core.

  84. mr.crobot

    i connected via CLI and i still get dns leaks when i check it shows one server in my vpn country and like 6 or 7 in my native country. How do i fix this?

  85. ProtonVPN Team


    Could you please contact our support team with all of the detailed information that you can provide?

  86. dromer

    Hello Proton team,
    Well, the problem is solved.
    After reading about similar problems on the internet i stumbled across “”. I repaired the link “/etc/resolv.conf” and added three lines to the .opvn files:
    “script-security 2
    up /etc/openvpn/update-resolv-conf
    down /etc/openvpn/update-resolv-conf”
    Now it works ok again.
    Oh, and on another note, the OpenVpn on iOs works great

  87. VPNUser

    I am experiencing DNS leaking after connecting via the CLI on ubuntu 14.04 LTS. shows the secure core server that I am connected to and additionally my real location/dns servers. Is there a current solution ? There are people commenting who seem to have found a solution but I have not seen protonvpn staff recommend anything. Thanks

  88. ProtonVPN Team

    Please try out our new Linux client guide and let our support know how it goes. 🙂

  89. user_proton

    I use QubesOS and i cant fix dns leak, any idea?

  90. ProtonVPN Team

    Could you please contact our support team with all detailed information about the connection method used and DNS leak?

  91. TLS

    Ubuntu 17.10
    I’ve tried to connect via terminal:
    Options error: In [CMD-LINE]:1: Error opening configuration file:
    It doesn’t work as well on Ubuntu 16.04.

  92. ProtonVPN Team

    Please try using our latest Linux client and follow this guide for the installation :

  93. dromer

    Protonvpn stopped working yesterday (17 february 2018). No problems before that.
    I am using Opera, Firefox and Thunderbird. After the CLI-client starts DNS does not seem to work. Ping does work.
    Anybody else got this problem? Any idea how to fix it?

  94. ProtonVPN

    Hello, we will need more details in order to detect what might’ve caused the issue for you. Also, we need the account username. Please open a ticket through the following link, and let us know your username so we can check if everything is in order:

  95. pq

    Works great on Souls. No DNS leals, no issues. I only had to block ipv6.
    # sysctl -w net.ipv6.conf.all.disable_ipv6=1
    # sysctl -w net.ipv6.conf.default.disable_ipv6=1

  96. krg

    The above works for Ubuntu 17:10
    Need to use the command line to start.

  97. krg

    This method works also on Ubuntu 18:04
    That is no DNS leaks.

  98. Proper A.A.S.R.F. Mason

    For the DNS leak, just type in the Terminal:
    For Debian/Ubuntu/LinuxMint, etc.
    # sudo apt-get install unbound
    For Fedora/OpenSUSE/CentOS, etc.
    # sudo dnf/yum install unbound
    For ArchLinux/Manjaro/Antergos, etc.
    # sudo pacman -Syu unbound
    ‘unbound’ comes with a lot of dependencies, so it’s not just a script. But it resolves at %1200 percentages the DNS Leak. I’ll try ProtonVPN for a month at the Pro plan, and who knows?… I enjoy the project and I think it deserves a hand, as so, as I’m for 5 years on Paid OpenVPN providers, anyways 🙂 They became rich and ProtonMail had never failed me from an year, so… Lets push that new startup from Switzerland, with their superb innovative Core futures!… The only scary think is, that, since the company is incorporated in an Offshore Zone, with such a lows, you never knows, who owns it… It could be the FSB from Russia (the successors of KGB) – like it is for some Paid OpenVPN providers, who started with huge capitals and built their VPN empires, and the one, incorporated in the Isle of Man – for sure – is a Russian Governmental Project to spy on people – that’s why they give the hugest Affiliates Marketing commissions, and so, they are everywhere at the first place, when it’s about third party classification of “the Top VPNs” 🙂 ЕxprеssVР – the KGB’s one 🙂
    But ProtonVPN are starting slowly – even ProtonMail had started slowly… So… I trust them, that they are really private company – but shall they be in one-two years? I put trust on them.
    Proper A.A.S.R.F. Mason

  99. DEnis


  100. Joe

    Installing Unbound seems to have fixed the issue with DNS leaks. Thanks for sharing.

  101. Johannes

    Just upgraded to ProtonVPN Plus and followed the instructions for 16.04 LTS, Everything went without a hitch. Appears well done so far.

  102. Sparetacus

    hello I finally managed to use free ProtonVPN
    for that I had to change configuration on my Rpi 2
    In fact the LibreELEC Kodi Krypton configuration does not allow to install resolvconf because I have never found the .zip package and especially because the console is blocked in LE: can not use the command “sudo” and the command “install” is blocked also with “root”. a warning message is also presented after entering the username and password.

    So I reinstalled completely another system that allows me to use the command “install”
    I chose “OSMC-Kodi-17.6” And I followed the tutorial of the site by adapting it to my situation.
    After launching VPN Manager for openvpn I followed the installation wizard and the VPN immediately started.
    I configured the 5 .vpn available for my country (France) and they all work.
    Obviously the connection speed has been divided by 10 (from 10 I go to 1Mb / s).
    I will do other tests at other times of the day and other days to see if the transfer rate is higher.
    Of course I realized this installation with the free version of ProtonVPN. And I’m not yet ready to pay to use a raspberry whose first vocation is freedom.
    I made a tutorial (pdf) but I can not put it in this message. I will send it directly to ProtonVPN asking them, after their validation, to communicate it to you.
    sparetacus @ sfr . fr

  103. K.ZooZee

    DNS Leak FIX for Linux *AND* NetworkManager:

    It finally seems that I stombled across a decent as well as fairly simple solution (as for now) to FIX the DNS leak issues I’ve had – it might just have the potential to help others as weel.
    If you continue reading to the end of my post, I will show 2 other actions I took before the actual FIX – *if* these actions somehow relate so that they will be needed for the FIX to work (I dont think so though).

    Creddit goes to nightguest posting on a thread about similar DNS leak issues: /viewtopic.php?pid=1702174#p1702174
    – he again refferes to this link for additional info:

    The final SOLUTION/FIX:
    Add this line:
    – to the [ipv4] section in your individual NetworkManager VPN connection configuration files located in:
    – so that the [ipv4] section looks like this:

    For my specifik ProtonVPN connection I edited:

    The RESULT:
    This is my /etc/resolv.conf after I applied the FIX and restarted NetworkManager – BUT *before* I connect to ProtonVPN server (showing my ISP’s DNS servers as it is supposed to):
    # Using the vi editor
    [root@localhost ]# vi /etc/NetworkManager/system-connections/
    # Restarting NatworkManager via systemctl
    [root@localhost ]# systemctl restart NetworkManager
    # The content of my resolv.conf:
    [root@localhost ]# cat /etc/resolv.conf
    # Generated by NetworkManager
    search lan

    Connected to ProtonVPN then /etc/resolv.conf gives me this (wich I belive is what it is supposed to as well):
    [root@localhost ]# cat /etc/resolv.conf
    # Generated by NetworkManager

    Extended test @ : none M247 Ltd France

    Now /etc/NetworkManager/system-connections/ looks like this:
    [@localhost ~]$ sudo cat /etc/NetworkManager/system-connections/
    [sudo] password for :


    # Added dns-priority=-1 to avoid DNS-leaks:


    As mentioned in the beginning here ia hat I did before this FIX:
    First installed this script from github (if I remember correct I did it in an attempt to solve the issues I was having connecting via the given DNS leak solution from this page using CLI/terminal):

    – and following the given instructions I added these lines to the *.ovpn configuration for the connections I am using (The comment is taken from the github page):
    # update your OpenVPN configuration file and set the up and down options to point to the script,
    # and down-pre to ensure that the script is run before the device is closed:
    script-security 2
    setenv PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    up /etc/openvpn/scripts/update-systemd-resolved
    down /etc/openvpn/scripts/update-systemd-resolved

    That’s it – have a good day y’all.

  104. K.ZooZee

    I can confirm that all three actions from above seems to be needed to achieve the given result.
    The result *with* the FIX *without* the “update-systemd-resolved” edit from the end of my post above – followed by result including “update-systemd-resolved” edit (and restart NetworkManager – AND if you chose to test via your browser – remember to shut down all browser windows to make sure that browser clears its DNS cache):

    [@localhost ~]$ cat /etc/resolv.conf
    # Generated by NetworkManager
    search lan
    # NOTE: the libc resolver may not support more than 3 nameservers.
    # The nameservers listed below may not be recognized.
    [@localhost ~]$ cat /etc/resolv.conf
    # Generated by NetworkManager

  105. crisd

    i took a vpn (5€ per months), the config was ok after 5 minutes of work.
    i have been trying ti install protonvpn for 3 days… and never finish good.
    why to do simple things when it’s so easy to do complicated things ?????
    even the documentation is hugly…
    definitively, protonvpn is not for me.

  106. ProtonVPN Team

    Hey, can you please tell us what exactly is not working for you? Which method have you tried to setup?

  107. John

    Using option A and using DNSCrypt-proxy as the VPN DNS appears to have stopped the leak.

  108. protonuser

    I’m having issues on Linux. Your example is using ubuntu. I’m on Debian GNOME. I tried to use the Network Settings to set it up, but it’s so damned complex. I also tried cli and I received a message saying “too many arguments” when trying to access the folder with config files.

  109. John H

    1) When will we see a native Linux client, please? It’s been quite some time since, and I quote, “we do plan to support mac and linux natively and development is currently in the early stages. no release date set yet. stay tuned”. Considering the amount of different ways (and bugs) I don’t really expect to see a unified client installer, but rather a good way to choose which VPN server/country/config files to use in a graphical manner once installed properly.

    2) No other comments since July 23rd, 2017?

  110. ProtonVPN Team

    Hello John, we are currently working on our macOS client which is being tested in closed beta. Cannot tell much about a Linux client at the moment, currently macOS and iOS are our highest priority.

    We didn’t have enough hands to moderate the comments, but now we do and it will be monitored on a daily basis.

  111. jsnjhn

    I’m struggling to setup protonvpn on my ubuntu touch device. Any advice on settting up manually?

  112. ProtonVPN Team

    Hey, please send us an e-mail via and our support team will help you out!

  113. dave

    How can I know if my connection to a ProtonVPN server is trough a tunnel? Like stunnel or something like that, in Linux. I don’t know if my connection is under a tunnel or not. With the tunnel mode, all the traffic is encrypted before outgoing from my pc to the isp. When the ISP are receiving my data traffic, they can’t see anyway that this is going to a vpn server. How can I look for it? And in the case of not connected through tunnel, how can I configure to get it? Should be there a another config file for stunnel plus the existent opvn configs files?

  114. ProtonVPN


    Whenever you connect to a VPN server, all traffic that leaves your computer gets encrypted with AES-256-CBC w/ a 2048bit Diffie-Hellman key. All your ISP can see is that you are connected to a VPN server, but they cannot see any of your original internet traffic. You can see encryption cipher / other information in the OpenVPN log if you are connecting via Terminal. Also, the best way to make sure that you are connected to a VPN server is to simply check – both your IP address and DNS should not show any of your original information.

  115. dave

    Hello to everyone!!
    I’m using OpenSUSE Leap 42,3 right now (I use W10 too). I’ve tried to connect a server via cli with openvpn command line, but it come back an error, telling me that there is no file about openresolv-config. I’ve tried to search through my repos and as result I couldn’t find the package.
    In other hand, I’ve configured the connection using the Network Manager (Import VPN config), in the KDE desktop (not the GNOME one like shown here above), and once set it with success, I’ve checked the “dnsleakstest” to see if there is a DNS leak. As result: there is no DNS leak. In the web (dnsleakstest) only appears one server which I’m connected to VPN (so it means that is everything ok).
    Another question: suppose that there is a dns leak. What about if a set the Public DNS of Google?? May that help to get more privacy while using PVN avoiding the leak??

  116. ProtonVPN Team

    Hello Dave, please write us an e-mail for further troubleshooting regarding connection via Terminal. Using Google DNS along with a VPN connection won’t leak your real information, DNS queries will be resolved along with the VPN IP address. However, if you are concerned using Google DNS, OpenDNS is another alternative. At the moment we do not have our dedicated Domain Name Servers (they are all integrated with the VPN server), but we are planning to have them in the near future.

  117. olax

    Be sure to have the /sbin/resolvconf if you want OpenVPN to update your DNS entries.
    On debian9 => apt install resolvconf
    If you don’t have this bin, you will get DNS leaks.

  118. chris

    The protocol described in option B doesnt prevent from random DNS leak in my case (Mint 18)

  119. voxit

    Hi to all,
    Here is my homemade solution for the DNS and IPv6 leaks issue on Ubuntu 16.04 and surely other Debian ditrib.

    1/ get the VPN server IP instead of its domain name (simply using a ping command) : x.x.x.x instead of
    2/ modify the .ovpn config file of your server choice by replacing the by the ip you got step 1/
    3/ open the network manager (edit connections after clicking on the network icon in the status bar)
    4/ delete the old VPN setting, and recreate one using option A with the new .ovpn config file (or simply double click on it and modify the gateaway the same way as above – do not erase the port x.x.x.x:X)
    4 / for all your connections, but not the VPN profile: go to the IPv4 tab: set it to IP adress only (DHCP) and let the DNS server adress blank, in order to have no DNS resolver (think about saving your preexistent ones in .txt if there are)
    5/ for all your connections and the VPN profile: set IPv6 tab to ignore (so you avoid ipv6 hazardous leaks)
    5 / deactivate – reactivate your network adapter in order to have to new setting applied
    6/ test you have no DNS resolver by checking (if it doesnt work it’s nice)
    7/ connect to the VPN (you will automatically be using the VPN DNS server)
    8/ test with
    9/ don’t forget to deactivate the WebRTC interface in your web browsers (and do not use chromium instead of chrome !)

    Waiting for a real patch, it will do the job !
    And let me know if it does work for you 😉

  120. voxit

    do use chromium / firefox instead of chrome *

  121. user

    voxit, your method works fine for me with Linux kernel 4.13.0-31-generic x86_64 on a Debian based distribution.

    Note that for secure_core configs, no need replacing by anything after disabling automatic DNS.

  122. Nrthlight

    Wow 4 leaks with the second method, what am I paying for here?

  123. Dave Sailer

    I consider this product to be still a beta version.

    Too bad. I’ll have to check back next year. In a few weeks I’m due to renew my existing VPN subscription with another company and I’ll have to stick with them.

    I’m running Linux Mint 17.3 (~= Ubuntu 14.04LTS), and ProtonVPN does not work for me. I tried installing the explicitly beta version, failed, updated/edited the config files on my own, failed, tried the ProtonVPN support’s fix, failed again.

    And now, with the “production” version, it looks like we’re still where we were what was it – three months ago?

    My existing VPN setup took about 5 minutes, works, and I have no problems with it. I don’t have a Ph.D. in EE, and am not a system administrator, so ProtonVPN is complex and confusing at best. And, in addition, does not work.

    OK. In six or eight months I’ll give you one more try when I get a new laptop and install an updated OS, but that’s it.

  124. PierreTremblay

    Hi !
    I just bought the ProtonVPN (plus) subscription plan for 1 year on Linux Mint 17.2 (Rafaela) (MATE)
    I followed the instructions here :
    Using the console setup. And i only get this message :
    Thu Jul 13 04:55:57 2017 write UDPv4: Operation not permitted (code=1)
    Repeated over and over.
    So far i tried with two different ProtonVPN servers, this one :
    And this one :
    Using this command line :
    sudo openvpn
    I am already using another VPN and wanted to switch to ProtonVPN before my previous suscription ends.
    What am i doing wrong please ?
    Thank you.

  125. ProtonVPN

    Please submit a support request to

    so that we can look into it.

  126. David Shawn

    Can I pay in bitcoin? If yes how to proceed? Thank you.

  127. ProtonVPN

    Yes, you can, you have to do it through ProtonMail:

  128. Songa Salim Saleh

    need it

  129. tauvpn

    Openvpn does not come with the script update-resolv-conf by default, so the current configuration files are broken for a pure openvpn installation, which is what happens on most of the linux distributions. For instance, my phone, on SailfishOS.
    I would suggest, you protonvpn guys, to also provide that script. In addition, security is weakened by “script-security 2”.

    There is a situation in which normal users, namely all those not having a nickname rooted on a particle from the Standard Model, and not finding the update-resolv-conf script could try to download that script from the internet without really knowing what it does thereby opening an easy security hole.

    My 2 cents 🙂

    Tauvpn, the heaviest of all.

  130. Robert

    The script can be found here:
    It comes standard with alotof/most linux distros.

  131. Nrthlight

    I could not agree more.

  132. Andy

    Hey !
    Thx for your job Proton, I’m glad to use your VPN as a privacy guard of my life on internet.
    By the way, is there any official way to correct the DNS and ipv6 leak i’m experiencing on Linux ?
    On Fedora, some websites still do know where I’m living. I can’t bear it 🙂

  133. ProtonVPN

    hi, currently our servers do not yet support ipv6. we recommend users to disable ipv6 networking capabilities while we are working on adding this feature.

  134. Michael

    re: vpn services generally:
    what ports open on the machine could be visible at the other end of the vpn?
    can the user restrict what ports are visible to only what is needed?

    also can I install it on freeBSD? ..
    (maybe could try compiling the linux version?)

  135. Teo

    How can i have the pem files please ?

  136. ProtonVPN

    hi please drop us a line via

  137. user

    DNS AND IPv6-address leak fix
    Recently I reported several leak issues and now I have a fix that works at least on my system
    To get rid of DNS and IP6-address leakage from IPv6 the following procedure
    has resolved the leaking (Verified on several proton-servers)

    Install network-manager-openvpn and its dependencies
    sudo apt-get install network-manager-openvpn network-manager network-manager-gnome network-manager-openvpn-gnome

    add the following to your .opvn configuration file at the end, but before
    the certificates

    script-security 2
    up /etc/openvpn/update-resolv-conf
    down /etc/openvpn/update-resolv-conf
    Import this configuration file into the networkmanager

    To disable leaks (IP and DNS) from IPv6 do the following:

    1 Enter gksudo gedit /etc/sysctl.conf and open the configuration file and
    2 add the following lines at the end
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    net.ipv6.conf.lo.disable_ipv6 = 1
    3 After that run $ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
    If it reports ‘1′ means you have disabled IPV6. If it reports ‘0‘ then please follow Step 4 and Step 5.
    4 Type command sudo sysctl -p you will see this in terminal:
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    net.ipv6.conf.lo.disable_ipv6 = 1
    5 Repeat above “Step 3” and it will now report 1.
    Open /etc/NetworkManager/NetworkManager.conf in an editor and change
    to this:
    Don’t forget to comment out any IPv6 hosts in your /etc/hosts file
    Disable all IP6 in the networkmanager in the IP6 tab
    reboot the – works for me!

  138. user_fan

    works great,
    ProtonVPN should hire you

  139. user

    Ubuntu 16.04 openvpn:
    IP address from IP4 is hidden but detects my IP6 ISP IP address. So openvpn does not only leak DNS but also real IP6 IP!
    I can prevent DNS leak when I do the following:
    Open /etc/NetworkManager/NetworkManager.conf in an editor and change
    to this:

  140. R.protonvpn

    Solution DNS leak linux via networkmanager: go to system > etc. > networkmanager > networkmanager.config > and than change ‘dns=dnsmasq’ into ‘#dns=dnsmasq’. Tested on ubuntu 16.04.2 LTS and worked. Let me know in the comments if it solved your DNS leak with OS info.

  141. R.protonvpn

    SOLUTION DNS LEAK LINUX Networkmanager

    sudo dpkg -i dnsmasq-base_2.76-4ubuntu1FIX1639776ubuntu1_amd64.deb

  142. redchris

    works for me (Mint 18). Thanks

  143. joffaMac

    I’m trying to set up my Netgear R8000 router which I’m running LEDE on. Using this as a rough guide [] and the config .ovpn file settings obtained via ProtonVPN Downloads for DD-WRT UDP, I saved tls-auth & ca.crt files as suggested, added the missing fields and completed all fields except for ‘mssfix 1450’ as I couldn’t locate that anywhere. When I click start in the OpenVPN instance, nothing happens. I don’t have logs set up as that looks all too hard (andsomething to read up on way later). Can anyone suggest what I may have done wrong.

  144. Dias

    Bonjour, i’am working on Microsoft Windows 10 and this tutorial not working on VirtualBox Kali Linux …no internet connection. Pleaz need your help

  145. buffalo

    This helped resolve my DNS leaking and IP leaking. I am new to VPNs but this patch for network-manager helped
    He released a fix for Ubuntu 17.04 (perhaps it applies to earlier versions) that resolved an issue with network-manager leaking DNS with VPNs. Please check out the comments further down the page written by Stommel.

    He later links to this page.

    it fixed my issues.

  146. Sby

    How does the device count (in terms of pricing plan) work if I use ProtonVPN on my router (OpenWRT)? Are all traffic going out from the same router treated as one “device”?

  147. Sh

    What login vpn for linux?

  148. ProtonVPN

    please use your openvpn credentials to log in (not your account credentials)

  149. JY

    This doesn’t work

  150. machavez

    I suggest to check out the airvpn client for Linux. It is easy to use and have a lot of features.

  151. David DARR

    Can this be incorporated into ddwrt?

  152. ProtonVPN

    yes, we’ll be updating with guides in the near future

  153. Dave

    As well as PfSense?

  154. John

    DNS leaks with new settings, how would I protect against this?

  155. ProtonVPN

    hi John, please drop us a line at with a detailed description of your setup and how you connect (cli vs nm)

  156. Ken

    Thank you for your continued efforts to support the Linux community. I just created a VMWare virtual machine Ubuntu Mate 16.04 + current updates + openvpn packages per your instructions. I configured a vpn connection using from your Linux config files collection using network manager – again per your instructions. When I connect with the vpn I observe that my assigned address is which appears to be in Iceland. So far, so good.

    I accessed a DNS leak check site ( and ran a test. It confirms my address but the leak test results are:

    Real DNS IP:
    DNS Host:
    Country: United States
    City: Manassas LeaseWeb USA Inc. is in fact the address of my router/gateway computer which provides Internet access to my LAN. It is running CentOS 7.3 and is accessing your US vpn server file. Openvpn is run from the command line and uses my home made DNS leakage mitigation process.

    I further observe that your Linux .ovpn file has these lines added to the end. These scripts are SUPPOSED to address DNS leakage on Linux.

    script-security 2
    up /etc/openvpn/update-resolv-conf
    down /etc/openvpn/update-resolv-conf

    With the vpn connected I observe tthat

    /etc/resolv.conf is linked to /run/resolvconf/resolv.conf

    the latter file contains:

    # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)

    Disconnecting the vpn make no change to the link nor to the target resolve.conf file. the nameserver is still

    Perhaps I have made an error in configuring the test machine or perhaps there is some more work to do (or perhaps it is an issue with the Mate desktop.) Please let me know if I can provide some additional information or do some additional testing for you.

    Issue #2 – Openvpn when used via network manager does NOT fail in a safe direction. By that I mean that when the vpn connection drops – either by user action or some network anomaly/blip etc. – the computer will continue to access the Internet WITHOUT the benefit/protection of the vpn.

  157. ProtonVPN

    Hi Ken, we’ve submitted a ticket for you via the support form, our support team should get back to you with detailed instructions soon.

  158. linux

    I’m using RHEL 7 and tried to use the latest config files adjusted for linux from CLI, but still DNS leaks. Is there any reliable solution? Thanks

  159. ProtonVPN

    hi it could be that the required files for resolf-config (last three lines in linux config files) are located in a different directory for you. can you verify that these exist or alternatively adapt the path to the location on your machine?

  160. Paranoid Android

    Is there a reason why the file “”, which was included in the zip of ovpn files a couple months ago, is no longer included in the most recent download? Does this mean it’s no longer safe to use that particular configuration file?

  161. ProtonVPN

    We just brought our Swiss Secure core servers online and shifted the US connection to go via CH. the IS-US connection is depreciated and will be taken offline in the future, hence we removed it from zip file. Recommend to use the CH-US one instead

  162. Charlie

    Systemd has a bug in Ubuntu 17.04 which prevents DNS leak prevention ( ). But following the instructions in this comment fixed it for me:

    [admin edit: removed quote due to length. It can be found in link below]


  163. ProtonVPN

    thanks for the suggestion. We’ll introduce platform specific config files soon which will have the necessary script security lines included to run without DNS leak from CLI

  164. Charlie

    Glad to hear it!

  165. EEReughrug9547574

    Notice that, currently, Ubuntu 17.04 suffers from a bug in network-manager-openvpn which prevents the import of .ovpn config files:
    I found that using the terminal works with the following command: sudo openvpn –config /path/to/protonvpn/configfile.ovpn

  166. cc

    Any chance that the issue has been solved in the new version of Network Manager 1.8? (

  167. David

    Any setup examples for tomato router? Thanks!

  168. Van

    Following the instructions I complete the installation successfully for Linux, Mac, iOS. Only iOS changes my IP address. The Mac warns of the IP address being unchanged. Linux doesn’t warn and isn’t behaving as intended.

  169. Robert Roze

    For getting ProtonVPN to work on Linux, Step 4 (Configure a VPN connection), the end of the paragraph reads:
    In the editing page, enter the OpenVPN credentials from step 3 in the ‘username’ and ‘password’ field respectively, and hit save.

    But, when I enter my ProtonVPN username and password, the “Save” button remains grey/dis-abled. There is no way to save. How can I continue?

  170. ProtonVPN

    This sounds like you might need separate OpenVPN cert and key files because your network manager doesn’t recognize the ovpn config file properly (similar to Ubuntu 14.04LTS issue). Please contact us at support@ and let us know your OS version.

  171. Gabriel

    I’m glad to see from a comment above that you are working on a native Linux client. In the interim, would it be possible to provide user-friendly guides on how to configure/test the built in networking tools & OpenVPN for:
    > how to protect against DNS/IP leaks + verification process
    > how to prevent any outbound connections that aren’t going through the VPN + verification process

    My biggest issue with VPN services (and self-described secure services generally) is a lack of transparency about how their technologies function and what their weak points can be, and without making verification processes (and notifications) clear, the essential element of trust is compromised to some degree.

    In any case, speeds are looking great compared to my previous provider and I intend on sticking with you guys. Thank you for your work!

    (I am currently using Antergos+KDE)

  172. ProtonVPN

    Thanks for the suggestions and encouraging words. We’ll be adding details to our guides and publish more technical details about our configurations as we get closer to launch. Our goal is to be as transparent as possible so that you know whom you’re trusting with your VPN connection.

  173. Paul Bonneau

    Comment by Ken Taylor (Mar 19): “Network Manager tends to simply switch to an direct Internet connection in the case of a VPN disconnect.”

    If true, this is unacceptable, and this procedure should be re-written to not use Network Manager.

    I am using Lubuntu 16.04LTS. I failed to connect with this procedure. At the end of step 4, a window popped up saying, “Enter password for keyring ‘Default keyring’ to unlock”. It is unclear what password is wanted, I tried every one I could think of. In fact that is another problem, entirely too many passwords and it is unclear which is wanted where, or whether they might be stored in some password manager or have to be manually entered every time (the discussion at the end of step 3 was not clear about this).

    “Click on your connection symbol, in the system menu on the top right” This had me going for a while. My menu bar is at the bottom, and I finally understood you wanted to enter the Network Manager. You should say so (although again, maybe we should not use Network Manager for vpn).

  174. Neil

    I am currently using ProtonVPN on my Ubuntu workstation using the setup steps outlined above. My ISP is Spectrum, previously known as Time Warner Cable (I’m in the US).

    My question is, do my outbound requests go from my ISP’s DNS server to ProtonVPN’s servers, or does ProtonVPN circumvent my ISP’s DNS server? The latter would be ideal for privacy purposes.

    Also, how would I be able to test this out? I’m a novice Linux user with knowledge of basic everyday terminal commands, so please be as specific as possible.

    Thank you!

  175. ProtonVPN

    Our exit nodes are set up as their own DNS, therefore if everything is running correctly, you will not have to rely on the DNS of your ISP.

  176. Dan S

    Do you plan to release a Linux application similar to the Windows application, or will Linux users just use OpenVPN?

  177. ProtonVPN

    we do plan to support mac and linux natively and development is currently in the early stages. no release date set yet. stay tuned

  178. Sean

    For anyone running this from shell or terminal in a Unix environment this is how to set it up.
    My example is running on a DD-WRT router with a usb thumb drive mounted at /opt. My working directory is /opt/openvpncl/proton/. You can put it wherever you want, just make sure to change all paths in the following to suite your needs.

    So you need 6 files in your working directory:


    I will now breakdown the contents of each file. Just copy and paste between the solid lines.

    note: replace (enter server address here) with the server you wish to connect to.
    example: remote 1194
    You can use either the domain name or ip address of the server.
    ca /opt/openvpncl/proton/proton_ca.crt
    management 16
    management-log-cache 100
    verb 3
    writepid /var/run/
    resolv-retry infinite
    script-security 2
    dev tun1
    proto udp
    cipher aes-256-cbc
    auth sha512
    auth-user-pass /opt/openvpncl/proton/auth.conf
    remote (enter server address here) 1194
    comp-lzo adaptive
    tun-mtu 1500
    mtu-disc yes
    tls-auth /opt/openvpncl/proton/proton_tls.key 1
    tun-mtu-extra 32
    mssfix 1450
    ping 15
    ping-restart 0
    reneg-sec 0
    remote-cert-tls server
    key-direction 1

    note: replace each line with your username and password respectively.

    This file contains your the Certificate

    This file contains the TLS Key.
    —–BEGIN OpenVPN Static key V1—–
    —–END OpenVPN Static key V1—–
    This file contains iptables for routing.
    iptables -D POSTROUTING -t nat -o tun1 -j MASQUERADE
    iptables -I POSTROUTING -t nat -o tun1 -j MASQUERADE
    iptables -D INPUT -i tun1 -j ACCEPT
    iptables -D FORWARD -i tun1 -j ACCEPT
    iptables -D FORWARD -o tun1 -j ACCEPT
    iptables -I INPUT -i tun1 -j ACCEPT
    iptables -I FORWARD -i tun1 -j ACCEPT
    iptables -I FORWARD -o tun1 -j ACCEPT
    stopservice dnsmasq -f
    startservice dnsmasq -f
    cat /tmp/resolv.dnsmasq > /tmp/resolv.dnsmasq_isp
    env | grep ‘dhcp-option DNS’ | awk ‘{ print “nameserver ” $3 }’ > /tmp/resolv.dnsmasq
    cat /tmp/resolv.dnsmasq_isp >> /tmp/resolv.dnsmasq
    This file deletes the iptables that were created in the above file and is used when shutting down the VPN connection.
    iptables -D INPUT -i tun1 -j ACCEPT
    iptables -D POSTROUTING -t nat -o tun1 -j MASQUERADE

    Now that your working directory is populated with the above files all that’s needed is to run the following command from the terminal to start the connection:
    openvpn –config /opt/openvpncl/proton/openvpn.conf –route-up /opt/openvpncl/proton/ –route-pre-down /opt/openvpncl/proton/ –daemon
    To check if your connected run the following from a terminal:
    curl -s

    This will give you your ip address and location information to verify you’re connected to the VPN.
    Next step would be to setup a startup script to start the VPN on startup. I’ll leave that up to you.

    Hope this helps. Took me a while to figure it all out! 😛

  179. sciro

    Thanks for sharing all your hard work and knowledge!

  180. Username

    You can make it run on startup by un-commenting the line “AUTOSTART=”all”” in “/etc/default/openvpn”, though this may require your files to be in “/etc/openvpn” rather than “/etc/opnvpn/protonvpn”.

  181. Sean

    Ok Here’s how you get this setup on DD-WRT via the GUI:

    -Login to the router’s web GUI. In my case,
    -Navigate to Services Tab
    -Navigate to VPN sub Tab
    -Scroll down OpenVPN Client click Enable
    -Set the following settings:
    Server IP/NAME: #Change to whatever server you’d like to connect to
    Port: 1194
    Tunnel Device: TUN
    Tunnel Protocol: UDP
    Encryption Cipher: AES-256 CBC
    Hash Algorithm: SHA512
    User Pass Authentication: Enable
    Username: yourusername
    Password: yourpassword
    Advanced Options: Enable
    TLS Cipher: None
    LZO Compression: Adaptive
    NAT: Enable
    Firewall Protection: Enable
    IP Address: Leave Blank
    Subnet Mask: Leave Blank
    Tunnel MTU Setting: 1500
    Tunnel UDP Fragment: Leave Blank
    Tunnel UDP MSS-Fix: Disable
    nsCertType verification: Leave Un-Checked
    TLS Auth KEY: Insert Auth Key here
    Additional Config: tun-mtu-extra 32
    mssfix 1450
    ping 15
    ping-restart 0
    reneg-sec 0
    remote-cert-tls server
    key-direction 1
    Policy based Router: Leave Blank
    PKCS12 Key: Leave Blank
    Static Key: Leave Blank
    CA Cert: Insert CA Certificate here
    Public Client Cert: Leave Blank
    Private Client Key: Leave Blank
    -Click Apply Settings
    -Now give it a few seconds then navigate to Status Tab
    —Navigate to VPN Sub Tab
    You should see “Client: CONNECTED SUCCESS” along with Local Address and Remote address.
    Fire-up a browser and google “what’s my ip”. You should be up and running.


  182. Walker

    Worked like a charm! Appreciate it!

  183. Sean

    Some progress.

    Firstly, I noticed the default tunnel device is tun0 and so I changed my route-up and route-down scripts to reflect that.

    Log files indicate
    “WARNING: Failed running command (–up/–down): external program fork failed”

    This is due to script-security being set too high. And so I added script-security 2 to the openvpn.conf file in order to allow running of external scripts.

    Ran it again and BAM just like that I was connected and traffic was being routed through the tunnel.
    Running “curl -s” revealed confirming my ip address was that of the vpn server.

    Something is still wrong with the routing however. The router itself is connect to the VPN. I can ping and get a response. However all devices on the network are dead in the water. No WAN access. ping returns no response.

    That’s as far as I got so far with DD-WRT.

  184. Sean

    So I wanted to start simple. Run openvpn using one of protonvpn’s config files. I created my openvpn.conf file to be verbatim from

    Then ran the following command:
    openvpn –config /opt/openvpncl/proton/openvpn.conf –route-up /opt/openvpncl/proton/ –route-pre-down /opt/openvpncl/proton/

    Log File:
    Apr 2 18:41:36 router daemon.notice openvpn[21675]: OpenVPN 2.3.8 arm-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Oct 24 2015
    Apr 2 18:41:36 router daemon.notice openvpn[21675]: library versions: OpenSSL 1.0.2d 9 Jul 2015, LZO 2.09
    Apr 2 18:42:04 router daemon.warn openvpn[21698]: WARNING: –ping should normally be used with –ping-restart or –ping-exit
    Apr 2 18:42:04 router daemon.warn openvpn[21698]: NOTE: starting with OpenVPN 2.1, ‘–script-security 2’ or higher is required to call user-defined scripts or executables
    Apr 2 18:42:04 router daemon.notice openvpn[21698]: Control Channel Authentication: tls-auth using INLINE static key file
    Apr 2 18:42:04 router daemon.notice openvpn[21698]: Outgoing Control Channel Authentication: Using 512 bit message hash ‘SHA512’ for HMAC authentication
    Apr 2 18:42:04 router daemon.notice openvpn[21698]: Incoming Control Channel Authentication: Using 512 bit message hash ‘SHA512’ for HMAC authentication
    Apr 2 18:42:04 router daemon.notice openvpn[21698]: Socket Buffers: R=[180224->131072] S=[180224->131072]
    Apr 2 18:42:04 router daemon.notice openvpn[21698]: UDPv4 link local: [undef]
    Apr 2 18:42:04 router daemon.notice openvpn[21698]: UDPv4 link remote: [AF_INET]
    Apr 2 18:42:04 router daemon.notice openvpn[21698]: TLS: Initial packet from [AF_INET], sid=e4a59209 aefffd23
    Apr 2 18:42:04 router daemon.warn openvpn[21698]: WARNING: this configuration may cache passwords in memory — use the auth-nocache option to prevent this
    Apr 2 18:42:05 router daemon.notice openvpn[21698]: VERIFY OK: depth=2, C=CH, O=ProtonVPN AG, CN=ProtonVPN Root CA
    Apr 2 18:42:05 router daemon.notice openvpn[21698]: VERIFY OK: depth=1, C=CH, O=ProtonVPN AG, CN=ProtonVPN Intermediate CA 1
    Apr 2 18:42:05 router daemon.notice openvpn[21698]: Validating certificate key usage
    Apr 2 18:42:05 router daemon.notice openvpn[21698]: ++ Certificate has key usage 00a0, expects 00a0
    Apr 2 18:42:05 router daemon.notice openvpn[21698]: VERIFY KU OK
    Apr 2 18:42:05 router daemon.notice openvpn[21698]: Validating certificate extended key usage
    Apr 2 18:42:05 router daemon.notice openvpn[21698]: ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
    Apr 2 18:42:05 router daemon.notice openvpn[21698]: VERIFY EKU OK
    Apr 2 18:42:05 router daemon.notice openvpn[21698]: VERIFY OK: depth=0,
    Apr 2 18:42:05 router daemon.notice openvpn[21698]: Data Channel Encrypt: Cipher ‘AES-256-CBC’ initialized with 256 bit key
    Apr 2 18:42:05 router daemon.notice openvpn[21698]: Data Channel Encrypt: Using 512 bit message hash ‘SHA512’ for HMAC authentication
    Apr 2 18:42:05 router daemon.notice openvpn[21698]: Data Channel Decrypt: Cipher ‘AES-256-CBC’ initialized with 256 bit key
    Apr 2 18:42:05 router daemon.notice openvpn[21698]: Data Channel Decrypt: Using 512 bit message hash ‘SHA512’ for HMAC authentication
    Apr 2 18:42:05 router daemon.notice openvpn[21698]: Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 2048 bit RSA
    Apr 2 18:42:05 router daemon.notice openvpn[21698]: [] Peer Connection Initiated with [AF_INET]
    Apr 2 18:42:07 router daemon.notice openvpn[21698]: SENT CONTROL []: ‘PUSH_REQUEST’ (status=1)
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: PUSH: Received control message: ‘PUSH_REPLY,redirect-gateway def1,dhcp-option DNS,sndbuf 524288,rcvbuf 524288,explicit-exit-notify,route-gateway,topology subnet,ping 60,ping-restart 180,ifconfig 10.8.8
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: OPTIONS IMPORT: timers and/or timeouts modified
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: OPTIONS IMPORT: explicit notify parm(s) modified
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: OPTIONS IMPORT: –sndbuf/–rcvbuf options modified
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: Socket Buffers: R=[131072->360448] S=[131072->360448]
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: OPTIONS IMPORT: –ifconfig/up options modified
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: OPTIONS IMPORT: route options modified
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: OPTIONS IMPORT: route-related options modified
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: OPTIONS IMPORT: –ip-win32 and/or –dhcp-option options modified
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: OPTIONS IMPORT: peer-id set
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: OPTIONS IMPORT: adjusting link_mtu to 1637
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: TUN/TAP device tun0 opened
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: TUN/TAP TX queue length set to 100
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: /sbin/ifconfig tun0 netmask mtu 1500 broadcast
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: /sbin/route add -net netmask gw
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: /sbin/route add -net netmask gw
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: /sbin/route add -net netmask gw
    Apr 2 18:42:08 router daemon.warn openvpn[21698]: WARNING: External program may not be called unless ‘–script-security 2’ or higher is enabled. See –help text or man page for detailed info.
    Apr 2 18:42:08 router daemon.warn openvpn[21698]: WARNING: Failed running command (–route-up): external program fork failed
    Apr 2 18:42:08 router daemon.notice openvpn[21698]: Initialization Sequence Completed
    Apr 2 18:44:02 router daemon.err openvpn[21640]: event_wait : Interrupted system call (code=4)
    Apr 2 18:44:02 router daemon.err openvpn[21698]: event_wait : Interrupted system call (code=4)
    Apr 2 18:44:02 router daemon.notice openvpn[21698]: SIGTERM received, sending exit notification to peer
    Apr 2 18:44:02 router daemon.notice openvpn[21640]: SIGTERM[hard,] received, process exiting
    Apr 2 18:44:03 router daemon.notice openvpn[21698]: /opt/openvpncl/proton/ tun0 1500 1637 init
    Apr 2 18:44:03 router daemon.err openvpn[21698]: WARNING: Failed running command (–up/–down): external program fork failed
    Apr 2 18:44:03 router daemon.notice openvpn[21698]: Exiting due to fatal error

    Here’s my script:
    iptables -D POSTROUTING -t nat -o tun1 -j MASQUERADE
    iptables -I POSTROUTING -t nat -o tun1 -j MASQUERADE
    iptables -D INPUT -i tun1 -j ACCEPT
    iptables -D FORWARD -i tun1 -j ACCEPT
    iptables -D FORWARD -o tun1 -j ACCEPT
    iptables -I INPUT -i tun1 -j ACCEPT
    iptables -I FORWARD -i tun1 -j ACCEPT
    iptables -I FORWARD -o tun1 -j ACCEPT
    stopservice dnsmasq -f
    startservice dnsmasq -f
    cat /tmp/resolv.dnsmasq > /tmp/resolv.dnsmasq_isp
    env | grep ‘dhcp-option DNS’ | awk ‘{ print “nameserver ” $3 }’ > /tmp/resolv.dnsmasq
    cat /tmp/resolv.dnsmasq_isp >> /tmp/resolv.dnsmasq

    Here’s my script
    iptables -D INPUT -i tun1 -j ACCEPT
    iptables -D POSTROUTING -t nat -o tun1 -j MASQUERADE

  185. Sean

    Still need to get up and running DD-WRT.. Anyone out there experimenting with this? I’d love to compare notes. I’m running OpenVPN 2.3.8. I can get the tunnel up but for some reason the routing is all messed up and all devices have no wan access. I’ll keep working on it and post my progress. Any help from the Proton team and the community would be greatly appreciated. DD-WRT via shell would be most useful to me. But via the GUI would also help and be more user friendly for the general population.

  186. Richard

    On currently trying <out ProtonVPN on Ubuntu 16;04(I'll try it on my Windows 10 PC later) and so far I'm trying to figure where I messed up,because I've tried 2 servers,but the connecttion fails.

    AFAIK,I got steps 1 and 2 correct,so that only leaves step 3.I imported a vpn connection,entered a server,plus my OpenVPN ID and password from my ProtonMail backoffice,so I can't figure out what I've missed.

    Any ideas?

    Android app?

  187. Dexter Fryar

    Looks like there are no name servers set. Connected using the command line on Ubuntu 16.10. You can ping a specific address, but I had to manually edit /etc/resolv.conf in order to get name resolution working.

    Any chance this will be fixed on PM’s side?

  188. Dexter Fryar

    Found the answer here. Not sure why this is not part of the downloaded config files, Proton, can you answer?

    add the following to the end of the .ovpn file

    script-security 2
    up /etc/openvpn/update-resolv-conf
    down /etc/openvpn/update-resolv-conf

  189. Ted

    I’m using Mint 17 and am trying to get the connection manager to work.

    I go through the procedure listed above and select the .ovpn config file. Then I change the authentication type to password, but it wont let me save it without a CA Certificate file, which it says needs to be .pem, .crt, .key, or .cer. Is there a way to convert the .ovpn file to the appropriate file type? Thanks!

  190. ProtonVPN

    Mint17’s network manager has an issue with importing integrated config files (where the ca is in the ovpn file) similar to Ubuntu 14.04. Upgrading to a later Mint version should solve this problem. Alternatively drop us a line and we’ll send you the necessary files.

  191. Luxlin

    Thanks, i got my answer for a question I posted one minute before 🙂 . But, at least, there’s a way to make it works (it works with me/Cinnamon 17.2).
    1) Download and extract the zip package with the OpenVPN configuration files
    2) Open Terminal and set-up OpenVpn (only if you need it) :
    sudo apt-get install openvpn
    sudo apt-get install network-manager-openvpn-gnomen
    3) enter : sudo openvpn /[path to.Proton .ovpn file] and follow instructions (enter login and password).
    You should get “Initialization Sequence Completed” if it’s working.

  192. ProtonVPN

    glad that it worked for you. Do note that currently, the CLI connection will per default not accept the DNS options which are pushed by our servers once you connect – hence we recommend the network manager approach.

  193. s.p

    I am also having a problem when using one of the free server configuration files: the CA certificate does not appear. You mentioned on previous posts that we could be sent the necessary files?
    Thank you

  194. ProtonVPN Team

    Hello, if the .pem file does not appear automatically, please check whether you will be able to connect via Terminal instead. If you need Certificate and Key files separately, please write us an e-mail via and we will send them to you.

  195. void

    Using NetworkManager (ver. under Linux Mint (ver. 17.3) I had a similar import problem for the CA certificate and TLS authentication key. What’s worked so far for me: In a text editor opened the desired openvpn configuration file (.ovpn) and copied the ‘—–BEGIN CERTIFICATE[…]’ section to new file saved as .pem; and the ‘—–BEGIN OpenVPN[…]’ section to a new file saved as .key. Added the .pem filename to Edit Connections>…>VPN tab>CA Certificate; then selected the Advanced button on the same tab and under the new dialog’s TLS Authentication tab checked ‘Use additional TLS authentication’; entered the .key filename for ‘key file’; and set ‘key direction’ to 1 (per the .ovpn).

  196. Chris C

    I’m interested in having steps for configuring pfSense. I have managed to establish a connection, however I have been unable to ping the gateway address.

  197. Chris C

    I managed to figure it out.

    System -> Cert. Manager
    CAs tab
    Add button
    Descriptive name:
    Method: Import an existing Certificate Authority
    Certificate data: <contents of section of ovpn file>

    VPN -> OpenVPN
    Clients tab
    Add button
    Server mode: Peer to Peer (SSL/TLS)
    Protocol: UDP
    Device mode: tun
    Interface: any
    Local port:
    Server host or address:
    Server port: 1194
    Proxy fields: blank
    Server hostname Resolution: Checked
    Description: Pick something
    Username: OpenVPN username
    Password: OpenVPN password
    TLS authentication: checked
    Key: < section of ovpn file>
    Peer Certificate Authority:
    Client Certificate: None (Username and/or Password required)
    Encryption algorithm: AES-256-CBC (256bit)
    Auth digest algorithm (SHA512 (512-bit)
    Hardware Crypto:

    IPV4 Tunnel Network: Blank
    IPv6 Tunnel Network: Blank
    IPv4 Remote Network(s): Blank
    IPv6 Remote Network(s): Blank
    Limit outgoing bandwidth:
    Compression: Enabled with Adaptive Compression
    Topology: Subnet
    Type-of-service: Checked
    Disable IPv6: Checked
    Don’t pull routes: Unchecked
    Don’t add/remove routes: Unchecked
    Custom options: tun-mtu 1500,tun-mtu-extra 32,mssfix 1450,persist-key,persist-tun,ping 15,ping-restart 0,ping-timer-rem,reneg-sec 0,remote-cert-tls server,auth-user-pass,pull,fast-io,key-direction 1
    Verbosity: 3

    Interfaces -> Assign
    Available network ports:
    Add button
    Click on new interface
    Enable: Checked
    IPv4 Configuration Type: None (handled by OVPN)
    IPv6 Configuration type: None
    MAC Address: Blank
    MTU: 1500
    MSS: 1450

    At this point the connection is established. use NAT/firewall rules/static routes to route traffic to the VPN.

  198. ProtonVPN

    Hi Chris, thanks for helping out other users with details on what worked for you. Happy testing

  199. Raven

    This worked for me as well but I had to change my OpenVPN login from the default one to something else because auth kept failing

  200. DebKDE

    Debian Testing on KDE worked quickly and without any problems.
    To get it working using the Network Manager GUI:
    1.) open the connection editor (e.g. right click the wifi symbol in the tray and Configure Network Connections)
    2.) Click the Connection pull-down and select Import VPN
    3.) Choose the proton .ovpn file
    4.) Choose whether to copy certs to ~/.local/share/networkmanagement/certificates/ (either choice works)
    5.) Choose the newly imported protonVPN connection from the list and Edit it
    6.) Add the correct username and password under VPN(openvpn) tab and click OK
    7.) Test the connection (it should work!)

  201. john

    Hey DebKDE,

    Dumb question: Did you look at the logfile to ensure that NetworkManager is doing host authentication? I checked this with Debian Jessie (stable), and it didn’t look to me like that rev of nm-openvpn-gnome did the host authentication check.


  202. Gabriel

    Thanks! I got ProtonVPN working on Antergos/KDE with these steps.

  203. tnorth

    Thanks, works for me as well on Fedora 25, x86_64, SELinux enabled.

  204. Dave X

    “Click on your connection symbol, in the system tray on the top right and select ‘Edit connections’.”

    Where is it? I don’t see this anywhere on Ubuntu 16.

  205. Lou Gro

    Just got this up and running on Ubuntu 16. Easy setup and works great! Thank you Proton for this excellent beta.

  206. fishstick

    Are there any official instructions or suggestions fit using ProtonVPN on a router to direct all network traffic through it?
    E.g. using the OpenVPN options in an open-source firmware like dd-wrt?

  207. t0dd

    Instructions for Fedora Linux users…

    1. sudo dnf install NetworkManager-openvpn-gnome openvpn

    2.a. Download file as indicated in the instructions.
    2.b. …
    mkdir ~/.local/share/protonvpn
    cp ~/.local/share/protonvpn/
    cd ~/.local/share/protonvpn

    3. Follow original instructions

    4. On GNOME desktop…
    4.a. Upper right corner, open the System Menu (it’s not the System Tray, by the way)…
    Settings icon > Network > Bottom-left, click “+” > Import from file…
    (you will have to start typing “.local/” to get to the hidden .local file)
    Selection a server in your region.
    4.b. Input your OpenVPN login (User name) and password and click Add
    4.c. Close the Settings menu dialogue

    5. On GNOME Desktop, navigate to the upper right corn and open the System Menu again
    Click on VPN Off and scroll/browse down to one of the newly configured VPN options.
    Click the on/off slider
    5.a. Alternatively, you can click on Network Settings, browse to your VPN item, click on it, and ensure the ON/OFF slider is set to ON


  208. t0dd

    The Red Hat family? In particular… Fedora?

  209. Sean

    I’ve tried everything to get this to work with DD-WRT.. No dice. Via the web interface or by manually starting openvpn via ssh. Has anyone had any luck with setting this up on DD-WRT? I’m running Kong 28000M. I’d appreciate any help. Cheers!

    Here’s my .conf file:

    ca /opt/openvpncl/proton/proton_ca.crt
    tls-auth proton_tls.key 1
    management 16
    management-log-cache 100
    dev tun1
    remote 1194
    proto udp
    resolv-retry infinite
    cipher AES-256-CBC
    auth SHA512
    verb 3
    script-security 2

    tun-mtu 1500
    tun-mtu-extra 32
    mssfix 1450

    ping 15
    ping-restart 0
    reneg-sec 0

    remote-cert-tls server
    auth-user-pass /opt/openvpncl/proton/auth.conf

  210. Ken Taylor

    Thank you for the great service (and email) ! I have been testing ProtonVPN on CentOS 7.3 with the Mate desktop. So far, so good. I am running OpenVPN on a dedicated tiny PC which serves as a router and DHCP server for my home LAN.

    I am testing the VPN from Network Manager and from the command line as describes above. Based on my experience with another VPN service which I use, I prefer the command line method as it will cause all Internet traffic to stop if/when the VPN connection is lost. Network Manager tends to simply switch to an direct Internet connection in the case of a VPN disconnect. Not cool!

    I have also been doing some leakage testing. The only concern which I have been unable to resolve is potential DNS leakage. The command line approach does not seem to offer any way to mitigate this. Nor does Network Manager (although I read that Ubuntu is supposed to deal with DNS leakage – I will have to test). That said…

    Can you provide the addresses for a ProtonVPN DNS? That would seem to be a way to partially mitigate the leakage issue. Any DNS requests would be seen only by the ProtonVPN DNS server – which we can trust.


  211. Jezza

    On an up-to-date Fedora 25 Desktop with Gnome shell, OpenVPN keeps asking for and rejecting my login credentials – which have been stored and which are correct according to what is saved in my ProtonMail VPN settings – and that’s it.

    Trying on command line with

    sudo openvpn –openvpn {path/to/config/file.ovpn} –auth-user-pass {path/to/text/file/with/username&password}

    results in failure, as well:

    Sun Mar 19 12:12:03 2017 AUTH: Received control message: AUTH_FAILED
    Sun Mar 19 12:12:03 2017 SIGTERM[soft,auth-failure] received, process exiting

    What to do?

  212. ProtonVPN

    Hi Jezza, if this issue persists, please contact our support team via the form at the bottom

  213. Alain

    I use the Ubuntu version 16,10 and the program ProtonVPN works perfectly. I made an attempt with Win 7 but could not finalize the installation. It seems that I do not have sufficient permissions.

  214. Paranoid guy

    Hi, anyone tried this with DD-WRT? I’m using the latest KONG build Firmware: DD-WRT v3.0-r31520M (03/01/17)

  215. !acompletenoob

    Hey, I would also benefit from getting some basic dd-wrt instructions here.

  216. !acompletenoob

    ok may I am a complete noob problem appears to be solved here just 48 hours ago:

  217. Sean

    See my post below. I got it up and running on DD-WRT v3.0-r28000M kongac (10/24/15).
    Both GUI and Terminal write ups are below.

  218. O

    I’m unable to save the imported vpn information without a .crt file. Is there one available?

  219. ProtonVPN

    Hi O, reach out to the support team, they’ll be happy to supply one:

  220. chee

    this just always times out for me ;-;

  221. Lukas

    dot / period / ” . ” in username gives auth error, thus not connecting.
    Removing the dot fixes the issue, however i believe dots should be allowed!

  222. Sven

    Thank’s!!!! This works very well, and extremely easy to setup.

    I’m using VPN from privatevpn since several years but this was far easier to set up. Im running different linux installation on desktop and laptop, e.g. siduction and kubuntu. The only problem I had was to understand which password I was suppose to enter, since there are several to chose from. ProtonVPN, openvpn within protonmail, protonmail login password etc. Also, I dont understand the difference between the different VPN-files from the same country in the zipfile, again, documentation I guess.

    Overall: Well done,

    Thank you

  223. iw

    Question to DNS leak protection in linux.
    I recognized that a dns leak test showed some non protonmail dns server. I was curious and tried out the ProtonVPN client in windows and the same dns leak test was ok (only 1 dns server from proton vpn showed up).

    So is there a way to achieve this in linux too? I’m using Ubuntu 16 LTS.

  224. protonboy

    I’m no expert, but in my experience you need openvpn .conf files with the certificates broken out into different files for VPN use within command line Linux. Having to manually break the certs out is a pain.

  225. protonboy

    To update on this, I got the .ovpn files working via command line, but not via KDE’s NetworkManager gui.

    Just note that having to manually break out the certs is a frequent complaint by ThatOnePrivacyGuy (very well respected VPN and Email reviewer for people dedicated to privacy), example here:

  226. ProtonVPN

    Hi protonboy,
    in our current setting, latest 16.04LTS reads the integrated .ovpn files without a hitch. If you need the separated cert files, please contact support and we’ll get back to you.

  227. Jom

    How about Android… Using openvpn client it fails with a failure to verify server cert… Any ideas?

  228. ProtonVPN

    Hey Jom, check here

  229. leboural

    I’ve tested openvpn connection on Android. Il have an error on certificate. Is it normal ?

  230. Walker Foster

    Try using OpenVPN for Android by Arne Schwabe. Just import the .ovpn config file and enter username and password when prompted. I haven’t had any issues.

  231. ProtonVPN

    There is now also a step by step guide for android here

  232. MARTIN

    Experiencing troubleshooting wih Ubunu Mint Can get connection.

  233. ProtonVPN

    Hi, please contact support and we’ll be happy to help.

  234. DebianUser

    Any chance we could get instructions for set-up using connman? There’s also connman-vpn.

  235. Android User

    How can I connect on Android? I tried OpenVPN Client but it needs a certificate which I didn’t find on this website.

  236. ProtonVPN

    Hi Android User, currently the OpenVPN Connect app on Android has issues with our config files. We’re aware of the issue and are working on a fix and we’ll be distributing platform specific config files in the near future.

  237. Depra

    Great, thank you.
    I hope for it soon.

  238. Protonson

    Android support, this is incredible! Doing the lord’s work!

  239. Perica

    If you use opensource ‘OpenVPN for Android’ app ( everything is perfect. You can find it on Google Play or F-Droid.

  240. ProtonVPN

    Hi, check out our android guide:

  241. Peter Pan

    Ubuntu. Installed. Good How-To. Works like a charm. You guys are doing great work!

  242. Kaufas Brady

    There appears to be a bug with network-manager-openvpn-gnome wherein the applet crashes when trying to “import a saved OpenVPN configuration”. Would it be possible to add an example which shows how you’d go about entering one of the ovpn files manually?

  243. storman_norman

    Hi there, I’m excited to start testing this service!

    If we have troubleshooting questions, whom should we email?


  244. ProtonVPN

    Hi storman_norman, you can always reach our support team via the support form at the bottom.

  245. Dorothe

    The link
    “Learn more about how two pairs of credentials increases security of ProtonVPN.” is broken.

  246. ProtonVPN

    Thanks, fixed.

  247. DanielSweden

    Hello Proton VPN Team!

    I tried ProtonVPN on Debian Jessie. It works just perfect with following command, no GUI installed.

    daniel@lnxdeb:~/protonvpn$ sudo /usr/sbin/openvpn –auth-nocache –config

    What is the price of ProtonVPN service?


    Just trying…:

    sudo openvpn –config [path to.Proton .ovpn file] –auth-user-pass [path to file containing username and password on 2 lines] works too.

    Thank you !

  249. Nils


    Thank you for this complementary service. However, I cannot succeed to make it work on Plasma 5.9 (KDE desktop). I have nor errors neither logs describing what happens but the connection never work. Are you only supporting gnome or will you look at KDE desktop too?

    Furthermore, whatever happen, it looks like I cannot change the password for the openvpn login in the user settings of protonmail. It says that everything is cool when I click on “save” but when I reload the page, it is the old password which is displayed.

    Keep up the great work.
    Thank you!

  250. Pelet

    Issue sorted with applet on Linux Mint 17-32 Bits. No help required thank you ! Please delete my comments and apologies for the unnecessary trouble

  251. Luxlin

    Hi, what have you done? I experience trouble to setup the editing page, because an extra cert is required and there is none in the downloaded folder…

  252. ProtonVPN

    Hi Luxlin, drop us a line at support@ and we’ll supply the necessary cert and key files. While they are already included in the ovpn file, some distro versions have trouble parsing the file correctly (e.g. ubuntu 14.04lts and its cousins)

  253. Don

    The link in section 3 is also broken. It should be (minus the extra characters at the end).

  254. ProtonVPN

    Thanks, fixed!

  255. Pelet

    Hi Guys.
    I am running Linux Mint 17 / Mozilla Firefox. In the process of installing a new VPN I am unable to find that connection symbol and Edit connections features in system tray. Am I blind?

    Click on your connection symbol, in the system tray on the top right and select ‘Edit connections’.

    Any help please? Thank you

  256. Tish

    Please can you clarify how I can use the encrypted VPN on a mobile android device? Thank you.

  257. ProtonVPN

    Hi Tish, check out the android guide

  258. protonman

    I will be debating on switching to ProtonVPN once officially released.

    The link in section 4. “Learn more more about our Secure Core feature.” is pointing to “ ” please update to “”

    Keep up the great work.
    Thank you!

  259. ProtonVPN

    Hi protonman, thanks for pointing it out. It’s fixed.

  260. DanielSweden

    Hello Proton VPN Team!

    I tried ProtonVPN on Debian Jessie. It works just perfect with following command, no GUI installed.

    daniel@lnxdeb:~/protonvpn$ sudo /usr/sbin/openvpn –auth-nocache –config

    What is the price of ProtonVPN service?

Leave a Reply

Your email address will not be published. Required fields are marked *

Don't find your answer? We're happy to help you!     Contact Our Support Team

Secure your internet

Get ProtonVPN

For customer support inquiries, please submit the following form for the fastest response:
Support Form

For all other inquiries:

Version: OpenPGP.js v4.10.10


You can also Tweet to us: