macOS 上的 DNS 问题

标签 dns ping traceroute nslookup dig

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

traceroute google.comping google.com 均返回未知主机

但是,nslookup google.comdig google.com 使用正确的 DNS 服务器返回了正确的结果(我使用的是 8.8.8.88.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)

前两行显示我向 75.75.76.76 发送了两次针对 google.com 的查询,一次针对 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中打开它。

关于macOS 上的 DNS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61292071/

相关文章:

javascript - 通过域名访问时页面没有响应

ruby-on-rails - `rails server` 使用Puma,域名指向127.0.0.1

python - 如何使用Python ping ip并仅获取Tk中的ms?

excel - 无法更改 Excel VBA IP 列表 ping 中的 ping 超时

c++ - 如何获得套接字的响应?

DNS将tracker.thepiratebay.org重定向到127.0.0.1

python - 无法将 DNS 解析器更改为本地主机

macos - 对安全主机 URL 执行 Ping

dns - 导航到 IP 地址显示与导航到主机名不同的页面?

android - Ping TTL 超出输出解密