kkkgo / UE-DDNS

Universal Embedded DDNS Shell Script
https://blog.03k.org/post/ue-ddns.html
GNU General Public License v3.0
175 stars 16 forks source link

脚本验证解析记录时出现问题 #3

Closed arcbishopw closed 9 months ago

arcbishopw commented 10 months ago

你好大佬,现在脚本运行的时候提示“IP SAME IN DNS,SKIP UPDATE.”,但记录跟需要更新的记录明显不一致,猜测是记录对比那边出了问题qwq

图片

图片

kkkgo commented 10 months ago

看到你的获取方式是URLIP,你可以执行curl -6 ipsu.03k.org|grep -n1 IPnslookup your_domain 223.5.5.5nslookup your_domain 119.29.29.29nslookup your_domain 你路由器DNS对比下。 有可能其实记录是一致的,只是你本地DNS有缓存没更新过来。 需要分析的话,加上-x参数运行:sh -x your.sh,并贴出运行日志(可删除部分敏感信息)我才能分析。

arcbishopw commented 9 months ago

你好大佬,首先声明我这个实例是虚拟机; 上面代码中,里面的curl -6 ipsu.03k.org|grep -n1 IP运行会提示无法连接到。 error1 剩下的部分当中,我先手动修改了DNSPOD的记录与我本机不同,然后在线URL检查使用ipw.cn,分别是以下结果: 1 router ipcheck

运行脚本时,内容如下: `root@BT:~ # sh -x bt.hitori.ltd@dnspod_IPV6_URL.sh

--- bt.hitori.ltd ping6 statistics --- 1 packets transmitted, 0 packets received, 100.0% packet loss' 6

--- bt.hitori.ltd ping6 statistics --- 1 packets transmitted, 0 packets received, 100.0% packet loss'

在脚本结尾,明明ping命令没有得到ICMPv6相应,依然判定IP相符

kkkgo commented 9 months ago

你执行这句命令看看完整输出:

ping
ping -6 -c1 -W1 bt.hitori.ltd

我猜测原因是因为你的系统的ping命令输出和其他系统不太一样,ping的时候会显示网卡自身的IP,导致被误判为域名的IP。

kkkgo commented 9 months ago

另外,如果是网卡自身的IP,可以选择从网卡中直接获取IP,选[2]From Interface来生成脚本更加准确。

kkkgo commented 9 months ago

脚本也更新了ping函数,你可以重新生成脚本试试。如果IPv6地址是虚拟机本身的网卡,可以直接选从网卡获取IP,减少URL请求。

arcbishopw commented 9 months ago

你执行这句命令看看完整输出:

ping
ping -6 -c1 -W1 bt.hitori.ltd

我猜测原因是因为你的系统的ping命令输出和其他系统不太一样,ping的时候会显示网卡自身的IP,导致被误判为域名的IP。

以下是运行截图: test 命令不一样很有可能,因为这个系统基底是FreeBSD,默认是没有Curl,ip,nslookup这些命令的,话说回来;

感谢大佬,经过更新之后脚本已经可以完美运行,以下是结果: 111 222

额外一提,ping这方面BSD和Linux确实不太一样,以下是我在armbian上运行得到的结果: 333

arcbishopw commented 9 months ago

再次感谢kkkgo大佬,我的ISSUE解决了,我们免费了!(滑稽)

arcbishopw commented 9 months ago

ISSUE通过更新解决