将 openvpn 客户端作为守护进程启动 - 在 debian 中

don*_*yor 3 vpn systemd openvpn

[Unit]
Description=Simple Openvpn tunnel

[Service]
Type=simple
ExecStart=/usr/sbin/openvpn --config /etc/vpn/config/myclient.ovpn --daemon

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

我有这项服务,我也可以启用它,但启动不起作用。状态给了我这个:

? openvpn.service - Simple Openvpn tunnel
   Loaded: loaded (/etc/systemd/system/openvpn.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2017-12-08 09:24:32 CET; 3s ago
  Process: 29772 ExecStart=/usr/sbin/openvpn --config /etc/vpn/config/client-0-130.ovpn --daemon (code=exited, status=1/FAILURE)
 Main PID: 29772 (code=exited, status=1/FAILURE)

Dec 08 09:24:32 s20699657 systemd[1]: Started Simple Openvpn tunnel.
Dec 08 09:24:32 s20699657 systemd[1]: openvpn.service: Main process exited, code=exited, status=1/FAILURE
Dec 08 09:24:32 s20699657 systemd[1]: openvpn.service: Unit entered failed state.
Dec 08 09:24:32 s20699657 systemd[1]: openvpn.service: Failed with result 'exit-code'.
Run Code Online (Sandbox Code Playgroud)

我无法找出缺少什么。有人可以看看吗?:/

Jde*_*eBP 8

使用 Debian 提供的机制

不要推出自己的服务单位。Debian 提供了一种机制来扫描您的 OpenVPN 配置并使 systemd 服务与之匹配。用那个。

做一个*.conf文件/etc/openvpn。Debian's/Ubuntu's/lib/systemd/system-generators/openvpn-generator将使服务单元相匹配。

请注意,较新版本的 OpenVPN 已将配置文件目录拆分为/etc/openvpn/client/etc/openvpn/server。这还没有(还)渗透到稳定版的 Debian 中,尽管 OpenVPN 提供的openvpn-client@.serviceopenvpn-server@.service模板单元有。

(openvpn@.service是 Debian 提供的服务单元,与 Debian 提供的生成器配合使用。这些是 Debian 对 OpenVPN 的本地修改。OpenVPN 提供的服务单元模板是由 OpenVPN 人员自己独立开发的。它们也更好。如果您真的不想使用 Debian 机制,使用这些应该是你的下一站,然后再滚动你自己的服务单元。)

进一步阅读