What VPN on Leap 15.6?

I used to run and be very happy with ExpressVPN working on a previous Suse distribution but I can’t get it to work on Leap 15.6.

I am willing to migrate to a different VPN but need a recommendation which VPN.
I see OpenVPN in the YaST software list but I think maybe it is for installation on a server??
I’ve been using Suse on and off since 2009 but not really all that much technical savvy in Konsole. I need a VPN that will work without too much fuss.

I also run Win 10 in a VM and have ExpressVPN there but it’s always a hassle to boot Win 10 just for the VPN.
Thanks in advance.

Hi, I’m using Private Internet Access or PIA VPN on a HP EliteBook 8540p with Tumbleweed Plasma (KDE) and it just works fine, you should take a look at that, the downloads and install instructions are straightforward & very easy to follow, cheers & good luck!

P.S. They also have the 30 day money back warranty in case it doesn’t work (that I doubt it) or in case you don’t like it!

You can just use ExpressVPN and almost every VPN as long as you don not use their App but instead rely on the standard OpenVPN functionality under Linux. ExpressVPN even has a guide for that:

1 Like

This is the issue I am having while following the ExpressVPN instructions:

me@customer:~> sudo dnf install openvpn
[sudo] password for root:
sudo: dnf: command not found

Also:

me@customer:~> sudo cp /usr/share/doc/openvpn/contrib/pull-resolv-conf/client.{up,down} /etc/openvpn/
[sudo] password for root:
cp: cannot stat ‘/usr/share/doc/openvpn/contrib/pull-resolv-conf/client.up’: No such file or directory

Also:

me@customer:~> sudo chmod +x /etc/openvpn/client.{up,down}
chmod: cannot access ‘/etc/openvpn/client.up’: No such file or directory
chmod: cannot access ‘/etc/openvpn/client.down’: No such file or directory
None of these seem to work.

OpenSuse does not use dnf nut zypper. On tumbleweed I have:

zypper se openvpn --installed-only 
Loading repository data...
Reading installed packages...

S  | Name                                         | Summary                                                       | Type
---+----------------------------------------------+---------------------------------------------------------------+--------
   | connman-plugin-openvpn                       | OpenVPN plugin for connman                                    | package
   | monitoring-plugins-openvpn                   | Verify the state of the clients connected to a openvpn server | package
   | NetworkManager-applet-openvpn                | NetworkManager VPN support for OpenVPN                        | package
i  | NetworkManager-openvpn                       | NetworkManager VPN support for OpenVPN                        | package
   | NetworkManager-openvpn-lang                  | Translations for package NetworkManager-openvpn               | package
i  | openvpn                                      | Full-featured SSL VPN solution using a TUN/TAP Interface      | package
   | openvpn-auth-pam-plugin                      | OpenVPN auth-pam plugin                                       | package
   | openvpn-devel                                | OpenVPN plugin header                                         | package
   | openvpn-down-root-plugin                     | OpenVPN down-root plugin                                      | package
i  | plasma6-nm-openvpn                           | OpenVPN support for plasma6-nm                                | package

Probably I should have reviewed that page before linking it as it is overly complicated, the only thing you need is the .ovpn file

Likely openvpn is already installed for you incl. the network manager and plasma packages (5 for leap).

If so open the Network settings, add a new connection, chose “Import VPN connection” and give that the .ovpn file.

For pictures (apt is for debian so ignore that), see:

1 Like

Thank you VERY much for your help.
It took me a bit of doing, but I downloaded the .ovpn file from the ExpressVPN website. I also made this guide for future reference that I’ll share here.
One more question:
I am always prompted for both root and my ExpressVPN password keys when attempting to connect. Is there a way for it to automatically do this without my intervention? Thanks again.

1 Like

Nice, good you made this for future reference!

On the password:

  • I do not have a password on my .ovpn file my Private Key Password field is empty. Can you try generating a .ovpn without specifying an username/password?
  • For a work-around with password see: Saving Username/Password - OpenVPN Support Forum

For my OpenVPN connection, in the General configuration of the underlying network interface I have the “Automatically connect to VPN” field set to the VPN connection and it comes automatically up after boot without asking for any username/password.

The username and password is provided on the ExpressVPN website, graphic for steps 3 &4. I blacked out my credentials for security. You must be signed onto the website to see them. The .ovpn file does not contain the password.

No, but see post #3 in the link I provided to the OpenVPN forum, you can edit that file and have it point to an file with the username/password. After that, delete the current connection and add it again using the edited file.

