已知该问题其实是 nas 所在的网络环境提供给了 nas 多个公网 v6 地址,这其实不算是 nas 的 bug,之前有工作人员表示新增了过滤功能,但是看起来并不可用。
相关讨论
多个ipv6地址中只有一个可用
路由器分配多个IPV6地址的解决办法
我个人实践,禁用网卡后再启用网卡,有时候并不能刷新 v6 地址。
个人尝试解决(都需要在命令行下执行)。
-
使用 ssh 登录到 nas 设备
-
输入 sudo vi /usr/local/bin/refresh_ipv6.sh 编写一个 shell 脚本(注意将其中的网卡设备名改为自己实际在使用的)
#!/bin/bash
# 定义网卡设备名
DEVICE="enp7s0-ovs"
# 定义日志文件路径
LOG_FILE="/var/log/ipv6_refresh.log"
# 记录开始时间
echo "$(date '+%Y-%m-%d %H:%M:%S') --- Starting IPv6 refresh for $DEVICE ---" >> $LOG_FILE
# 禁用网卡的 v6 支持
echo "$(date '+%Y-%m-%d %H:%M:%S') Disabling IPv6 on $DEVICE..." >> $LOG_FILE
/usr/sbin/sysctl -w net.ipv6.conf.$DEVICE.disable_ipv6=1 >>$LOG_FILE 2>&1
echo "$(date '+%Y-%m-%d %H:%M:%S') Waiting for 2 seconds..." >>$LOG_FILE
sleep 2
# 启用网卡的 v6 支持
echo "$(date '+%Y-%m-%d %H:%M:%S') Re-enabling IPv6 on $DEVICE..." >> $LOG_FILE
/usr/sbin/sysctl -w net.ipv6.conf.$DEVICE.disable_ipv6=0 >>$LOG_FILE 2>&1
# 记录结束时间
echo "$(date '+%Y-%m-%d %H:%M:%S') --- IPv6 refresh for $DEVICE finished ---" >> $LOG_FILE
echo "" >> $LOG_FILE
exit 0
-
输入命令 sudo chmod a+x /usr/local/bin/refresh_ipv6.sh 赋予该脚本可执行权限
-
输入命令 sudo crontab -e 后添加以下内容,新增一个计划任务,该任务每 2 个小时执行一次
0 */2 * * * /usr/local/bin/refresh_ipv6.sh
为了测试编写的脚本是否可用,可以执行 sudo crontab -e 临时在末尾新增一行,将其中的 00 改成当前时间的分钟数+N,比如如果当前是晚上 10:30 分,则将 00 更改为 31(或者是 32/33/34)。
00 * * * * /usr/local/bin/refresh_ipv6.sh
等时间到10:31 后,sudo tail /var/log/ipv6_refresh.log 检查日志信息,如果输出的内容与以下内容类似,则表示编写的脚本没有问题且执行也没有问题,则可以再次运行 sudo crontab -e 将测试用的计划任务删除。
2025-11-20 22:09:01 --- Starting IPv6 refresh for enp7s0-ovs ---
2025-11-20 22:09:01 Disabling IPv6 on enp7s0-ovs...
net.ipv6.conf.enp7s0-ovs.disable_ipv6 = 1
2025-11-20 22:09:01 Waiting for 2 seconds...
2025-11-20 22:09:03 Re-enabling IPv6 on enp7s0-ovs...
net.ipv6.conf.enp7s0-ovs.disable_ipv6 = 0
2025-11-20 22:09:03 --- IPv6 refresh for enp7s0-ovs finished ---