I've been using a VPN heavily recently and would like openvpn to intuitively connect and disconnect based on whether I'm connected to Wi-Fi (or ethernet). Currently, I have a client.conf in /etc/openvpn/ and I'm starting it with $ systemctl start openvpn@client. The problem with this is openvpn continuously attempts to connect to the vpn server even after Wi-Fi is disconnected.

I think systemd is the solution but the documentation and SE answers I've found so far are overwhelming. Can someone offer a simple systemd service template for accomplishing this?

  • 1
    Do you use NetworkManager to manage your network connections (Wi-Fi, ethernet)? If so, then using NetworkManager dispatcher scripts is the way to go for reacting to events involving network connectivity... Let me know if you're using NetworkManager (please update your answer to state that) and I can try to add an answer that's appropriate for it. – filbranden Nov 24 '18 at 15:11
  • Since you're using systemd, it's fully possible to create a service script that triggers when a connection is made. Just make sure it's after=network-online.target. A good read can be found here: askubuntu.com/a/919059. Or this post: unix.stackexchange.com/questions/126009/…. The only thing you have to make sure, is that you connect your wifi/ethernet with systemd-networkd as well, it makes it a hell of a lot easier to chain the dependencies. – Torxed Nov 24 '18 at 15:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.