27

要列出OSX 10.11.6中的 DNS 缓存条目,我尝试过dscacheutil -statistics,但没有奏效。

$ sudo dscacheutil -statistics
Unable to get details from the cache node

如何在不刷新的情况下打印 DNS 缓存中的内容?

4

2 回答 2

21

mDNSResponder(多播 DNS 守护程序)SIGINFO 信号可以将内部状态的快照摘要转储到/var/log/system.log,包括缓存详细信息。去做这个:

在一个终端中保持系统日志打开:

tail -f /private/var/log/system.log

从另一个终端向 mDNSResponder 发送 SIGINFO 信号:

sudo killall -INFO mDNSResponder

然后在第一个终端检查日志,您将能够看到缓存转储:

mDNSResponder[98]: ------------ Cache -------------
mDNSResponder[98]: Slt Q     TTL if     U Type rdlen
mDNSResponder[98]:  52      1827 -U-      CNAME   17 www.sublimetext.com. CNAME sublimetext.com.
...
...
mDNSResponder[98]: Cache currently contains 154 entities; 3 referenced by active questions

(欲了解更多信息man mDNSResponder:)

于 2016-08-10T19:57:57.373 回答
17

正如@PrasseethaKR 和@kjagiello 指出的那样,在High Siera mDNSResponer 已经sysloglog. 此外,您的 DNS 查找消息现在被视为私有消息,并将<private>在控制台和log stream默认情况下显示。

要查看您在 High Sierra 上的 DNS 查找,请打开终端并运行:

sudo log config --mode "private_data:on"
log stream --predicate 'process == "mDNSResponder"' --info

要返回使用私有,只需运行以下命令。

sudo log config --mode "private_data:off"

干杯!

于 2019-01-11T18:03:13.510 回答