问题描述
我可以启动 OpenVPN 并将其指向配置文件,一切正常,例如:
sudo openvpn /etc/openvpn/myvpn.conf
但是当我尝试启动服务时
sudo /etc/init.d/openvpn start
我得到的只是系统日志中的输出:
Jun 23 21:02:30 pc systemd[1]: Starting OpenVPN service...
Jun 23 21:02:30 pc systemd[1]: Started OpenVPN service.
但这是在骗我,没有运行 openvpn 服务:
gk@pc:/etc/openvpn$ ps -aux | grep openvpn
gk 15456 0.0 0.0 13688 2128 pts/0 S+ 21:18 0:00 grep --color=auto openvpn
没有其他 openvpn 进程在运行。如何启动服务?
我很高兴地注意到 /lib/systemd/system/openvpn.service 内部有:
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/true
ExecReload=/bin/true
WorkingDirectory=/etc/openvpn
我很确定 /bin/true 不是我的 openvpn 客户端应用程序。这就是为什么 openvpn 客户端无法在 Ubuntu 15.04 的命令行中运行的原因吗?
最佳方案
\\n
Is this why openvpn client doesn’t work from the command line on Ubuntu 15.04?
\\n
不。原因是您还没有阅读该单元文件顶部的注释,并且您正在直接调用 System 5 rc
脚本。不要直接调用 System 5 rc
脚本,尤其是在没有使用 System 5 rc
的系统上,例如 Ubuntu 版本 15。
在 OpenVPN 的情况下,通过 service
命令间接调用它们也是错误的。
OpenVPN 是 systemd 下的模板化服务。这些服务被命名为 openvpn@config.service
。所以你应该开始你的 /etc/openvpn/myvpn.conf
实例
systemctl start openvpn@myvpn.service