当 OpenWrt 作为二级路由时,有可能因为上级光猫重新拨号或更新 IPv6 地址,而导致 OpenWrt 的 WAN6 接口 IPv6 地址未到期,不会自动更新,这会造成局域网中的 IPv6 无法正常使用。
为了在这种情况下自动重启 WAN6 接口,以便让 OpenWrt 重新获取有效的 IPv6 地址,可以使用一个简易的脚本,并结合 cron 定时任务来实现。
这样可以确保 IPv6 地址的有效性,保证局域网的正常运行。
#!/bin/sh
# 检查 IPv6 连接状态的简易脚本
# --- 配置 ---
# 1. ping 一个可靠的 IPv6 地址 (例如 Google 或 Cloudflare 的公共 DNS)
# -t 1: 超时时间1秒
# -c 1: 只发送一个包
IPV6_TEST_HOST="2400:3200::1"
# 接口名称 (通常是 wan6)
WAN6_INTERFACE="wan6"
# --- 函数 ---
check_ipv6() {
# 使用 ping6 尝试连接 IPv6 测试主机
if ping6 -c 1 -W 1 "$IPV6_TEST_HOST" > /dev/null 2>&1; then
# 退出代码为 0 表示成功
return 0
else
# 退出代码非 0 表示失败
return 1
fi
}
restart_wan6() {
echo "$(date): IPv6 is down. Attempting to restart $WAN6_INTERFACE..."
# 使用 ifdown 和 ifup 重启接口
/sbin/ifdown "$WAN6_INTERFACE"
sleep 5 # 暂停5秒,确保接口完全关闭
/sbin/ifup "$WAN6_INTERFACE"
echo "$(date): $WAN6_INTERFACE restart initiated."
}
# --- 主逻辑 ---
echo "$(date): Running IPv6 check..."
if check_ipv6; then
echo "$(date): IPv6 is UP. No action needed."
else
# IPv6 检查失败,执行重启
restart_wan6
fi
文章末尾固定信息
我的微信
微信号已复制
我的微信
微信扫一扫






