我可以在 OSX 中分析 DNS 查找吗?

我可以在 OSX 中分析 DNS 查找吗?

我对本地主机上的某个地址的某些请求存在延迟问题。我怀疑 DNS 查找出了问题。

有没有办法可以分析 OSX 上的 DNS 查找?例如,在尝试进行查找时,是否有日志可以供我查看?

答案1

您可以运行 tcpdump 来转储 DNS 数据包并查看 DNS 流量的行为方式。在终端中输入以下内容应该可以解决问题:

sudo tcpdump -i en0 -n udp port 53

应该-i en0引用您的活动接口。在 Mac 上,这通常是en0,但如果您同时拥有以太网插孔和无线适配器,则可能需要使用en1。这将产生如下输出(为了清晰起见,我将长行换行了):

22:19:46.160992 IP 192.168.1.143.61150 > 192.168.1.1.53:
  60237+ A? www-google-analytics.l.google.com. (51)
22:19:46.184272 IP 192.168.1.1.53 > 192.168.1.143.61150:
  60237 11/0/0 A 74.125.225.233, A 74.125.225.238, A 74.125.225.224,
  A 74.125.225.225, A 74.125.225.226, A 74.125.225.227, A 74.125.225.228,
  A 74.125.225.229, A 74.125.225.230, A 74.125.225.231, A 74.125.225.232 (227)

192.168.1.143 > 192.168.1.1此转储显示我的计算机向路由器 ( )发出了请求22:19:46.160992。我的路由器在 处回复了22:19:46.184272响应。因此,此 DNS 请求大约花费了 23 毫秒。

如果您怀疑 DNS 性能存在问题,请运行 tcpdump 命令并查找您感兴趣的服务器的 DNS 请求。如果您看到长时间延迟或多次尝试,则说明存在问题。

答案2

我对本地主机上某个地址的某些请求存在延迟问题。

当您说“localhost”时,您真的是指 localhost 吗?如 127.0.0.1 或 ::1?

您可以使用 tcpdump 来查找解析器流量,正如前面的发帖人所建议的那样,但如果您实际上指的是 localhost,那么很有可能该名称甚至没有使用 DNS 进行解析。

相关内容