如何在OSX中查看DNS缓存?

时间:2016-08-10 08:22:51

标签: dns osx-elcapitan oscache

要在 OSX 10.11.6 中列出DNS缓存的条目,我尝试了dscacheutil -statistics,但这没有用。

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

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

2 个答案:

答案 0 :(得分:17)

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

答案 1 :(得分:9)

正如@PrasseethaKR和@kjagiello指出的那样,在High Siera上,mDNSResponer已从syslog移至log。此外,您的DNS查找消息现在被视为私有消息,默认情况下在控制台和<private>中都显示为log stream

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

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

要重新使用private,只需运行以下命令。

sudo log config --mode "private_data:off"

干杯!