macOS上的DNS问题

macOS上的DNS问题,dns,ping,traceroute,nslookup,dig,Dns,Ping,Traceroute,Nslookup,Dig,我在macOS Catalina 10.15.4上遇到了一个奇怪的DNS问题: traceroute google.com和ping google.com都返回了未知主机 但是,nslookup google.com和dig google.com使用正确的DNS服务器返回了正确的结果(我使用的是8.8.8.8和8.8.4.4) 有人能给我解释一下为什么会这样吗?在我看来,这些工具正在以不同的方式解析DNS 谢谢大家! 可能是他们要求不同的名称服务器。我建议做一个数据包捕获来准确地了解发生了什么

我在macOS Catalina 10.15.4上遇到了一个奇怪的DNS问题:

traceroute google.com
ping google.com
都返回了
未知主机

但是,
nslookup google.com
dig google.com
使用正确的DNS服务器返回了正确的结果(我使用的是
8.8.8.8
8.8.4.4

有人能给我解释一下为什么会这样吗?在我看来,这些工具正在以不同的方式解析DNS


谢谢大家!

可能是他们要求不同的名称服务器。我建议做一个数据包捕获来准确地了解发生了什么

首次启动tcpdump(或wireshark)。然后,您可以看到正在进行的DNS查找以及它们被发送给谁

我将给出一个使用tcpdump执行此操作的示例,因为它可能已经安装在您的机器上

首先,打开一个终端并运行sudo tcpdump-n-i any port 53

然后打开它旁边的另一个终端,运行
ping google.com
,观察第一个终端的输出。您应该看到如下内容:

16:21:10.831721 IP 10.1.0.106.53914 > 75.75.76.76.53: 46435+ [1au] A? google.com. (39)
16:21:10.832013 IP 10.1.0.106.54613 > 75.75.76.76.53: 15182+ [1au] AAAA? google.com. (39)
16:21:10.856574 IP 75.75.76.76.53 > 10.1.0.106.53914: 46435 1/0/1 A 172.217.1.206 (55)
16:21:10.859887 IP 75.75.76.76.53 > 10.1.0.106.54613: 15182 1/0/1 AAAA 2607:f8b0:400f:801::200e (67)
前两行显示我向google.com的75.75.76.76发送了两个查询,一个查询IPv4地址(类型A),一个查询IPv6地址(类型AAAA)。 第二行显示我从75.75.76.76得到了一个关于A查询(172.217.1.206)的答案,一个是关于AAAA查询(2607:f8b0:400f:801::200e)

所以试试这个,看看你要向谁发送DNS查询,以及它们有什么不同

如果要将数据包捕获保存到文件中并在以后对其进行分析,请运行相同的命令,但添加一个
-w
和一个文件参数:

sudo tcpdump -n -i any port 53 -w my-file.pcap

完成后,点击
ctrl+c
。然后,您可以使用
tcpdump-n-r my file.pcap
读取文件内容,或者在wireshark中打开它。

traceroute和
ping
都不是解决DNS问题的工具。只有
dig
是。感谢您的详细回复!我在使用tcpdump时发现,
ping
traceroute
没有发送任何查询(没有打印任何内容),而
nslookup
dig
按预期发送查询。你有什么建议我下一步应该调查哪里吗?另一条可能有用的信息是,这个问题是间歇性的。如果我重新启动系统,一切都会正常,但过一会儿就会出现故障。谢谢!嗯,可能是google.com已经被你的操作系统缓存了。您可以尝试清理缓存(不记得如何在MacOS上执行此操作),然后再试一次。这种行为与其他域或google.com相同吗?我尝试过清除缓存,但没有帮助。。所有域都有相同的行为:(你可能想在回答这个问题时尝试一些东西-