OpenVPN 无法在 ubuntu 上启动 - 未找到 PID

OpenVPN 无法在 ubuntu 上启动 - 未找到 PID

我正在运行 ubuntu 版本 12.04 LTS,并且已在其上安装了 OpenVPN。经过一段时间的故障排除,我的客户端无法连接(我已生成密钥并配置了客户端),我从命令行运行了“service openvpn status”,并收到以下错误:

无法访问 VPN‘服务器’的 PID 文件

我已经重启、启动并重新启动了该服务,但每次检查状态时,我都会收到 PID 错误。我很确定我无法连接,因为该服务没有运行。

我应该从哪里开始排除故障?我不知道该寻找什么。任何帮助都将不胜感激。

谢谢!

答案1

could not access PID file for VPN 'server'表示无法读取 PID 文件。这可能有不同的原因:

  • 您没有权限读取 pid 文件 - 您是以 root 身份运行该命令还是使用sudo
  • pid 文件不存在,因为进程未运行或由于某种原因无法创建该文件

因此,为了进一步调试,你需要查看/var/run/openvpn.server.pid它本身

  • 它存在吗?
  • 是否有一个 openvpn 进程正在运行,并且文件中列出了它的 pid?
  • 是否有其他 openvpn 进程正在运行?

如果进程没有运行,则您的配置很可能是错误的,您必须阅读日志以了解它为何没有启动。运行service openvpn start也可能会带来有用的输出。

答案2

初始化脚本报告 OpenVPN 未启动,因此openvpn无法读取 pid 文件。
您必须检查system/daemon/openvpn日志才能查看无法启动的原因。

答案3

Openvpn 的配置方式允许运行多个服务实例。如果您作为客户端或服务器拥有不同的配置,并且想要分别管理它们,那么这非常有用。

openvpn 的 systemd 配置文件(位于 /lib/systemd/system)包含“@”字符,表示您可以为该服务启用不同的实例。我已经用它启用了一些 VPN 连接。如果除了这些用“@”修饰的配置文件外,还有一个不带“@”的配置文件,您可以只启用所需的连接:

systemctl disable openvpn.service
systemctl enable openvpn@<conf filename for the connection>.service

这些实例在启动时应插入正确的选项

--writepid <conf filename for the connection>.pid 

无论如何,如果您喜欢测试一些更简单的东西,您可以在 /etc/openvpn/ 中包含以下行<conf filename for the connnection>.conf

writepid /var/run/<conf filename for the connection>.pid

答案4

启动脚本将尝试启动 OpenVPN,但如果失败,它不会向您显示任何错误消息。手动执行 OpenVPN

$ openvpn /etc/openvpn/server.conf

并解决您在此处看到的所有错误。如果您没有看到错误,请检查您是否未将其设置log为关闭,并且可能使用 增加详细程度verb

相关内容