如何在 OSX 中查看 DNS 缓存?

问题描述 投票:0回答:3

要列出 OSX 10.11.6 中的 DNS 缓存条目,我尝试了

dscacheutil -statistics
但没有成功。

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

如何只打印 DNS 缓存中的内容而不刷新它?

dns osx-elcapitan oscache
3个回答
23
投票

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


21
投票

正如 @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

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

sudo log config --mode "private_data:off"

干杯!


0
投票

我能找到的最接近的东西(macOS 14.2.1)

sudo su
dns-sd -Q domain.com

缓存刷新的实时日志(打开两个终端)

1号航站楼

sudo su
dns-sd -Q domain.com

2 号航站楼

sudo su
killall -HUP mDNSResponder
© www.soinside.com 2019 - 2024. All rights reserved.