想要在 OSX 10.11.6 中列出 DNS 缓存的条目,我尝试了 dscacheutil -statistics
命令,但是它没有起作用。
$ sudo dscacheutil -statistics
Unable to get details from the cache node
如何在不清空DNS缓存的情况下仅打印其中所存储的内容?
想要在 OSX 10.11.6 中列出 DNS 缓存的条目,我尝试了 dscacheutil -statistics
命令,但是它没有起作用。
$ sudo dscacheutil -statistics
Unable to get details from the cache node
如何在不清空DNS缓存的情况下仅打印其中所存储的内容?
mDNSResponder (多播 DNS 守护进程)可以通过 SIGINFO 信号将内部状态的快照摘要转储到/var/log/system.log
中,包括缓存详细信息。为此,请执行以下操作:
在一个终端中打开系统日志:
tail -f /private/var/log/system.log
从另一个终端发送 SIGINFO 信号给 mDNSResponder:
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
)
正如@PrasseethaKR和@kjagiello所指出的,在 High Sierra 中,mDNSResponder已从syslog
移动到log
。此外,您的DNS查找消息现在被视为私有,并且默认情况下将在控制台和log stream
中显示为<private>
。
要在High Sierra上查看您的DNS查找,请打开终端并运行:
sudo log config --mode "private_data:on"
log stream --predicate 'process == "mDNSResponder"' --info
要恢复使用私有模式,请运行以下命令。
sudo log config --mode "private_data:off"
干杯!
sudo killall -INFO mDNSResponder
的日志,请打开控制台应用程序,选择左侧边栏上的设备,然后应用搜索过滤器_mdnsresponder_,可以在那里看到DNS缓存日志。 - Praseetha KRlog stream --predicate 'process == "mDNSResponder"' --info
。 - kjagiello