为什么 nslookup 和 dig 会给我“警告:ID 不匹配...得到 0”错误?

为什么 nslookup 和 dig 会给我“警告:ID 不匹配...得到 0”错误?

我正在尝试解决一些持续存在的连接问题,并且在使用 dig 或 nslookup 时经常收到以下错误消息。

bash$ nslookup
> www.google.com
;; Warning: ID mismatch: expected ID 36298, got 0
;; Warning: ID mismatch: expected ID 36298, got 0
;; Warning: ID mismatch: expected ID 36298, got 0

bash$ dig www.google.com
;; Warning: ID mismatch: expected ID 34149, got 0
;; Warning: ID mismatch: expected ID 34149, got 0
;; Warning: ID mismatch: expected ID 34149, got 0

; <<>> DiG 9.8.3-P1 <<>> www.capitalone360.com
;; global options: +cmd
;; connection timed out; no servers could be reached

有人能解释一下这个错误信息的含义吗,特别是“got 0”部分?

答案1

这意味着nslookupdig收到的回复 ID 为零,而不是预期的 ID。作为防止伪造 DNS 回复的一部分,每个 DNS 查询都包含一个 ID,通常是随机选择的。DNS 服务器会将该 ID 复制到回复中,允许客户端将回复与查询进行匹配,并防止伪造的 DNS 回复被接受。

这可能是由于 DNS 服务器损坏或 DNS 转发或重写方案损坏造成的。也可能是由于欺骗性 DNS 回复攻击造成的,尽管这种情况不太可能发生。

答案2

出于好奇,我在 apple.stackexchange.com 和 SF 上的许多帖子中偶然发现了这个解决方案。

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

运行这些命令能解决您的问题吗?

资源

相关内容