最近换J4125刷了iStoreOS ,经常发现IPV6突然掉线,有时候几天有时候一个礼拜,每次都得手动重新拨号.特意整了个Shell脚本,5分钟 Ping一次主流DNS,如果都ping不通则重启wan口.
1.将脚本添加到 【系统 - 计划任务】
*/5 * * * * /bin/sh <脚本路径>
列如: */5 * * * * /bin/sh /root/PingWan.sh
#!/bin/sh
LOGFILE="/var/log/ping_check.log"
# 定义 DNS 服务器地址
ALIDNS="223.5.5.5"
TENCENTDNS="119.29.29.29"
BAIDUDNS="180.76.76.76"
# Ping 函数,判断是否能够到达指定的 DNS 服务器
ping_dns() {
dns=$1
echo "正在 ping $dns..." | tee -a $LOGFILE
ping -c 3 $dns > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "$dns 可达。" | tee -a $LOGFILE
return 0
else
echo "$dns 不可达。" | tee -a $LOGFILE
return 1
fi
}
# 检查所有 DNS 服务器是否可以 ping 通
ping_dns $ALIDNS
status_alidns=$?
ping_dns $TENCENTDNS
status_tencentdns=$?
ping_dns $BAIDUDNS
status_baidudns=$?
# 如果所有的 DNS 服务器都不可达,执行 ifup wan
if [ $status_alidns -ne 0 ] && [ $status_tencentdns -ne 0 ] && [ $status_baidudns -ne 0 ]; then
echo "所有 DNS 服务器均不可达,正在执行 /sbin/ifup wan。" | tee -a $LOGFILE
/sbin/ifup wan
else
echo "DNS 服务器是可达的,无需执行任何操作。" | tee -a $LOGFILE
fi