首页 > 解决方案 > 在 DNS A 记录更改后,dig 和 nslookup 在 Mac OS X 上显示相同域名的不同结果

问题描述

更改主机名的 DNS A 记录后,dig显示nslookup不同的结果。虽然 dig 显示正确的 IP,但 nslookup 仍然显示旧 IP。我在macos 11.2.3

nslookup我的域的输出{{domainname}}是(请注意,我将生成的 ip 地址替换为 xxx.old.ip.xxx。

$ nslookup {{domainname}}
Server:     192.168.178.1
Address:    192.168.178.1#53

Non-authoritative answer:
Name:   {{domainname}}
Address: xxx.old.ip.xxx

dig输出(请注意,我将生成的 IP 替换yyy.new.ip.yyy为表示它与 nslookup 的情况不同的 IP

$ dig {{domainname}}
; <<>> DiG 9.10.6 <<>> {{domainname}}
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45116
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;{{domainname}}.        IN  A

;; ANSWER SECTION:
{{domainname}}. 1157    IN  A   yyy.new.ip.yyy

;; Query time: 70 msec
;; SERVER: 192.168.178.1#53(192.168.178.1)
;; WHEN: Fri Mar 12 18:29:03 CET 2021
;; MSG SIZE  rcvd: 63

出了什么问题nslookup?是DNS缓存吗?如果这是问题,我该怎么做才能强制 nslookup(和其他工具)刷新 DNS 缓存。

更新:大约 20 分钟后,nslookup 和 dig 显示相同的 IP,并且 ssh 正在使用 {{domainname}} 进行连接。

标签: macosdnsnslookupdig

解决方案


这两个响应都不是来自权威名称服务器,因此 DNS 响应来自解析器的缓存。在更改 DNS 资源记录之前,请记下 TTL 值。这是在解析器删除缓存值之前等待的秒数。对于该dig命令,缓存值上剩余的 TTL 为下一次刷新前的 1157 秒。


推荐阅读