macos - 在 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}} 进行连接。
解决方案
这两个响应都不是来自权威名称服务器,因此 DNS 响应来自解析器的缓存。在更改 DNS 资源记录之前,请记下 TTL 值。这是在解析器删除缓存值之前等待的秒数。对于该dig
命令,缓存值上剩余的 TTL 为下一次刷新前的 1157 秒。
推荐阅读
- sql - 根据最大值从 STRUCTS 的 ARRAY 返回单个值
- python - Django频道:协程对象不是callale
- node.js - 通过 fetch 从服务器获取 mp3 文件
- assembly - Bootloader 不能在真机上工作,但 qemu 工作
- nsis - 生成安装日志
- python - 从给定节点找到一个相当大的有向未加权图(节点=500/边=22k)的最长(长度)简单循环
- python - 如何将 tf.layers.optimize_loss 从 TF 1.x 转换为 TF 2.x?
- java - Android从相机意图中压缩尺寸小且质量好的图像
- c++ - 在自己的 DLL 中使用 DLL
- arrays - Angular-Spring Boot发送字符串数组参数错误