Как просмотреть кеш DNS в OSX?

Чтобы перечислить записи кэша DNS в OSX 10.11.6, я попробовал dscacheutil -statistics, но это не сработало.

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

Как я могу просто распечатать то, что есть в кэше DNS, без его очистки?

Ответ 1

mDNSResponder (многоадресный DNS-демон). Сигнал SIGINFO может сбрасывать сводку моментального снимка внутреннего состояния на /var/log/system.log, включая сведения о кеше. Для этого:

Сохраните системный журнал, открытый в одном терминале:

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

Отправьте сигнал SIGINFO в mDNSRsponder с другого терминала:

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)

Ответ 2

Как указывают @PrasseethaKR и @kjagiello, в High Siera mDNSResponer перешел из syslog log в log. Кроме того, ваши DNS-сообщения поиска теперь считаются закрытыми и по умолчанию будут отображаться как <private> в консоли и в log stream журнала.

Для просмотра DNS-запросов в High Sierra откройте терминал и запустите:

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

Чтобы вернуться к использованию private, просто запустите следующую команду.

sudo log config --mode "private_data:off"

Ура!