OpenVPN systemd use

This is only a brief summary of OpenVPN systemd usage.

OpenVPN must be compiled with systemd support.

Use the correct OpenVPN supported systemd .service files.

Build OpenVPN with systemd support

When you build the openvpn binary use the configure option --enable-systemd like so:

./configure --enable-systemd

Verify OpenVPN systemd support has been enabled like so:

$ openvpn --version

Look for enable-systemd=yes in the output.

Using OpenVPN with systemd support

In order to use OpenVPN with systemd please use the correct systemd .service file.


  • Place your server configuration file in /etc/openvpn/server
  • Use the openvpn-server@.service like so:
    $ sudo systemctl start openvpn-server@{Server-config}
    Replace {Server-config} with the name of your config file without the .conf


  • Place your client configuration file in /etc/openvpn/client (notice however that, due to an outdated version of openvpn, some distrubitions, like Ubuntu 20.10, look for configuration files under /etc/openvpn instead of /etc/openvpn/client. In caso of doubt, check the specific error message in journalctl -xe)
  • Use the openvpn-client@.service like so:
    $ sudo systemctl start openvpn-client@{Client-config}
    Replace {Client-config} with the name of your config file without the .conf

Start at boot:

Replace start with enable

Other systemd questions are probably best answered by reading man systemctl etc ..


  • openvpn@.service is deprecated.
  • openvpn.service is obsoleted. (This is only used for backward compatibility)

Known issues

Last modified 7 months ago Last modified on 02/27/21 19:32:48