欢迎光临
我们一直在努力

飞牛ipv6地址变更后,导致DDNS无法使用的解决办法

之前用群晖时,用DDNS也会出现ipv6地址变更后无法使用的情况,主要是linux无法像windows那样进行刷新,导致系统存在2个以上ipv6地址所致。解决办法也很简单就是通过定时清除旧的ipv6地址。
现在从群晖迁移到飞牛系统后,发现也存在同样的问题,因群晖和飞牛系统不一样,群晖的代码不能用,但原理是一样的。经过多次测试,问题得以解决。
a592c14c-809b-4d58-b938-98bcba90d82b.png
清除前
wechat_2025-08-04_132912_456.png
清除后

主要用到以下代码,通过添加cron定时任务(或1panel、宝塔面板、青龙面板等带有计划任务的第三方软件)设置每1分钟、每5分钟还是10分钟,自己设置检测频率,去检测ipv6地址的个数,超过2个执行down、up命令。

查看网口信息如下图所示
ScreenShot_2025-12-30_163509_213.png
将下列代码中的NET_IF=”enp3s0-ovs”中的enp3s0-ovs修改为自己的网口名称

#!/bin/bash

# 必须使用 sudo
if [ "$EUID" -ne 0 ]; then
    echo "[错误] 请使用 sudo 运行本脚本"
    exit 1
fi
# enp3s0-ovs为NAS的网口名称,根据自己的修改即可
NET_IF="enp3s0-ovs"

ipv6_addr_count=`ip addr | grep -E -c "2408|2409|240a|240e"`
if [ $ipv6_addr_count -gt 1 ]; then
    get_ipv6_list() {
       ip -6 addr show dev "$NET_IF" | grep "global" | awk '{print $2}' | cut -d'/' -f1	
    }

    OLD_IPV6=$(get_ipv6_list "$NET_IF")

    echo "刷新前IPv6:"
    echo "$OLD_IPV6"

    echo "IPV6地址数量大于1 , 将进行刷新"
	# 关闭、开启网络
    if systemctl is-active --quiet NetworkManager 2>/dev/null; then
        nmcli device disconnect "$NET_IF"
        nmcli device connect "$NET_IF"
    fi
else
   echo "IPV6地址数量为1 , 不进行重置!"
   echo "当前IPv6:" 
   ip -6 addr show dev "$NET_IF" | grep "global" | awk '{print $2}' | cut -d'/' -f1
fi
enp3s0为飞牛的网络接口,每个人的可能不一样,可以通过ip addr去查询
赞(0)

评论 抢沙发