检测 Linux/Ubuntu 上的 vpnc 连接已断开的最简单方法是什么?
手动检测的方法是检查接口(tun0)是否出现在 /sbin/ifconfig 输出中。有没有更好的方法可以立即找出答案,以便运行脚本重新启动连接?
答案1
该脚本/etc/vpnc/vpnc-script
在各种事件上被调用,包括连接和断开连接。
这听起来像是你正在使用 ubuntu 或 debian。如果是,脚本
/etc/vpnc/vpnc-script-disconnect-action
和
/etc/vpnc/vpnc-script-post-disconnect-action
针对相关事件进行调用。如果这些文件不存在,您可以创建它们,并将所需的任何逻辑放入其中。
如果您没有使用带有这些子脚本的基于 debian 的发行版,您可以/etc/vpnc/vpnc-script
直接修改以添加您想要的任何逻辑。
如果您要再次使用逻辑来调用 vpnc-connect,我建议以某种方式将其与断开连接脚本断开,这样您就不会陷入无限循环。
答案2
我使用 cron 来处理它,这样我就可以轻松更改它,而不必记住我编辑了什么脚本。cron 作业如下。
*/15 * * * * [[ -d /sys/devices/virtual/net/tun0 ]] || /usr/sbin/vpnc /etc/vpnc/yourconf.conf
答案3
通常 VPN 连接不会如此频繁地中断。对于您的情况,您可以先尝试诊断真正的连接问题,而不是编写脚本以在断开连接时自动连接到 VPN。
答案4
以下对我有用:
/sbin/ifconfig | /bin/grep -q tun0 || sudo /usr/sbin/vpnc-connect