我运行Ubuntu的12.04 LTS版本,我已经安装了OpenVPN。 经过一段时间的疑难解答,为什么我的客户端不会连接(我已经生成了密钥,并configuration客户端),我从命令行运行“服务openvpn状态”,并收到以下错误:
无法访问VPN“服务器”的PID文件
我重新启动,启动并重新启动服务,但每次检查状态,我收到PID错误。 我很确定我无法连接,因为服务没有运行。
我在哪里可以开始排除故障? 我不知道该找什么。 任何帮助是极大的赞赏。
谢谢!
could not access PID file for VPN 'server'
的PID文件意味着无法读取PID文件。 这可能有不同的原因:
sudo
运行这个命令? 因此,为了进一步debugging,您需要查看/var/run/openvpn.server.pid
本身
如果进程没有运行,你的configuration很可能是错误的,你将不得不读取日志为什么没有启动。 运行service openvpn start
也可能会带来有用的输出。
好像,你没有自动启动脚本! 这是平常的。 OpenVPN不会自行安装这样的东西,据我所知…
首先尝试手动执行服务器。
这将需要一个自己的Terminalwindows来运行。 而当OPENVPN以这种方式运行时,TerminalWindow将不能用于其他的东西。
试试这个(用你的pathreplace/ etc / openvpn / config-files /):
openvpn /etc/openvpn/config-files/server.conf
一些信息将出现在这个窗口中。
现在尝试用客户端连接到服务器。 您可以通过按CTRL + Cclosuresopenvpn
如果这是解决scheme,请在系统启动后执行OpenVPN-Server。
在terminal上这样做:
vim /etc/init.d/OnBootOpvenvpn.sh
并在以下几行中进行:
#! / bin / sh的
#/etc/init.d/OnBootOpenvpn.sh#
openvpn /etc/openvpn/config-files/server.conf
这将是服务器。 当然,你必须改变/ etc / openvpn / config-files /到你的path!
对于客户端来说,只要一定要selectclient.conf !
然后,您将添加此脚本,在系统启动后启动。
在terminal上这样做:
update-rc.d OnBootOpvenvpn.sh defaults
这可能会说他缺less标题。 你现在可以忽略它。
我不确定什么是“默认”,我认为这意味着开始作为一个“正常”的程序,在完成引导和深入系统的东西。
启动脚本只是试图启动OpenVPN,但如果失败,它不会给你任何错误消息。 手动执行OpenVPN
$ openvpn /etc/openvpn/server.conf
并解决你在那里看到的任何错误。 如果您没有看到错误,请检查是否没有将log
设置为closures状态,并且可能会增加verb
冗长度。
默认情况下,Ubuntu提供一个传统的启动脚本OpenVPN。 这使得Upstart在崩溃时无法重新启动服务。 传统脚本也使用pid文件,这对于本地Upstart作业不是必需的。 所以有一个本地的工作看起来像解决您的问题。
我自己写了OpenVPN的Upstart作业定义,并使用它2年没有问题。 下载下面的文件,然后用符号链接replace/etc/init.d/openvpn到/ lib / init / upstart-job ,运行sudo initctl reload-configuration
。 您可以编辑/ etc / default / openvpn来自定义deamon启动(默认情况下所有来自/ etc / openvpn /的 VPN都将运行)。 实例(连接作业的CONNvariables)以/etc/openvpn/*.conf文件命名,不带扩展名。
/etc/init/openvpn-connection.conf
/etc/init/openvpn-autostart.conf
在/ etc /默认/ OpenVPN的
这个解决scheme与Ubuntu 14.04 LTS兼容,在14.10和15.04中有一些小问题,Upstart不见了。
初始化脚本只报告OpenVPN没有启动,并且由于openvpn
无法读取pid文件。
你必须检查system/daemon/openvpn
日志,看看为什么不能启动。