Ubuntu Server 16.04 - OpenVPN 似乎无法启动,没有写入日志

meg*_*off 16 ubuntu syslog openvpn

我按照以下指南how-to-set-up-an-openvpn-server-on-ubuntu在 Ubuntu 服务器 16.04 上安装和 oepnvpn

当我启动 openVPN 服务器时:service openvpn start看起来它已经启动了,但是即使我激活了日志选项,我也没有写入日志文件。

status /var/log/openvpn-status.log
log  /var/log/openvpn.log    
Run Code Online (Sandbox Code Playgroud)

任何提示我可以尝试什么?

  • 如何检查进程/服务是否真的在运行?
  • 如何确定服务是否每次都崩溃?
  • 知道为什么日志文件没有被写入吗?

启动服务时的输出

root@Diabolo:/etc/openvpn# service openvpn stop
root@Diabolo:/etc/openvpn# service openvpn start
root@Diabolo:/etc/openvpn# service openvpn status
openvpn.service - OpenVPN service
Loaded: loaded (/lib/systemd/system/openvpn.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2016-06-25 19:04:12 CEST; 3s ago
Process: 3956 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 3956 (code=exited, status=0/SUCCESS)
Jun 25 19:04:12 Diabolo systemd[1]: Starting OpenVPN service...
Jun 25 19:04:12 Diabolo systemd[1]: Started OpenVPN service.
Run Code Online (Sandbox Code Playgroud)

系统日志上的输出

Jun 25 19:04:12 Diabolo systemd[1]: Starting OpenVPN service...
Jun 25 19:04:12 Diabolo systemd[1]: Started OpenVPN service.
Run Code Online (Sandbox Code Playgroud)

配置文件 server.conf

port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key 
dh /etc/openvpn/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
comp-lzo
max-clients 100
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
log  /var/log/openvpn.log
verb 3
Run Code Online (Sandbox Code Playgroud)

小智 17

问题是服务配置/lib/systemd/system/openvpn.service只是调用/bin/true(我不知道为什么它没有被删除)。可以在 中找到可用的配置/lib/systemd/system/openvpn@.service,但它仍然需要进行一些修改。

对我有用的解决方案:

1. 创建对网络服务的依赖

为了保护它不被覆盖,请在子目录中的单独文件中创建它:

 mkdir -p /lib/systemd/system/openvpn\@.service.d
Run Code Online (Sandbox Code Playgroud)

在此目录中创建一个文件。其名称必须以 结尾.conf,例如:

 vi /lib/systemd/system/openvpn\@.service.d/local-after-ifup.conf
Run Code Online (Sandbox Code Playgroud)

将以下内容放入此文件:

[Unit]
Requires=networking.service
After=networking.service
Run Code Online (Sandbox Code Playgroud)

2.尝试启动服务器

systemctl start openvpn@<CONF_NAME>.service
Run Code Online (Sandbox Code Playgroud)

其中 CONF_NAME 是目录中.conf文件的名称/etc/openvpn。在你的情况下:

systemctl start openvpn@server.service
Run Code Online (Sandbox Code Playgroud)

3.如果一切正常,启用服务自动启动

systemctl enable openvpn@server.service
Run Code Online (Sandbox Code Playgroud)


小智 14

到处搜索后,我找到了这个链接:

https://a20.net/bert/2016/09/27/openvpn-client-connection-not-started-on-ubuntu-16-04/

edit /etc/default/openvpn, uncomment AUTOSTART=”all”
sudo systemctl daemon-reload
sudo service openvpn restart
Run Code Online (Sandbox Code Playgroud)

我把它归结为:

echo 'echo "AUTOSTART="\"all"\"" >> /etc/default/openvpn' | sudo -s
sudo systemctl daemon-reload
sudo service openvpn restart
Run Code Online (Sandbox Code Playgroud)