隧道build立后的OpenVPN运行脚本

我很难搞清楚我该如何更新我的Cloudflare账户上的Alogging。 我已经设置了一个脚本来检查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请求? 我在这里100%失利。

你检查: ipchange cmd而不是up cmd

执行如下:

 cmd ip_address port_number 

从openvpn男人:

如果您正在dynamicIP地址环境中运行,其中任何一个对等体的IP地址都可能在不事先通知的情况下更改,则可以使用此脚本来编辑/ etc / hosts文件并使用对等体的当前地址。 每当远程对端更改其IP地址时,脚本都会运行。

尝试将脚本的内容封装在括号中并作为背景。

 (sleep 10 # Call dns update ) & 

这将运行子shell中的命令,并在后台运行。 如果遇到僵尸进程的问题,请使用命令disown $! disown催生的进程disown $! 在后台命令之后。 这假定你正在使用bash作为脚本shell。