隧道建立后 OpenVPN 运行脚本

隧道建立后 OpenVPN 运行脚本

我很难弄清楚如何更新我的 cloudflare 帐户上的 A 记录。我已经设置了一个脚本来检查 IP 更改,并通过 CloudFlare API 推送更改。问题出在这里,因为我使用的是

up /usr/local/bin/script

指令,当设置 TUN/TAP 设备时,脚本会被调用。(所以我仍然没有 IP 更改)。我需要它在隧道成功应用后运行。

我尝试过使用up-delay指令和 ping(因为它是 UDP 服务器)。但这似乎也不起作用。它看起来像这样:

script-security 2
ping 10
ping-restart 60
up-delay /usr/local/bin/script
down /usr/local/bin/script

我还尝试在脚本本身内部设置一个 sleep 30 命令,以便能够使用该up命令启动它,问题是,如果我这样做,OpenVPN 会等待脚本完成后再继续连接过程(因此该过程暂停 30 秒,其中 OpenVPN 连接过程也会暂停,因此只会延长 30 秒)。

有什么想法吗?也许服务器没有回复 ping 请求?我完全搞不懂了。

答案1

您检查过吗:ipchange cmd而不是up cmd

执行如下:

cmd ip_address port_number

来自 openvpn man:

如果您在动态 IP 地址环境中运行,其中任一对等点的 IP 地址可能会在未经通知的情况下更改,则可以使用此脚本,例如,使用对等点的当前地址编辑 /etc/hosts 文件。每次远程对等点更改其 IP 地址时,都会运行该脚本。

答案2

尝试将脚本的内容括在括号中并将其置于背景中。

(sleep 10
# Call dns update ) &

这将在子 shell 中运行命令并在后台运行这些命令。如果您遇到僵尸进程问题,则在后台命令之后disown使用该命令生成的进程。这假设您正在使用脚本 shell。disown $!bash

相关内容