我希望我的 OpenVPN 客户端应用程序(运行于A) 到辞职当无法连接(或重新连接)到服务器时(乙)。我使用 UDP 协议。两者A和乙是Linux系统。
更准确地说,我不断收到以下日志条目。
UDPv4 link remote: [AF_INET] [remote-ip]
TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
TLS Error: TLS handshake failed
SIGUSR1[soft,tls-error] received, process restarting
Re-using SSL/TLS context
UDPv4 link remote: [AF_INET] [remote-ip]
...
我知道为什么A无法访问乙。我不想重新启动该进程,而是想退出 OpenVPN。
其中有一些选项man openvpn
我尝试使用过。
- 我设置
resolv-retry
为一个小数字(不起作用,地址乙可以解决)。 - 我设置
connect-retry-max
为 1(不起作用,我正在使用 UDP)。
我猜我正在考虑一些选择……
编辑:背景信息:我想这样做是因为防火墙漏洞。乙位于仅允许 SSH 通信的防火墙后面。在启动客户端之前A,我运行一个脚本,使流量从A到乙。这种方法暂时有效,但乙防火墙需要在一段时间后“更新”(例如由于网络问题,也可能因为A有动态 IP 地址)。由于没有up-pre
对应方down-pre
,我不想申请补丁并自行编译 OpenVPN 来添加它,我运行了一个包装脚本A打出一个新的洞(在乙的防火墙)并在每次 OpenVPN 停止运行时启动 OpenVPN。如果 OpenVPN 退出,这将有效。...
答案1
将 --down 指令添加到 OpenVpn 配置中,以便在 OpenVpn 关闭隧道时调用脚本。该脚本可以关闭应用程序,或者更好的是 - 坐下来尝试直接重新初始化打洞。