OpenWRT IPv6 掉线重启接口脚本

最近开始发现IPv6其实真是个好东西

于是开始重度使用IPv6链接家里的路由使用了

但是,发现IPv6会隔一段时间失效,可能是局部地区的策略问题

于是找脚本自动判断和重启IPv6了

下面是找到和优化后的IPv6检查重启脚本:

将一下脚本保存为/root/i6check.sh

并crontab -e增加定时任务*/5 * * * * sh /root/i6check.sh

#!/bin/sh
#sleep 100
# check erery 5 minute
# */5 * * * * sh /root/i6check.sh
DATE=`date +%Y-%m-%d-%H:%M:%S`
tries=0
echo --- IPv6_watchdog start ---
while [[ $tries -lt 5 ]]
do
        if /bin/ping -c 1 2001:4860:4860::8888 >/dev/null
        then
        echo "IPv6 OK"
                echo --- exit ---
#               echo $DATE OK >>my_watchdog.log
                exit 0
        fi
        tries=$((tries+1))
        echo "第$((tries+1))次失败"
        sleep 10
#       echo $DATE tries: $tries >>my_watchdog.log
done
# restart IPv6
# echo $DATE ifdown wan6 >>my_watchdog.log
ifdown wan6
sleep 2
ifup wan6

IPv4检测重启脚本:

将一下脚本保存为/root/i4check.sh

并crontab -e增加定时任务*/5 * * * * sh /root/i4check.sh

#!/bin/sh
#sleep 100
# check erery 5 minute
# */5 * * * * sh /root/i4check.sh
DATE=`date +%Y-%m-%d-%H:%M:%S`
tries=0
echo --- IPv4_watchdog start ---
while [[ $tries -lt 5 ]]
do
        if /bin/ping -c 1 8.8.8.8 >/dev/null
        then
        echo "IPv4 OK"
                echo --- exit ---
#               echo $DATE OK >>my_watchdog.log
                exit 0
        fi
        tries=$((tries+1))
        echo "第$((tries+1))次失败"
        sleep 10
#       echo $DATE tries: $tries >>my_watchdog.log
done
# restart IPv6
# echo $DATE ifdown wan6 >>my_watchdog.log
ifdown wan
sleep 2
ifup wan

最后发现接入设备还是掉线,但是OpenWRT没掉线,脚本无效,最后发现原来是电信光猫路由模式分出来的IPv6的锅,改桥接,光猫拨号就好了

那我这几天不断换固件重刷,岂不是浪费表情的????

参考资料:

OpenWRT路由器中监控网络服务并重启的脚本 | 祁劲松的博客👨‍💻 (jamesqi.com)

开始使用  |  Public DNS  |  Google for Developers

其他资料:

OpenWRT自动检测断线脚本 – 筷子铺的博客 (kzpu.com)

 

THE END