如果从命令行启动,openvpn将起作用,而不是如果通过init.d启动…为什么?

当我在服务器上启动openvpn时:

sudo openvpn /etc/openvpn/server.conf 

它的工作原理,我可以连接我的客户端。

当我开始时:

 sudo /etc/init.d/openvpn start 

它看起来像我看到的那样工作:

 * Starting virtual private network daemon(s)... * Autostarting VPN 'openvpn': missing /etc/openvpn/openvpn.conf file ! 

但我无法连接客户端。

在后一种情况下,检查端口将显示为“closures”(在没有任何内容正在监听的意义上,它未被防火墙closures),而前者则是“打开”。

那么断开连接在哪里? init.d是不是开始我以为会的? 它没有加载正确的conf文件(但是当我直接启动服务器时为什么不需要加载openvpn.conf)? 我在某处丢失了一个参数吗?


编辑:解决scheme背后的原因

按照JeffG的build议检查init.d脚本,结果显示它获得了conf文件的$ NAME:

 NAME=${NAME%%.pid} 

然后寻找:

 $CONFIG_DIR/$NAME.conf 

这使得: NAME=openvpn所以然后脚本去查找openvpn.conf不存在,因为我命名文件server.conf (这是openvpn网站上说明如何命名文件)。 只需简单地复制该文件即可命名为init.d脚本(Hyppy的解决scheme)即可解决问题。

尝试这个:

 sudo cp /etc/openvpn/server.conf /etc/openvpn/openvpn.conf 

检查你的init.d脚本。 确保它使用/etc/openvpn/server.conf进行configuration

林相当新的Raspberi Pi和我遇到了同样的问题后,我安装OpenVPN的。 当我通过CLI启动它时,它工作:

openvpn –config /etc/openvpn/openvpn.conf

但是每当我通过“/etct/init.d/openvpn start”或者“service openvpn start”来启动的时候,它似乎并没有读取我的configuration文件。 启动脚本的这一节给了我一个提示…

  # autostart VPNs if test -z "$2" ; then # check if automatic startup is disabled by AUTOSTART=none if test "x$AUTOSTART" = "xnone" -o -z "$AUTOSTART" ; then log_warning_msg " Autostart disabled." exit 0 

所以我search了如何在Raspbian上自动启动deamon。 启用openvpn后自动启动它为我工作。

update-rc.d openvpn enable

服务openvpn开始

我希望这有帮助 :)