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

Когда вы открываете веб‑сайт по доменному имени, система запрашивает у 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 переходит к следующему вхождению.
Примечание: в логах вы увидите блоки 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‑адреса содержатся в кеше, и общую статистику по попаданиям/промахам.
Просмотр информации 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 (systemd‑resolved, nscd, dnsmasq или ничего).
- Проверка: systemctl status systemd-resolved; systemctl status nscd; systemctl status dnsmasq.
- Посмотрите локальный кеш (логи или инструменты демона).
- Очистите кеш соответствующим инструментом (resolvectl, nscd -i hosts, restart dnsmasq).
- Очистите кеш браузера.
- Проверяйте результат с dig; если проблема не решена, проверьте upstream DNS (ровервер провайдера или 1.1.1.1 / 8.8.8.8).
- Если по-прежнему не работает — проверьте 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 проанализируйте трафик и логи до и после очистки.
Похожие материалы
Как удалить Bitmoji в Snapchat
Как защитить аккаунт Snapchat от взлома
Как устанавливать программы без лишнего софта
Как подключить iPhone к телевизору — AirPlay и Chromecast
Speak Cells в Microsoft Excel: включение и использование