use*_*436 2 ubuntu systemd openvpn
我有用户 2 因素身份验证的 openvpn 配置。
如果我手动启动它,运行:
/usr/sbin/openvpn --writepid /run/whatever --cd /etc/openvpn/ --config /etc/openvpn/work.conf
Run Code Online (Sandbox Code Playgroud)
它要求输入用户名,然后是密码(由我手机上的软件提供),然后是私钥的密码。然后它起作用了。
但是,如果/当我尝试通过普通服务调用启动它时:
=# service openvpn start work
Run Code Online (Sandbox Code Playgroud)
没有打印任何内容,openvpn 不起作用,并且 journalctl 显示:
=# systemctl status openvpn
? openvpn.service - OpenVPN service
Loaded: loaded (/lib/systemd/system/openvpn.service; enabled; vendor preset: enabled)
Active: active (exited) since czw 2015-05-28 10:24:22 CEST; 17min ago
Process: 30395 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 30395 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/openvpn.service
maj 28 10:24:22 krowka systemd[1]: Starting OpenVPN service...
maj 28 10:41:40 krowka systemd[1]: Started OpenVPN service.
Run Code Online (Sandbox Code Playgroud)
除了手动构建 /usr/sbin/openvpn 调用之外,我还能通过“服务”调用或任何其他方式使其“正常”工作吗?
我尝试通过正常的服务调用启动它:# service openvpn 开始工作
不,这不正常。这是 System 5rc工具集的一个怪癖,它rc使用两个参数调用 System 5脚本。该rc脚本将非标准的第二个参数作为要使用的 OpenVPN 配置的基本名称。
这是 Ubuntu Linux。您没有使用 System 5 rc。你没有使用它的rc脚本。您正在使用 systemd。您正在使用 systemd 服务单元,OpenVPN 实际上已经使用了多年。systemd服务单位不是脚本,不具有脚本参数。
它们拥有的是模板参数,而 OpenVPN 实际上是模板单元机制出现时的较早采用者之一,至少从 2011 年起就有模板化单元。(至少自 2012 年以来,OpenVPN 的模板化新贵工作就一直在流传。)
你在看/lib/systemd/system/openvpn.service。您应该关注的是/lib/systemd/system/openvpn@.service. 在配置名称上实例化:
systemctl preset openvpn@work.servicesystemctl disable openvpn@work.servicesystemctl start openvpn@work.servicesystemctl stop openvpn@work.servicesystemctl status openvpn@work.service或者让 Debian/Ubuntu 来完成繁重的工作。有一个单元生成器,/lib/systemd/system-generators/openvpn-generator可以在引导时或运行时针对每个*.conf文件自动实例化此模板。/etc/openvpnsystemctl daemon-reload
| 归档时间: |
|
| 查看次数: |
7103 次 |
| 最近记录: |