DNS A 记录更改后, dig 和 nslookup 在 Mac OS X 上显示相同域名的不同结果

问题描述

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

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

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

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

dig 输出(请注意,我用 yyy.new.ip.yyy 替换了生成的 IP,以表明它与 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}} 进行连接。

解决方法

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...