Update: Jan-3-2025, PIA VPN doesn’t want to install on Leap 15.6, neither on Tumbleweed @ this moment, Will post the error messages later. PIA VPN support team told me that they made a request on my behalf to opensuse devs for them to create a GUI package, I don’t know how much time that would take, my guess is not very soon!

P.S. AFAIK, the only VPN provider thas has a GUI package on opensuse repos is Proton VPN.

These are the error messages I get on Terminal trying to install PIA VPN:

ezequiel@localhost:~/Downloads> sh pia-linux-3.6.1-08339.run
Verifying archive integrity...  100%   MD5 checksums are OK. All good.
Uncompressing Private Internet Access  100%  

=================================
Private Internet Access Installer
=================================

Installing PIA for x86_64, system is x86_64
[sudo] password for root: 
warning: database file for 'core' does not exist (use '-Sy' to download)
warning: database file for 'extra' does not exist (use '-Sy' to download)
warning: database file for 'community' does not exist (use '-Sy' to download)
error: target not found: libxkbcommon-x11
error: target not found: libnl
error: target not found: iptables
error: target not found: psmisc
ezequiel@localhost:~/Downloads>```

Simply install the required dependencies and check that you have valid repositories (the following output is for Tumbleweed)…

tumblevb@test:~/Downloads> sh /home/tumblevb/Downloads/pia-linux-3.6.1-08339.run 
Verifying archive integrity...  100%   MD5 checksums are OK. All good.
Uncompressing Private Internet Access  100%  

=================================
Private Internet Access Installer
=================================

Installing PIA for x86_64, system is x86_64
[sudo] password for root: 
Retrieving repository 'NON-OSS' metadata ...............................................................................................................................................................................................................................[done]
Building repository 'NON-OSS' cache ....................................................................................................................................................................................................................................[done]
Retrieving repository 'OSS' metadata ...................................................................................................................................................................................................................................[done]
Building repository 'OSS' cache ........................................................................................................................................................................................................................................[done]
Retrieving repository 'google-chrome' metadata .........................................................................................................................................................................................................................[done]
Building repository 'google-chrome' cache ..............................................................................................................................................................................................................................[done]
Retrieving repository 'packman' metadata ...............................................................................................................................................................................................................................[done]
Building repository 'packman' cache ....................................................................................................................................................................................................................................[done]
Loading repository data...
Reading installed packages...
'psmisc' is already installed.
No update candidate for 'psmisc-23.7-2.1.x86_64'. The highest available version is already installed.
'iptables' is already installed.
No update candidate for 'iptables-1.8.11-2.1.x86_64'. The highest available version is already installed.
'libxkbcommon-x11-0' is already installed.
No update candidate for 'libxkbcommon-x11-0-1.7.0-1.2.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do.
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  libnsl1

1 new package to install.

Package download size:    85,7 KiB

Package install size change:
              |     129,8 KiB  required by packages that will be installed
   129,8 KiB  |  -      0 B    released by packages that will be removed

Backend:  classic_rpmtrans
Continue? [y/n/v/...? shows all options] (y): y
Retrieving: libnsl1-2.40-2.1.x86_64 (OSS)                                                                                                                                                                                                                 (1/1),  85,7 KiB    
Retrieving: libnsl1-2.40-2.1.x86_64.rpm ...................................................................................................................................................................................................................[done (66,8 KiB/s)]

Checking for file conflicts: ...........................................................................................................................................................................................................................................[done]
(1/1) Installing: libnsl1-2.40-2.1.x86_64 ..............................................................................................................................................................................................................................[done]
Running post-transaction scripts .......................................................................................................................................................................................................................................[done]
✔ Installed packages
✔ Added group piavpn
✔ Added group piahnsd
✔ Copied Private Internet Access files
✔ Created var folder
✔ Installed icon
✔ Created desktop entry
✔ Set wgpia interface to be unmanaged
✔ Created piavpn service
Created symlink '/etc/systemd/system/multi-user.target.wants/piavpn.service' → '/etc/systemd/system/piavpn.service'.
✔ Started piavpn service
tumblevb@test:~/Downloads> 

2 Likes

@ hui, thanks for your fast response, the fact is that I had almost all of those dependencies installed on my system, (don’t know why zypper or whatever told me they weren’t installed) then I took a look at your post and realised my system didn’t had the “libnsl1” package or dependency that was gonna be installed on your system on your post, I quickly searched for it, Installed it and Voila!, PIA VPN GUI Client installed without a problem, so thanks to you for giving me a tip that helped me resolve this issue, cheers