15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
10.10.2024

Как очистить DNS-кэш в Windows, macOS и Chrome

Очистка DNS-кэша заставляет вашу операционную систему или браузер удалить локально сохранённые DNS-записи и получить актуальные сопоставления с авторитетных серверов имён. Эта единственная операция устраняет удивительно широкий спектр сбоев подключения — от ошибок ERR_NAME_NOT_RESOLVED до устаревших IP-записей, оставшихся после миграции сервера.

Что такое DNS-кэш? Это временная локальная база данных, поддерживаемая вашей операционной системой (и отдельно некоторыми браузерами), которая хранит результаты предыдущих DNS-запросов. Каждый раз, когда вы разрешаете имя хоста, например example.com, полученный IP-адрес сохраняется вместе со счётчиком TTL (Time To Live). До истечения этого TTL ваша система полностью пропускает вышестоящий резолвер и использует кэшированную запись — это быстро, но становится проблемой в тот момент, когда запись устаревает, оказывается отравленной или указывает на выведенный из эксплуатации сервер.

Почему DNS-кэш становится проблемой

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

  • Миграция сервера или смена IP: Когда сайт переезжает на новую инфраструктуру, его DNS-записи обновляются новой записью A или AAAA. Если ваш локальный кэш всё ещё содержит старый IP, каждый запрос уходит не на тот хост — что часто приводит к таймауту соединения или ошибке несоответствия TLS-сертификата.
  • Отравление DNS-кэша: Вредоносное ПО и атаки типа «человек посередине» могут внедрять поддельные записи в ваш локальный кэш, незаметно перенаправляя трафик на серверы, контролируемые злоумышленником. Очистка кэша немедленно удаляет отравленные записи.
  • Негативное кэширование: Неудачный DNS-запрос (ответ NXDOMAIN) также кэшируется. Если домен был временно недоступен и отрицательный результат был закэширован, ваша система откажется разрешать его снова до истечения отрицательного TTL — даже после того, как домен снова станет доступен.
  • Конфликты split-horizon DNS: Разработчики, работающие с локальными переопределениями /etc/hosts или резолверами, назначенными VPN, часто сталкиваются с устаревшими записями кэша, которые переопределяют предполагаемую маршрутизацию.
  • Артефакты после отключения VPN: Остаточные DNS-записи от сеанса VPN могут сохраняться после отключения, вызывая утечки DNS или сбои маршрутизации в локальной сети.

Как очистить DNS-кэш в Windows

Процедура одинакова для Windows 7, 8, 10 и 11. Единственное существенное различие — предпочитаете ли вы командную строку или PowerShell.

Метод 1: Командная строка (ipconfig /flushdns)

  1. Нажмите Win + R, введите cmd, затем нажмите Ctrl + Shift + Enter, чтобы запустить командную строку с правами администратора. Либо найдите Командную строку в меню «Пуск», щёлкните по ней правой кнопкой мыши и выберите Запуск от имени администратора.
  2. Выполните команду очистки:
ipconfig /flushdns
  1. При успешной очистке отображается:
Windows IP Configuration

Successfully flushed the DNS Resolver Cache.

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

Метод 2: Windows PowerShell

PowerShell предоставляет специальный командлет, который взаимодействует непосредственно со службой DNS-клиента, а не через устаревший интерфейс ipconfig.

  1. Нажмите Win + X и выберите Windows PowerShell (Администратор) или Терминал (Администратор) в Windows 11.
  2. Выполните:
Clear-DnsClientCache

При успешном выполнении подтверждающего вывода нет — команда завершается без сообщений. Чтобы убедиться, что кэш пуст, сразу после выполните Get-DnsClientCache; результатов быть не должно.

Метод 3: Перезапуск службы DNS-клиента

В редких случаях, когда приведённые выше команды не работают — как правило, из-за повреждённого состояния службы DNS-клиента — перезапуск самой службы очищает кэш как побочный эффект:

Stop-Service -Name Dnscache -Force
Start-Service -Name Dnscache

Важное предупреждение: В некоторых конфигурациях Windows служба DNS-клиента настроена как зависимость для других сетевых служб. Её остановка может кратковременно прервать сетевое подключение. Не выполняйте это на рабочем сервере без окна технического обслуживания.

Просмотр текущего DNS-кэша (Windows)

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

Get-DnsClientCache

Это выводит все кэшированные записи с их TTL, типом записи и разрешёнными данными — что даёт значительно больше диагностической информации, чем слепая очистка кэша.

Как очистить DNS-кэш на macOS

macOS использует mDNSResponder в качестве демона службы DNS во всех современных версиях. Механизм очистки остаётся неизменным начиная с macOS Sierra, однако в более старых версиях требовались другие команды.

