Openwrt作为二级路由的情况下解决IPv6失效的问题

Jinpeng
Jinpeng
管理员
40
文章
0
粉丝
OpenWRTOpenwrt作为二级路由的情况下解决IPv6失效的问题已关闭评论354阅读模式

当 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

 

文章末尾固定信息

weinxin
我的微信
微信号已复制
我的微信
微信扫一扫
 
Jinpeng
  • 本文由 Jinpeng 发表于2025年12月2日 22:12:21
  • 转载请务必保留本文链接:https://www.ixmu.net/167.html