Expressvpn install and auto-start

Hello :slight_smile: Took me a while to sort out how to do this properly, especially the auto-start, so, just incase anyone else is hitting some boulders along the way, here’s how to avoid that. Gathered various bits of information from various threads/contributers; thanks to them.

1. download/import key …
gpg --import expressvpn_release_public_key_0xAFF2A1415F6A3A38.asc

2. sign in, verify, and download linux arch installer

3. remove any current expressvpn install, if necessary …
expressvpn disconnect
sudo systemctl stop expressvpn
sudo systemctl disable expressvpn
sudo pacman -Rns expressvpn

4. install … go to the folder the downloaded linux arch installer is in … right-click and ‘open in terminal’. Using rename, select and copy the full name of the package … in the terminal, run e.g. sudo pacman -U expressvpn-

5. copy service files across …
sudo cp /usr/lib/expressvpn/expressvpn*.service /etc/systemd/system/.

6. enable, start, and activate …
sudo systemctl enable expressvpn
sudo systemctl start expressvpn
expressvpn activate (if a previous install had been on the system, it may say you’re already logged in … just log out)

7. connect and set it to auto-connect …
expressvpn connect
expressvpn autoconnect true
Expressvpn will now immediately connect itself on booting in. :smiley: :+1:t2:

EDIT: I’m unsure how to update Expressvpn using this manual method, and attempting via manual or trizen seems to cause issues/end up without internet access … via trizen, there’s a failure message about conflicting files (/usr/share/bash-completion/completions/expressvpn exists in filesystem), and the update fails overall.

I’ve defaulted to doing Step 1 (as there’s no other way to get the key imported), then just installing from the AUR, so updates can be straightforward. Doesn’t seem to need the service files copying over in this instance … just enable/start/activate, then connect. Can set it to ‘expressvpn autoconnect true’ and ‘expressvpn protocol auto’, and you’re good to go. Running ‘expressvpn preferences’ will show you your settings, e.g.
auto_connect true
desktop_notifications true
network_lock default
If e.g. auto_connect isn’t set to ‘true’ … expressvpn preferences set auto_connect on


You shouldn’t need to do this unless you are planning to modify the services. Doing this will prevent future updates to the services from taking effect since your local copies will take precedence over the system versions.

I’d seen the threads recommending that, because the system doesn’t copy over the necessary service files itself, and it was you recommended it!

So, when there’s an update, just redo the copy over?


I didn’t read closely enough. Those services are in /usr/lib/expressvpn.

Yes, you do need to copy them like that wise person in that other forum suggested. :rofl:


lol :rofl: and good to have confirmation :+1:t2: … and thanks for the info in that thread generally

See just when I was completely convinced you were AI. :crazy_face:


Manually creating openvpn connections in network manager using ExpressVPN .ovpn files works great too. Easier if you are changing servers regularly

If you use multiple VPN providers too it is simple to switch between different servers and different providers with a couple of clicks.


I’m not AI but I’m a little Roboto!

1 Like

Just be aware that using a vpn this way requires you to configure a firewall if you want an effective “kill switch”.

I block all traffic by default, then allow all traffic through vpn virtual adapter (ie tun0), and only open the necessary network ports to allow vpn connection establishment (ie 1195 udp for expressvpn ovpn sha512).

This way if the vpn connection drops unexpectedly there is no network connectivity.

Otherwise if a network manager ovpn connection drops all traffic will revert to the default network connection, exposing your real (ie ISP) IP address.

1 Like

Expressvpn has an inbuilt kill switch to block internet traffic if VPN connection drops, thankfully, as, although it’s wise to funnel things as you are, and understandable, with all those connections, I don’t mess with stuff I know for a fact I’ll break, lol, plus only the one connection and it’s worked very well long-term.

Had an issue just last week with finding the VPN off yet internet running. Contacted customer support; logs showed nothing wrong. Maybe something to do with previous system’s configuration, or updates affecting that? Not sure. Expressvpn update came through a day or so after, plus now am on eOS. No issues so far.

The expressvpn linux cli app does, but manually configured network manager openvpn connections don’t.

With not manually configuring myself, that’s something new learnt … good it’s in the thread for those who do want to manually configure openvpn.

This happens in Manjaro, too. (Just FYI). All you have to do is the first two terminal commands in #6, and you’ll automatically reconnect. You can always double-check again by using ‘expressvpn status’ without the quotes in the terminal. You can also see that the Firefox or Chrome/Brave extension indicates you’re connected, too.