macOS Ventura, Monterey, Big Sur, Catalina, Mojave, High Sierra, Sierra (10.12 и новее)

  1. Откройте Терминал через Applications > Utilities > Terminal или нажмите Cmd + Space и введите Terminal.
  2. Выполните:
sudo killall -HUP mDNSResponder
  1. При появлении запроса введите пароль администратора. Поле пароля не будет отображать вводимые символы — это ожидаемое поведение. Нажмите Enter для подтверждения.

Сообщения об успешном выполнении нет. Сигнал -HUP указывает mDNSResponder перезагрузить конфигурацию и очистить кэш без полного перезапуска.

macOS El Capitan и Yosemite (10.11 / 10.10)

El Capitan использует ту же команду mDNSResponder, что и выше. В Yosemite mDNSResponder был временно заменён на discoveryd, что потребовало другого подхода:

sudo discoveryutil udnsflushcaches

macOS Mavericks, Mountain Lion и Lion (10.9 и старее)

sudo killall -HUP mDNSResponder

Очистка дополнительных уровней DNS-кэша на macOS

macOS поддерживает более одного DNS-кэша. Для полной очистки — особенно актуальной при отладке проблем split-DNS или mDNS — выполните все три команды последовательно:

sudo killall -HUP mDNSResponder
sudo killall mDNSResponderHelper
sudo dscacheutil -flushcache

dscacheutil -flushcache очищает кэш Directory Services, который хранит дополнительные данные разрешения имён, используемые процессами системного уровня. Если пропустить эту команду, могут остаться записи, которые mDNSResponder не затрагивает.

Как очистить DNS-кэш в Google Chrome

Chrome поддерживает собственный внутренний DNS-кэш, который работает полностью независимо от резолвера на уровне ОС. Это намеренное архитектурное решение — сетевой стек Chrome (построенный на библиотеке net:: Chromium) заблаговременно разрешает домены, которые, по его прогнозу, вы посетите, и кэширует эти результаты в процессе. Это означает, что вы можете очистить DNS-кэш ОС, а Chrome всё равно будет отдавать устаревшие записи из собственного хранилища.

Пошаговая инструкция: очистка DNS-кэша Chrome

  1. Откройте Google Chrome.
  2. В адресной строке перейдите по адресу:
chrome://net-internals/#dns
  1. Нажмите кнопку Clear host cache. Это немедленно очищает все DNS-записи, хранящиеся во внутреннем кэше Chrome.

Сброс пулов сокетов Chrome

Записи DNS-кэша и открытые TCP/TLS-соединения — это разные вещи. Если вы очистили DNS-кэш, но Chrome всё ещё маршрутизирует трафик через старое соединение (например, после смены IP сервера), необходимо также сбросить пул сокетов:

  1. Перейдите по адресу:
chrome://net-internals/#sockets
  1. Нажмите Flush socket pools.

Это закрывает все простаивающие и активные keep-alive-соединения, вынуждая Chrome устанавливать новые TCP-соединения с использованием вновь разрешённых IP-адресов.

Перезапуск Chrome после очистки кэша

Полностью закройте все окна Chrome и снова откройте браузер. На macOS убедитесь, что Chrome не продолжает работать в фоновом режиме через Dock — щёлкните правой кнопкой мыши по значку и выберите Quit, а не просто закрывайте окно.

Сравнение DNS-кэша: уровень ОС и уровень браузера

СвойствоDNS-кэш ОСDNS-кэш Chrome
Область действияВсе приложения на уровне системыТолько браузер Chrome
Команда очистки (Windows)`ipconfig /flushdns``chrome://net-internals/#dns`
Команда очистки (macOS)`sudo killall -HUP mDNSResponder``chrome://net-internals/#dns`
Учитывает настройки TTL ОСДаЧастично (использует собственную логику TTL)
Реагирует на изменения DNS в VPNДаНе сразу
Виден диагностическим инструментам`Get-DnsClientCache`, `dscacheutil -cachedump`Только через внутренние инструменты Chrome
Очищается при перезагрузке системыДаДа (память процесса)
Очищается при перезапуске браузераНетДа

Команды очистки кэша по платформам

Платформа / ВерсияКоманда
Windows (все версии)`ipconfig /flushdns`
Windows PowerShell`Clear-DnsClientCache`
macOS 10.12 и новее`sudo killall -HUP mDNSResponder`
macOS Yosemite (10.10)`sudo discoveryutil udnsflushcaches`
macOS (полная очистка)`sudo killall -HUP mDNSResponder && sudo dscacheutil -flushcache`
Google Chrome (все ОС)`chrome://net-internals/#dns` > Clear host cache
Linux (systemd-resolved)`sudo systemd-resolve –flush-caches`
Linux (nscd)`sudo service nscd restart`

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

Распространённые ошибки, которые устраняет очистка DNS-кэша

  • ERR_NAME_NOT_RESOLVED — Chrome не может разрешить имя хоста. Почти всегда является проблемой DNS; очистите кэш как ОС, так и Chrome.
  • DNS_PROBE_FINISHED_NXDOMAIN — Резолвер вернул ответ о несуществующем домене. Может быть устаревшей отрицательной записью кэша.
  • ERR_CONNECTION_TIMED_OUT после миграции сервера — Старый IP всё ещё кэширован. Очистите кэш ОС и убедитесь с помощью nslookup или dig, что возвращается новый IP.
  • Ошибки несоответствия TLS/SSL-сертификата — Если кэшированный IP указывает на другой сервер, нежели тот, на котором находится правильный сертификат, вы получите ошибку несоответствия имени сертификата. Это часто происходит при переносе домена между хостинг-провайдерами. Если вы управляете SSL-инфраструктурой, убедитесь, что ваши SSL-сертификаты выпущены для правильного источника до истечения DNS TTL.
  • Периодические ошибки 404 после миграции CMS — Сайт загружается, но ресурсы или страницы возвращают 404. Часто вызвано тем, что CDN или обратный прокси всё ещё разрешает старый источник. Очистите кэш на каждом уровне.

Распространение DNS и локальный кэш: важное различие

Распространённое заблуждение состоит в том, что очистка локального DNS-кэша сделает только что опубликованную DNS-запись немедленно видимой. Это не так — если вышестоящий рекурсивный резолвер (DNS-сервер вашего провайдера или публичный резолвер, например 8.8.8.8) также закэшировал старую запись, вы продолжите получать старый IP до истечения кэша этого резолвера.

Правильный диагностический процесс:

  1. Проверьте авторитетную запись напрямую с помощью dig @8.8.8.8 example.com A или nslookup example.com 1.1.1.1.
  2. Если авторитетная запись верна, но локальное разрешение неправильное, очистите локальный кэш ОС.
  3. Если сама авторитетная запись всё ещё неверна, проблема находится на уровне DNS-регистратора или панели управления хостингом, а не в локальном кэше.

При управлении DNS для доменов, размещённых на выделенных серверах, всегда устанавливайте низкий TTL (300 секунд) как минимум за 24 часа до запланированной миграции. Это минимизирует окно распространения и снижает масштаб воздействия устаревших записей кэша по всему интернету.

Последствия управления DNS-кэшем для безопасности

Отравление DNS-кэша (также известное как DNS-спуфинг) — это класс атак, при которых злоумышленник внедряет вредоносные записи A или CNAME в кэш резолвера, перенаправляя пользователей на мошеннические серверы. Хотя DNSSEC обеспечивает криптографическую проверку на уровне протокола, соблюдение гигиены локального кэша остаётся практической мерой первого реагирования.

Если вы подозреваете, что ваш DNS-кэш был отравлен:

  1. Немедленно очистите локальный кэш с помощью соответствующей команды для вашей ОС.
  2. Переключитесь на резолвер с поддержкой DNSSEC, например Cloudflare (1.1.1.1) или Google (8.8.8.8).
  3. Проверьте запущенные процессы на наличие вредоносного ПО, которое может изменять файл hosts (C:WindowsSystem32driversetchosts в Windows, /etc/hosts в Unix-системах).
  4. Проверьте настройки DNS вашего роутера — злоумышленники, скомпрометировавшие роутер, могут перенаправлять все DNS-запросы в сети независимо от состояния локального кэша.

Для компаний, использующих собственную почтовую инфраструктуру, целостность DNS особенно критична. Неправильно настроенные или отравленные DNS-записи напрямую влияют на проверку SPF, DKIM и DMARC. Если вы пользуетесь услугами почтового хостинга, убедитесь, что записи MX, SPF и DKIM корректно разрешаются после любых изменений DNS.

Автоматизация очистки DNS-кэша

Для разработчиков и системных администраторов, которые регулярно работают с изменениями DNS — особенно при настройке панелей управления VPS, переключении между средами разработки и продакшена или миграции доменов — автоматизация очистки полностью исключает ручной шаг.

Запланированная задача Windows (PowerShell):

$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-Command Clear-DnsClientCache"
$trigger = New-ScheduledTaskTrigger -Daily -At "03:00AM"
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "FlushDNSCache" -RunLevel Highest

Plist для launchd на macOS (ежедневная очистка в 3:00):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.local.flushdns</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/bash</string>
    <string>-c</string>
    <string>killall -HUP mDNSResponder</string>
  </array>
  <key>StartCalendarInterval</key>
  <dict>
    <key>Hour</key>
    <integer>3</integer>
    <key>Minute</key>
    <integer>0</integer>
  </dict>
</dict>
</plist>

Сохраните этот файл в ~/Library/LaunchAgents/com.local.flushdns.plist и загрузите его с помощью launchctl load ~/Library/LaunchAgents/com.local.flushdns.plist.

Автоматическая очистка наиболее полезна в CI/CD-конвейерах, где DNS-записи обновляются программно в рамках рабочего процесса развёртывания, и агенты сборки должны разрешать новые записи сразу после применения изменений.

Матрица технических решений: когда и где выполнять очистку

СимптомОчистить кэш ОСОчистить кэш ChromeОчистить кэш роутераПроверить вышестоящий резолвер
Сайт открывается в Firefox, но не в ChromeНетДаНетНет
Сайт недоступен во всех браузерахДаДаНетДа
Сайт недоступен на всех устройствах в сетиДаДаДаДа
`nslookup` показывает правильный IP, но сайт не открываетсяНетДа (сокеты)НетНет
Сайт открывается у коллег, но не у васДаДаНетДа
Только что завершена миграция сервераДаДаНетДа
Подозрение на отравление DNSДаДаДаДа

Практический чек-лист до и после очистки кэша

  • Перед локальной очисткой убедитесь, что изменение DNS распространилось на авторитетные серверы с помощью dig или онлайн-инструмента, например whatsmydns.net.
  • Обратите внимание на текущий TTL записи, с которой возникла проблема — если он составляет 86400 секунд (24 часа), локальная очистка поможет только вам; другие пользователи будут видеть старую запись ещё до 24 часов.
  • В Windows выполните ipconfig /displaydns перед очисткой, чтобы сохранить снимок текущего состояния кэша для диагностики.
  • После очистки используйте nslookup example.com или ping example.com, чтобы убедиться, что возвращается новый IP, прежде чем открывать браузер.
  • При работе в среде виртуального веб-хостинга помните, что серверы имён хостинг-провайдера также кэшируют записи — обратитесь в службу поддержки, если распространение, по всей видимости, застряло на уровне сервера.
  • Для Chrome в частности: после очистки DNS-кэша также очистите пул сокетов и выполните принудительную перезагрузку (Ctrl + Shift + R в Windows/Linux, Cmd + Shift + R в macOS), чтобы обойти и HTTP-кэш браузера.
  • Зафиксируйте очистку в журнале изменений, если она выполняется в рабочей среде — изменения DNS и очистка кэша часто упускаются из виду при диагностике проблем, возникших спустя несколько дней после развёртывания.

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

Влияет ли очистка DNS-кэша на скорость просмотра?

Временно — да. После очистки ваша система должна выполнять новые DNS-запросы для каждого имени хоста, с которым она взаимодействует, что добавляет небольшую задержку (обычно 20–100 мс на запрос) до повторного заполнения кэша. Для большинства пользователей это незаметно. Кэш автоматически восстанавливается в течение нескольких минут обычного просмотра.

Приведёт ли очистка DNS-кэша к выходу из аккаунтов на сайтах?

Нет. Записи DNS-кэша полностью отделены от файлов cookie браузера, токенов сеансов и состояния аутентификации. Очистка DNS не затрагивает ничего из перечисленного.

Чем ipconfig /flushdns отличается от Clear-DnsClientCache?

Обе команды указывают службе DNS-клиента Windows очистить кэш. ipconfig /flushdns — это устаревший интерфейс, который взаимодействует со службой через утилиту ipconfig; Clear-DnsClientCache — это встроенный командлет PowerShell, использующий интерфейс WMI/CIM напрямую. Конечный результат идентичен, однако Clear-DnsClientCache поддерживает написание скриптов и возвращает структурированные объекты, что делает его предпочтительным в контексте автоматизации.

Почему Chrome всё ещё показывает старый сайт после очистки DNS-кэша ОС?

Chrome поддерживает собственный внутренний DNS-кэш, на который очистка на уровне ОС не влияет. Необходимо отдельно очистить кэш Chrome через chrome://net-internals/#dns. Кроме того, если старое TCP-соединение всё ещё активно в пуле сокетов Chrome, необходимо также сбросить пулы сокетов через chrome://net-internals/#sockets.

Как часто следует очищать DNS-кэш?

Универсального расписания не существует. Очищайте его по необходимости — при возникновении ошибок, связанных с DNS, после миграции сервера или домена, после подозрительного инцидента безопасности или при переключении между VPN и обычной сетевой конфигурацией. Регулярная плановая очистка оправдана только в средах разработки или тестирования, где DNS-записи меняются часто.

15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать