1

Я читаю о кеше DNS и, в частности, о команде ipconfig /flushdns . Есть много ресурсов - QA, блоги, сайты - которые объясняют, что такое кеш DNS, но ни один из них не говорит, где кеш DNS расположен на моей машине с Windows 8.1. Если я правильно понял, это должен быть файл с сопоставлениями, что-то вроде следующего:

example.com 123.123.123.123
foo.net 123.123.0.0

Перед тем, как запустить ipconfig /flushdns , я хочу посмотреть этот файл кеша DNS. Где я могу найти это на моей машине?

3 ответа3

2

Если вы хотите увидеть кэш DNS, последние версии Microsoft Windows поддерживают IPConfig /displaydns

(Я не думаю, что Windows 98 поддерживала это; Win98 также не поддерживал ipconfig /flushdns . Я предполагаю, что оба варианта были добавлены в одну и ту же версию Microsoft Windows.)

Это типичный / простой способ просмотра такой информации.

Я не уверен, в каком файле хранится эта информация. Я уверен, что он не использует HOSTS-подобный формат, который вы показываете, потому что я уверен, что он также отслеживает время истечения. Использование Process Explorer может помочь выяснить, к какому файлу обращаются при использовании IPConfig/displaydns .

1

Просто чтобы подтвердить то, что сказали другие, с помощью Process Hacker для поиска строк в svchost.exe вы можете увидеть записи, хранящиеся в памяти. Например.

Гораздо менее полезный вывод, чем просто использование ipconfig /displaydns (который вы всегда можете вывести в файл, используя ipconfig /displaydns>output.txt если хотите.

0

Кэш может храниться в памяти, а локальная служба DNS может не хранить файл кэша, но есть кое-что еще.

Мой ipconfig /displaydns сохранял записи между перезагрузками для меня. Это должно быть где-то на диске.

У меня была проблема с DNS сегодня, и при проверке со старой виртуальной машиной я обнаружил некоторые действительно старые записи в моем локальном dnscache. Это были записи из моей старой компании, и сначала я подумал, что, может быть, они взломали или я все еще каким-то образом был подключен к их сети. Но они также содержали некоторые из моих собственных записей от виртуальных машин довольно давно.

ipconfig /flushdns не будет стирать записи. Я попытался остановить и перезапустить службу DNS. Не помогло. Я отключил роутер от интернета и записи все еще остались. Потом я вспомнил, что эта виртуальная машина давно была контроллером домена и DNS-сервером, поэтому я подозревал, что что-то не удалялось правильно.

Я использовал procman.exe и изолировал экземпляр svchost.exe, который отвечал на запросы ping. На пинге он открыл файл hosts и больше ничего. Дурак, я должен был проверить файл hosts, прежде чем начать все это. Все старые записи были в файле hosts. После того, как они были стерты там, они не показывались в ipconfig /displaydns.

Когда локальная служба DNS останавливается и перезапускается, существующие записи стираются, что подтверждает, что они хранятся только в кэш-памяти. Но да, постоянные записи ipconfig dns, используемые ping через локальный dns, находятся в каталоге c:\windows\system32\drivers\etc\hosts.

Надеюсь, что это помогает кому-то еще, пытаясь устранить эту проблему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .