Як читати вміст локального кешу DNS?


31

Я знаю, що в Windows я можу видавати ipconfig /displaydnsі бачу вміст кеша локального DNS.

Як я можу перерахувати вміст кешу DNS в Linux?

Я хотів би отримати якомога більше рішень для перехресного дистрибуції.


4
Наскільки мені відомо, в Linux не підтримується кеш-пам'ять DNS, яка використовується в Linux (резольвер), якщо система не використовує локальне кешування лише служби dns на клієнті.
Нікхіл Маллі

У вас завжди є /etc/hostsфайл, який може містити записи, створені службами чорного списку DNS.

Відповіді:


15

До systemdцього кешування DNS на рівні ОС майже не було

До systemdне було кешування DNS рівня ОС на Linux (і , ймовірно , більшість Unix), якщо nscdі dnsmasqне був встановлений і запущена.

Вже тоді функція кешування DNS nscdу Debian була відключена за замовчуванням у принаймні просто тому, що вона порушена .

Що стосується dnsmasq, то кешування , здається, відбувається в оперативній пам'яті за замовчуванням.


2
Багато систем сьогодні використовуються dnsmasqза замовчуванням, тому unix.stackexchange.com/q/162973/79839 може бути корисним.
пташенята

1
І в наші дні все, що використовується systemd, systemd-resolvedза замовчуванням працює, що кешує результати DNS на основі їх TTL
Drew

9

nscd- це сервіс імен кешування Daemon. Це утиліта, яку Linux, Solaris та інші використовують для кешування пошукових служб імен. Служба імен в цьому випадку - це загальний термін, не обмежений суто роздільною здатністю, а також користувачами, групами тощо.

Я не знаю способу переглянути фактичний вміст кешу, хоча ви можете відображати статистику /usr/sbin/nscd -g.

Це може принаймні показати вам, наскільки ефективний ваш кеш, хоч і не зовсім те, що він вирішує.

У вас можуть бути інші варіанти, якщо ви використовуєте альтернативний інструмент кешування, наприклад DNSMASQ.


3

Якщо ви використовуєте nscd, ви можете переглянути вміст (а можливо, і інший сміття), показавши рядки ASCII з файлу бінарного кешу. У Debian / Ubuntu цей файл призначений /var/cache/nscd/hostsдля кешу хостів / DNS, тому ви можете запустити, strings /var/cache/nscd/hostsщоб побачити хостів у кеші.

Зауважте, що це повний хак, оскільки, здається, немає належного способу перевірити nscdкеш без декодування бінарного формату.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.