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

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

• 3 min read • Linux • Обновлено 26 Nov 2025
Очистка DNS‑кеша в Linux
Очистка DNS‑кеша в Linux

Важно: перед выполнением команд убедитесь, что у вас есть права 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

Иллюстрация команды очистки кеша systemd-resolve

На Ubuntu и других Debian‑производных часто используется systemd‑resolved. Чтобы очистить кеш:

sudo systemd-resolve --flush-caches

Проверить состояние и статистику кеша можно так:

sudo systemd-resolve --statistics

Если в статистике размер кеша равен нулю, очистка прошла успешно.

nscd

Перезапуск сервиса nscd для очистки DNS‑кеша

Red Hat‑семейство и Arch часто используют nscd. Перезапустите сервис, чтобы очистить кеш DNS:

sudo systemctl restart nscd

При необходимости можно посмотреть журналы для диагностики:

sudo journalctl -u nscd --no-pager -n 200

dnsmasq

Перезапуск dnsmasq на сервере или роутере

dnsmasq часто применяется на серверах и роутерах. Очистка кеша выполняется перезапуском службы:

sudo systemctl restart dnsmasq

Если dnsmasq управляется вручную или встроен в прошивку роутера, используйте интерфейс роутера или соответствующую команду/скрипт.

named (BIND)

Логотип BIND и пример службы named

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‑кеша (быстрая последовательность)

  1. Определите запущенный демон (systemctl list-units / ps).
  2. Выполните соответствующую команду очистки или перезапуска.
  3. Проверьте статистику или журналы сервиса.
  4. Протестируйте разрешение через dig/host.
  5. Если не помогло, проверьте браузер, роутер и провайдера.

Чек‑лист для ролей

  • Администратор сети: проверьте серверы 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
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро