Важно: перед выполнением команд убедитесь, что у вас есть права sudo или root.
Краткое определение
DNS‑кеш — это локальное хранилище недавних DNS‑запросов. Оно ускоряет разрешение имён, но иногда содержит устаревшие записи; очистка кеша помогает при изменениях DNS или проблемах с разрешением имён.
Как определить, какой DNS‑демон запущен
Определить активный DNS‑демон можно командой systemctl или просмотром процессов:
systemctl list-units --type=service | egrep 'systemd-resolved|nscd|dnsmasq|named'
ps aux | egrep 'systemd-resolved|nscd|dnsmasq|named' | grep -v egrepЕсли у вас используется NetworkManager, он может работать совместно с systemd‑resolved. Также проверьте /etc/resolv.conf — туда указывает текущий резолвер.
systemd-resolve

На Ubuntu и других Debian‑производных часто используется systemd‑resolved. Чтобы очистить кеш:
sudo systemd-resolve --flush-cachesПроверить состояние и статистику кеша можно так:
sudo systemd-resolve --statisticsЕсли в статистике размер кеша равен нулю, очистка прошла успешно.
nscd

Red Hat‑семейство и Arch часто используют nscd. Перезапустите сервис, чтобы очистить кеш DNS:
sudo systemctl restart nscdПри необходимости можно посмотреть журналы для диагностики:
sudo journalctl -u nscd --no-pager -n 200dnsmasq

dnsmasq часто применяется на серверах и роутерах. Очистка кеша выполняется перезапуском службы:
sudo systemctl restart dnsmasqЕсли dnsmasq управляется вручную или встроен в прошивку роутера, используйте интерфейс роутера или соответствующую команду/скрипт.
named (BIND)

BIND (демон named) распространён для выделенных DNS‑серверов. Очистка кеша на сервере с systemd производится так:
sudo systemctl restart namedНа некоторых системах служба называется bind9, тогда команда будет:
sudo systemctl restart bind9Проверьте логи BIND для ошибок:
sudo journalctl -u named --no-pager -n 200Тестирование после очистки
Проверьте разрешение имён с помощью dig или host:
dig +short example.com
host example.comДля более глубокой проверки можно использовать трассировку:
dig +trace example.comЕсли запись недавно изменилась, убедитесь, что вы проверяете тот же резолвер, что и клиенты (см. /etc/resolv.conf).
Когда простая очистка не помогает
- Браузер кеширует DNS; очистите кеш браузера или перезапустите браузер.
- Маршрутизатор или провайдер может кешировать записи — перезагрузите роутер или подождите время жизни (TTL).
- Если используется DNSSEC или сложная конфигурация, проблема может быть вне локального хоста.
Альтернативные подходы
- Временно изменить /etc/hosts для обхода DNS при тестировании.
- Использовать другой резолвер (например, 1.1.1.1 или 8.8.8.8) для проверки распространённости проблемы.
- На локальной машине можно остановить локальный резолвер и отправлять запрос напрямую внешнему DNS‑серверу.
Мини‑методология очистки DNS‑кеша (быстрая последовательность)
- Определите запущенный демон (systemctl list-units / ps).
- Выполните соответствующую команду очистки или перезапуска.
- Проверьте статистику или журналы сервиса.
- Протестируйте разрешение через dig/host.
- Если не помогло, проверьте браузер, роутер и провайдера.
Чек‑лист для ролей
- Администратор сети: проверьте серверы DNS, TTL, репликацию зон и DNSSEC.
- Сисадмин на рабочей станции: перезапустите локальный резолвер и очистите кеш браузера.
- Разработчик: используйте /etc/hosts для локального тестирования и dig для верификации.
Критерии приёмки
- После очистки локального кеша команда dig возвращает актуальную запись.
- Размер кеша systemd‑resolved равен нулю в статистике.
- Изменения DNS видны с разных сетевых точек при необходимости.
Краткая шпаргалка по командам
- systemd‑resolved: sudo systemd-resolve –flush-caches
- Проверка статистики: sudo systemd-resolve –statistics
- nscd: sudo systemctl restart nscd
- dnsmasq: sudo systemctl restart dnsmasq
- named/BIND: sudo systemctl restart named
- Тест: dig +short example.com
Советы по безопасности и производству
- На продуктивных DNS‑серверов избегайте перезапусков в часы пик без плана отката.
- Перед перезапуском сервиса проанонсируйте изменения команде, если сервер обслуживает внешних клиентов.
Заключение
Очистка DNS‑кеша в Linux обычно сводится к перезапуску того демона, который обслуживает DNS: systemd‑resolved, nscd, dnsmasq или named. Для Debian/Ubuntu есть удобная встроенная команда systemd‑resolve. Если простая очистка не помогла, проверьте браузер, роутер и провайдера, а также используйте /etc/hosts для локальных проверок.
Короткая инструкция для быстрого копирования:
# Debian/Ubuntu
sudo systemd-resolve --flush-caches
sudo systemd-resolve --statistics
# Red Hat / Arch
sudo systemctl restart nscd
# dnsmasq
sudo systemctl restart dnsmasq
# BIND
sudo systemctl restart namedПохожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента