Очистка кэша DNS¶
Очистка кэша DNS (flush DNS) — это процедура принудительного удаления временных записей о соответствии доменных имён и IP-адресов, хранящихся в локальном кэше резолвера операционной системы. После выполнения этой операции компьютер при следующем обращении к сетевым ресурсам выполняет полный цикл DNS-запросов к вышестоящим серверам, игнорируя устаревшие локальные данные.
¶Назначение и принцип работы
Кэширование DNS-ответов применяется для ускорения повторных обращений к веб-сайтам и сетевым службам. Когда пользователь вводит адрес сайта, операционная система сначала проверяет локальный кэш. Если запись найдена и не истёк срок её жизни (TTL), ответ возвращается мгновенно, без обращения к внешним DNS-серверам. Это снижает задержки и уменьшает нагрузку на сетевую инфраструктуру.
Однако кэширование порождает проблему актуальности данных. Если IP-адрес сайта изменился на стороне владельца, а локальная запись ещё не истекла, пользователь продолжает обращаться к старому адресу. В результате сайт может не открываться, открываться с ошибкой или вести на неработающий сервер. Очистка кэша решает эту проблему принудительно, не дожидаясь естественного истечения TTL.
¶Операционные системы и команды
Способы очистки различаются в зависимости от используемой операционной системы.
¶Windows
В операционных системах семейства Windows очистка выполняется через командную строку (cmd) или PowerShell с правами администратора. Основная команда:
`` ipconfig /flushdns ``
Утилита ipconfig входит в состав системы. После выполнения команды выводится сообщение об успешно очищенном кэше DNS-резолвера. В Windows также существует служба DNS-клиента, которую можно перезапустить через оснастку управления службами (services.msc), однако команда ipconfig /flushdns является стандартным и рекомендуемым способом.
¶Linux
В дистрибутивах Linux способ очистки зависит от используемой службы кэширования. Если применяется системный резолвер systemd-resolved, используется команда:
`` sudo resolvectl flush-caches ``
В более старых версиях systemd применялась команда sudo systemd-resolve --flush-caches. Для службы dnsmasq очистка выполняется перезапуском службы:
`` sudo systemctl restart dnsmasq ``
Если в системе используется кэширующий сервер nscd, применяется команда sudo nscd -i hosts. В случае отсутствия отдельного кэширующего демона очистка может не требоваться, так как ядро Linux по умолчанию не кэширует DNS-ответы на уровне пользовательских приложений.
¶macOS
В операционных системах macOS команда зависит от версии. Для современных версий (начиная с macOS Monterey) используется:
`` sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder ``
Первая команда очищает кэш службы каталогов, вторая перезапускает системный DNS-резолвер mDNSResponder. В более ранних версиях (macOS Sierra и новее) достаточно было выполнить sudo killall -HUP mDNSResponder.
¶Браузеры и приложения
Помимо системного кэша, собственное кэширование DNS реализуют веб-браузеры. Например, Google Chrome хранит DNS-записи в течение заданного времени. Очистка системного кэша не всегда затрагивает кэш браузера. Для полного сброса в Chrome можно ввести в адресной строке chrome://net-internals/#dns и нажать кнопку «Clear host cache». Аналогичные механизмы существуют в Mozilla Firefox (через about:networking#dns) и других браузерах на базе Chromium.
Некоторые приложения, особенно игры и мессенджеры, также могут поддерживать собственное кэширование, но системная очистка в большинстве случаев достаточна для решения проблем с доступом к сетевым ресурсам.
¶Типичные сценарии использования
Очистка кэша DNS применяется в следующих ситуациях:
- смена IP-адреса веб-сайта при переезде на новый хостинг или сервер;
- некорректное отображение сайта после изменения DNS-записей владельцем домена;
- появление ошибок вида «Сервер не найден» или «Не удаётся получить доступ к сайту» при заведомо работающем ресурсе;
- тестирование собственных DNS-записей после их изменения;
- устранение последствий атак на DNS или подмены записей (DNS-спуфинга).
Важно понимать, что очистка локального кэша не влияет на кэширующие DNS-серверы интернет-провайдера или публичные серверы (например, Google Public DNS или Cloudflare). Если устаревшая запись хранится на вышестоящем сервере, проблема может сохраниться до истечения TTL на этом сервере.
¶Просмотр содержимого кэша
Перед очисткой бывает полезно просмотреть текущее содержимое кэша. В Windows для этого используется команда ipconfig /displaydns, которая выводит список закэшированных записей с их TTL и типом. В Linux с systemd-resolved просмотр возможен командой resolvectl statistics (общая статистика) или resolvectl query для проверки конкретного домена. В macOS команда dscacheutil -cachedump -entries Host выводит содержимое кэша.
¶Ограничения и особенности
Очистка кэша DNS не решает проблем с сетевым подключением, вызванных другими причинами: неисправностью сетевого адаптера, неправильными настройками TCP/IP, блокировками на стороне провайдера или файрвола. Процедура безопасна и не приводит к потере пользовательских данных, однако после неё первые обращения к сайтам могут выполняться медленнее, поскольку системе потребуется заново выполнить DNS-запросы.
Также следует учитывать, что в корпоративных сетях с централизованным управлением политика очистки может регулироваться администратором, а локальные изменения кэша могут быть ограничены правами пользователя.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →
