Гид по технологиям

Как очистить и просмотреть DNS‑кеш на Linux

6 min read Linux Обновлено 30 Dec 2025
Очистка DNS‑кеша в Linux — руководство
Очистка DNS‑кеша в Linux — руководство

Иллюстрация: изменение DNS может повлиять на скорость интернета

Когда вы открываете веб‑сайт по доменному имени, система запрашивает у DNS‑сервера IP‑адрес и сохраняет пару «домен ↔ IP» в локальном кеше. Это ускоряет последующие обращения и снижает нагрузку на сеть. Однако кеш может устареть или быть подменён (DNS‑спуфинг). Очищая кеш, вы заставляете систему снова запросить актуальные записи у DNS‑серверов.

Краткое определение: DNS — система сопоставления доменных имён с IP‑адресами; кеш — временное хранение этих сопоставлений для ускорения запросов.

Когда очистка кеша действительно нужна

  • После миграции сайта на новый сервер (сменился IP).
  • При внезапных HTTP‑ошибках только на одной машине (локальная проблема).
  • При подозрении на DNS‑подмену или компрометацию.
  • Если вы меняли локальные файлы hosts и хотите принудительно обновить сопоставления.

Важно: не всегда очищение кеша решит проблему — иногда причина в провайдере, в кеширующем CDN или в ошибке конфигурации сервера.

Как посмотреть локальный DNS‑кеш на Linux

Раньше у большинства дистрибутивов системного кеширования DNS не было по умолчанию — люди ставили dnsmasq или nscd. Современный systemd включает systemd‑resolved, который может кешировать записи. Ниже описаны способы просмотра кеша для systemd‑resolved, nscd и dnsmasq, чтобы вы понимали, какие записи хранятся до очистки.

Просмотр кеша systemd‑resolved

Для выгрузки текущих логов systemd‑resolved обычно посылают сигнал SIGUSR1, затем читают журнал. Это временный приём: сигнал заставляет демон выкинуть подробную информацию в журнал.

Выполните:

sudo killall -USR1 systemd-resolved

Затем экспортируйте логи в файл:

sudo journalctl -u systemd-resolved > ~/cache.txt

Откройте файл любым редактором, например Vim:

vim ~/cache.txt

В Vim нажмите Escape, введите /CACHE: и нажмите Enter — записи кеша находятся под меткой CACHE:. Кнопка n переходит к следующему вхождению.

Просмотр содержимого кеша systemd-resolved

Примечание: в логах вы увидите блоки CACHE: с доменами, типов записей и временем жизни (TTL).

Просмотр локального кеша nscd

nscd (Name Service Caching Daemon) может хранить кеш для hosts. На Debian/Ubuntu этот файл расположен по пути /var/cache/nscd/hosts. Чтобы извлечь читаемые строки:

sudo strings /var/cache/nscd/hosts | uniq

Для общей статистики службы выполните:

sudo nscd -g

Эти команды покажут, какие имена и IP‑адреса содержатся в кеше, и общую статистику по попаданиям/промахам.

Просмотр локального DNS-кеша nscd

Просмотр информации dnsmasq

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

Проверьте состояние службы:

sudo systemctl status dnsmasq

Если активна, отправьте сигнал для логирования и сохраните вывод:

sudo pkill -USR1 dnsmasq
sudo journalctl -u dnsmasq > ~/cache.txt
cat ~/cache.txt

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

Как очистить DNS‑кеш на Linux

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

Очистка кеша systemd‑resolved

На современных дистрибутивах используйте resolvectl:

sudo resolvectl flush-caches

На старых версиях Ubuntu (например, 17.04 — 18.04) применялся другой синтаксис:

sudo systemd-resolved --flush-caches

После выполнения команды можно проверить статистику с помощью:

resolvectl statistics

или снова посмотреть логи, как описано выше.

Очистка кеша nscd

Самый простой способ — перезапустить службу:

sudo /etc/init.d/nscd restart

Или использовать встроенное управление кешем. Сначала посмотрите состояние:

sudo nscd -g

Если кеш персистентен, принудительно инвалидируйте записи для hosts:

sudo nscd -i hosts

Очистка кеша dnsmasq

Поскольку dnsmasq хранит данные в памяти, перезапуск удалит все записи:

sudo systemctl restart dnsmasq

или

service dnsmasq restart

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

Проверка результата: как убедиться, что кеш очищен

Используйте dig или аналог для запроса и проверьте поле Query time. Если кеш удалён, время запроса обычно будет больше 0 ms (запись пришла от удалённого DNS). Пример:

dig google.com

В выводе ищите строку “Query time: X msec” — если X > 0, то запись получена от удалённого сервера. Однако отметьте: иногда локальный резолвер возвращает 0 ms для записей, найденных в локальной подсистеме, а провайдеры и CDN могут иметь свои схемы кеширования.

Очистка кеша DNS в браузере (пример — Google Chrome)

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

В Chrome откройте в адресной строке:

chrome://net-internals/#dns

Нажмите Clear host cache.

Очистка DNS-кеша Google Chrome

Для других браузеров найдите соответствующий пункт или перезапустите браузер.

Типичные сценарии и шаги действий

Ниже — проверенная методика для разных ролей и частых ситуаций.

Мини‑методология (шаг за шагом)

  1. Определите, какой процесс отвечает за DNS (systemd‑resolved, nscd, dnsmasq или ничего).
    • Проверка: systemctl status systemd-resolved; systemctl status nscd; systemctl status dnsmasq.
  2. Посмотрите локальный кеш (логи или инструменты демона).
  3. Очистите кеш соответствующим инструментом (resolvectl, nscd -i hosts, restart dnsmasq).
  4. Очистите кеш браузера.
  5. Проверяйте результат с dig; если проблема не решена, проверьте upstream DNS (ровервер провайдера или 1.1.1.1 / 8.8.8.8).
  6. Если по-прежнему не работает — проверьте hosts, firewall, маршрутизацию и CDN.

Ролевые чек‑листы

  • Обычный пользователь:

    • Перезапустить браузер и очистить его DNS‑кеш;
    • Перезагрузить сеть (Network Manager) или компьютер;
    • Проверить доступ с другого устройства.
  • Системный администратор:

    • Определить демона кеширования;
    • Очистить кеш соответствующей службы;
    • Проверить системные логи (journalctl) и использовать dig/host для проверки;
    • Изучить TTL и настройки upstream DNS.
  • Девопс/инфраструктура:

    • Проверить конфигурации DNS на серверах и балансировщиках;
    • Убедиться, что записи в authoritative DNS актуальны;
    • Координировать смену DNS с уменьшением TTL перед миграцией.

Когда очистка кеша не поможет

  • Проблема на стороне хостинга или DNS‑провайдера (авторитетная зона не обновлена).
  • CDN продолжает отдавать старую запись, потому что cache‑control настроен на стороне CDN.
  • Ошибка в конфигурации локальной сети (маршрутизатор, firewall) — тогда DNS‑кеш не при делах.

В этих случаях нужно проверить upstream, настройки самого домена и сетевое окружение.

Альтернативные подходы

  • Изменить временно DNS‑сервер на машине (например, 1.1.1.1 или 8.8.8.8) и проверить, решит ли это проблему.
  • Использовать tcpdump/wireshark для отлова DNS‑запросов и ответов, чтобы понять, откуда приходит запись.
  • На клиенте изменить /etc/hosts для теста (временно) и убедиться, что маршрут работает.

Критерии приёмки после очистки кеша

  • Запрос через dig возвращает актуальный IP, соответствующий authoritative DNS.
  • Query time в dig больше 0 ms при первом запросе после очистки кеша.
  • Браузер загружает страницу без ошибки, после очистки браузерного кеша.
  • При повторных запросах появляется стабильное поведение (TTL у записей соответствует ожиданиям).

Небольшой глоссарий (одно предложение про термин)

  • DNS — система, которая переводит доменные имена в IP‑адреса.
  • TTL — время жизни DNS‑записи в кеше.
  • systemd‑resolved — системный сервис для разрешения имён в systemd‑окружении.
  • dnsmasq — лёгкий DNS/кеш‑демон часто используемый на роутерах и в локальных сетях.
  • nscd — демон кеширования имён и других системных данных.

Заключение

Очистка DNS‑кеша — простая и часто необходимая операция при отладке сетевых проблем: она устраняет устаревшие пары «домен ↔ IP» и помогает выявить, где именно находится проблема — локально или «вверху» у провайдера/авторитетного DNS. Всегда проверяйте, какой компонент кеширует DNS на вашей системе, и не забывайте очищать кеш и в браузере. Если простые действия не помогают, следуйте чек‑листу: проверить upstream, CDN, hosts и сетевые настройки.

Ключевые заметки:

  • После миграции сервиса заранее уменьшите TTL, чтобы ускорить распространение новой записи.
  • Браузерный кеш имеет приоритет над системным — очищайте оба.
  • При подозрении на манипуляцию DNS проанализируйте трафик и логи до и после очистки.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как удалить Bitmoji в Snapchat
Социальные сети

Как удалить Bitmoji в Snapchat

Как защитить аккаунт Snapchat от взлома
Кибербезопасность

Как защитить аккаунт Snapchat от взлома

Как устанавливать программы без лишнего софта
Безопасность

Как устанавливать программы без лишнего софта

Как подключить iPhone к телевизору — AirPlay и Chromecast
Гайды

Как подключить iPhone к телевизору — AirPlay и Chromecast

Speak Cells в Microsoft Excel: включение и использование
Excel

Speak Cells в Microsoft Excel: включение и использование

Микропривычки: маленькие шаги, большие результаты
Саморазвитие

Микропривычки: маленькие шаги, большие результаты