当使用启动 OpenVPN 作为服务时,它不使用我的/etc/openvpn/server.conf
.当查看 时/var/log/syslog
,我只看到Started OpenVPN service.
没有任何额外的 OpenVPN 日志记录。
当我手动启动 OpenVPN 时openvpn --config /etc/openvpn/server.conf
,我会收到一堆 OpenVPN 日志记录,客户端可以与之连接。
如何确保将其作为服务启动时使用配置文件?
Debian GNU/Linux 9 OpenVPN 2.4.0 x86_64-pc-linux-gnu
答案1
如果您使用的是systemd
Ubuntu 16.04 或 Debian 9 等基础操作系统,则需要使用以下systemctl
命令而不是service
:
要在启动时启用:
systemctl enable [email protected]
手动启动和停止:
systemctl start [email protected]
systemctl stop [email protected]
您可以通过这种方式启用、禁用、启动和停止任何 OpenVPN 配置,只需server
替换..conf
/etc/openvpn
答案2
如果您正在运行 systemd,更改诸如/etc/default/openvpn
和 之类的文件/etc/init.d/openvpn
还不够,将需要在启动时运行 systemctl on/off:
systemctl enable openvpn.service
systemctl disable openvpn.service
在任何情况下,您都可以手动启动/停止客户端:
systemctl start openvpn.service
systemctl stop openvpn.service
查看状态:
systemctl status openvpn.service
答案3
我在 Debian 11 上也遇到了同样的问题,并在系统日志中发现了很多失败的信息。我知道该服务正在按预期工作,而且事实证明该服务已为 systemd 和 serviceV 启用。最令人困惑的部分是,即使使用 systemv,这些错误也会记录为 systemd。
在 Debian 中,SysV 服务寻找/etc/openvpn/server.conf,而 systemd 将使用其文件所在的服务 openvpn-server@/etc/openvpn/服务器。由于 @kirill-z 已经展示了如何启用 SysV,我将展示如何禁用 SysV 设置并使用 Debian 通常首选的 systemd 设置
使用 SystemV 禁用 OpenVPN
我想使用 Debian 默认值 (/etc/openvpn/server/server.conf),因此看到尝试访问 /etc/openvpn/server.conf 的日志是第一个迹象。通过检查活动服务后service
,我发现 openvpn 被意外启用。
# service --status-all
...
[ + ] openvpn
...
然后你可以停止:
# service openvpn stop
openvpn 也可能已设置为随 systemV 启动,在这种情况下您需要禁用它:
# update-rc.d openvpn disable
然后在默认设置中确保自动启动被禁用。
# /etc/default/openvpn
...
#AUTOSTART="all"
AUTOSTART="none" // Uncomment this line
...
现在,systemV 设置已完全禁用,并且在启动时不会随 SystemV 一起启动。
SystemD 中的 OpenVPN
启动 systemd 设置以验证配置。以下命令将加载配置/etc/openvpn/server/myserver.conf(将@name更改为您的服务器配置文件名)。
# systemctl start openvpn-server@myserver
如果一切顺利,我们可以将其设置为开机自动启动:
# systemctl enable openvpn-server@myserver
我希望这对其他人有帮助,因为 Debian 继续提供这两种服务系统。