我使用OpenVPN作为守护进程,当我失去internet连接时,OpenVPN会等待2分钟,然后尝试每5秒重新启动一次。这是我想让它表现的样子。然而,当互联网连接再次打开时,OpenVPN尝试重置tun0,失败并退出,因为它是一个守护进程,所以它不会再试一次,但仍然会死掉。
由于权限被拒绝,它在IP地址模型上的2失败。
我试图将chmod +s设置为OpenVPN可执行文件,但没有任何结果。如果可能出现问题,我还将使用NetworkManager来管理网络连接。
然而,随着操作的成功,因为如果我手动重新启动OpenVPN,它就会工作。
发布于 2018-12-04 10:25:19
要避免获得“拒绝权限”,请尝试将OpenVPN客户端作为根用户运行,并在稍后的客户端配置文件中将用户更改为权限较低的用户。
例:
user nobody
group nogroup 我使用下面的systemd脚本将客户机作为systemctl服务运行。当恢复网络连接时,它会自动重新连接。
https://github.com/thilinaba/systemd-scripts/blob/master/openvpn-client.service
在脚本中,设置路径/etc/openvpn/client.ovpn,根据设置指向客户端配置文件,并将脚本复制到/etc/systemd/system/中。复制完后,运行systemctl daemon reload来加载新服务。
然后,可以使用systemctl命令作为服务启动和停止客户端。
例:
sudo systemctl start openvpn-client.service
sudo systemctl stop openvpn-client.service
sudo systemctl status openvpn-client.service但是,您需要在客户端配置文件中设置以下参数,以启用自动重新连接功能。
proto udp
resolv-retry infinite
persist-tun如果出于某种原因希望连接成为TCP (通常不需要TCP),则必须终止客户端并在中断时再次连接。
https://serverfault.com/questions/942782
复制相似问题