Битлента
Сетевые команды и утилиты5 мин чтения·

Get-DnsClientCache и ipconfig /displaydns: как посмотреть, что хранится в DNS-кэше Windows

Как посмотреть содержимое локального DNS-кэша Windows через Get-DnsClientCache и ipconfig /displaydns и как понимать поля записей.

Кратко

Содержимое DNS-кэша Windows показывают Get-DnsClientCache в PowerShell и ipconfig /displaydns в cmd. В записях видны имя, тип, оставшееся время жизни и данные ответа, а очищает кэш Clear-DnsClientCache или ipconfig /flushdns.

Зачем заглядывать в кэш

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

Просмотр кэша отвечает на эти вопросы без догадок. Вы видите, какое имя разрешалось, в какой адрес, и сколько секунд запись ещё будет считаться действующей. Очистка кэша — отдельное действие, которое описано на странице про ipconfig /flushdns; здесь речь только о чтении.

Две команды для одной цели

В cmd используется ipconfig /displaydns. Вывод длинный: для каждой записи печатается несколько строк, и найти нужное имя глазами бывает неудобно. Лучше перенаправить результат в файл или отфильтровать, например командой ipconfig /displaydns | findstr /i имя.

В PowerShell то же даёт Get-DnsClientCache. Результат — таблица, в которой удобно искать. Фильтр по имени выглядит как Get-DnsClientCache -Name имя. Если нужен только определённый тип записей, используйте Where-Object по полю Type. Результат можно сохранить командой Export-Csv, если нужно изучить его позже или показать специалисту.

Оба способа читают один и тот же кэш системы, а не разные хранилища. Выбор зависит лишь от того, в какой оболочке вам удобнее работать.

Поля записи и их смысл

Вот что обычно содержится в выводе Get-DnsClientCache.

ПолеЗначение
Entry / NameИмя, которое разрешалось
TypeТип: A, AAAA, CNAME и другие
StatusСостояние записи, например успешный ответ
TimeToLiveСколько секунд запись ещё хранится
DataСодержимое: адрес или другое имя

Тип A хранит адрес IPv4, AAAA — адрес IPv6, CNAME — указатель на другое имя. Если в одном имени цепочка из CNAME и A, вы увидите несколько строк, где первая указывает на следующую. Это не ошибка.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Как использовать просмотр кэша при поиске проблем

Несколько типовых сценариев:

  • Сайт переехал на новый адрес, а у вас открывается старый. Найдите имя в кэше и сверьте адрес с тем, что выдаёт Resolve-DnsName. Если адреса различаются, запись в кэше устарела.
  • Имя не открывается, хотя у соседей всё в порядке. Поищите в кэше запись с неуспешным статусом: она может держаться некоторое время и мешать повторным попыткам.
  • Подозрение на изменения в файле hosts. Записи из файла hosts тоже могут появляться в кэше, поэтому имя, указывающее на неожиданный адрес, стоит проверить в самом файле.
  • Нужно понять, какие имена вообще запрашивает программа. Просмотр кэша после запуска покажет часть из них, хотя это неполная картина.

Для сравнения живого ответа с кэшем всегда запрашивайте имя напрямую через Resolve-DnsName или nslookup.

Чего кэш не покажет и пример чтения записей

Кэш хранит только то, что успел запомнить: записи с коротким временем жизни исчезают быстро, а после перезагрузки или очистки он пустеет. Поэтому отсутствие имени в списке не доказывает, что запроса не было. Кроме того, браузеры ведут собственные кэши имён, независимые от системного. Сброс системного кэша не всегда очищает браузерный.

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

Не воспринимайте список как журнал посещений: он не хранит историю, а лишь временные ответы. Тем не менее на общем компьютере его содержимое отражает недавно запрошенные имена, поэтому очищать его перед передачей техники другому человеку разумно.

Предположим, вы выполнили Get-DnsClientCache -Name example.org и увидели две строки. В первой тип CNAME, а в поле Data указано другое имя. Во второй тип A, а в поле Data — числовой адрес. Это значит, что запрошенное имя было псевдонимом, который в итоге привёл к адресу. Значение TimeToLive показывает, сколько секунд запись ещё будет считаться действующей.

Сравните этот адрес с результатом Resolve-DnsName -Name example.org. Если они совпадают, кэш в порядке. Если нет, вы увидели устаревшую запись. Сам домен example.org здесь служебный пример, подставьте нужное вам имя.

Не пугайтесь большого числа записей: система запоминает ответы по всем именам, к которым обращались программы, включая фоновые службы.

Связь с файлом hosts и безопасностью и итоговая последовательность проверки

Записи из файла hosts попадают в кэш, поэтому просмотр кэша помогает заметить неожиданные привязки имён. Если банковский или почтовый сайт указывает на странный адрес, проверьте файл hosts и убедитесь, что он не изменён вредоносной программой. Обычно в нём преимущественно комментарии.

Если вы обнаружили подозрительные записи, не пытайтесь разбираться на ходу: выполните проверку защитным ПО, смените пароли с чистого устройства и сверьтесь с материалами о безопасности. Одно лишь наличие записи в кэше не доказывает заражения, но повод для внимательной проверки есть.

Очистку кэша после просмотра выполняйте только когда она нужна для решения задачи, а не из привычки.

Для проверки нужного имени достаточно трёх шагов. Сначала посмотрите запись командой Get-DnsClientCache -Name имя, если она есть. Затем запросите то же имя напрямую через Resolve-DnsName и сравните адреса. Если адреса различаются, выполните Clear-DnsClientCache и повторите запрос. Если после очистки значение стало верным, дело было в устаревшей записи, а не в сервере DNS или самом сайте. Если расхождение осталось, проблема глубже: проверьте файл hosts и настройки DNS на адаптере.

Просмотр кэша стоит сочетать с другими проверками, а не использовать отдельно. Если имя не открывается, посмотрите, есть ли оно в кэше, затем обратитесь к DNS-серверу напрямую, затем проверьте доступность самого адреса. Так вы разделите три возможные причины: устаревший кэш, ошибку DNS и недоступный сервер. Этот порядок экономит время и не требует очистки кэша заранее.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
dnspowershellкэшwindows

Часто задаваемые вопросы

Читайте также