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

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

8 min read Linux Обновлено 20 Dec 2025
Как очистить кэш DNS на Linux
Как очистить кэш DNS на Linux

TL;DR

Если ваш Linux использует systemd-resolved, выполните:

resolvectl flush-caches

Для dnsmasq перезапустите демона, отправив ему сигнал SIGHUP:

sudo killall -HUP dnsmasq

Если systemd-resolved не активен, очистка кэша не требуется — либо кэш отсутствует, либо используется другой резолвер.

Быстрое оглавление

  • Что такое кэш DNS
  • Проверка: используется ли локальный кэш DNS
  • Просмотр содержимого кэша DNS
  • Очистка кэша systemd-resolved
  • Очистка кэша dnsmasq
  • Когда не стоит чистить кэш
  • Руководство действий и контрольные списки
  • Краткое резюме и полезные команды

Apps on Linux

Изображение: набор приложений на рабочем столе Linux с различными иконками

Что такое кэш DNS

DNS (Domain Name System) переводит доменные имена в IP-адреса. Кэш DNS сохраняет недавние результаты этих преобразований, чтобы ускорить последующие запросы. Кэш может находиться в:

  • локальном процессе на машине (например, systemd-resolved или dnsmasq),
  • у домашнего маршрутизатора,
  • у вашего интернет-провайдера или у стороннего публичного резолвера (Google DNS, Cloudflare, OpenDNS).

Пояснение в одну строку: кэш DNS — это временное хранилище соответствий домен ↔ IP, которое сокращает задержки при повторных обращениях.

Важно: кэш ускоряет работу, но может хранить устаревшую или повреждённую запись. В таких случаях очистка кэша помогает решить проблемы с доступом к сайтам или неверным перенаправлением.

Как проверить, используется ли локальный кэш DNS

На современных дистрибутивах с systemd служба, отвечающая за локальное разрешение имён, называется systemd-resolved. Чтобы проверить её состояние, выполните:

systemctl is-active systemd-resolved

Если ответ “active”, значит локальный кэш включён. Если “inactive” — кэш на этой службе отсутствует или используется другой резолвер.

Чтобы посмотреть статистику кэша используйте:

resolvectl statistics

using the resolvectl command to view DNS caching statistics

Изображение: вывод команды resolvectl statistics с подсчётом записей в кэше DNS

В статистике вы увидите количество записей в кэше и другие счётчики. Это помогает подтвердить, что кэш действительно накапливает данные.

Примечание: некоторые дистрибутивы по умолчанию не включают systemd-resolved; вместо него может использоваться NetworkManager, dnsmasq или прямые настройки /etc/resolv.conf.

Просмотр содержимого кэша DNS

Просмотр кэша напрямую не стандартизирован. systemd-resolved умеет записывать своё содержимое в журнал по сигналу USR1. Процесс выглядит так:

  1. Отправить сигнал USR1 демону systemd-resolved:
sudo killall -USR1 systemd-resolved
  1. Извлечь записи из системного журнала в файл:
sudo journalctl -u systemd-resolved > dns.txt
  1. Просмотреть файл с помощью less:
less dns.txt

Вы увидите блоки, где перечислены соответствия доменов и IP. Это полезно, если нужно подтвердить, какие записи хранятся и не содержатся ли там очевидно некорректные или устаревшие записи.

The contents of the dns.txt fiole with a name and IP address for google.com highlighted

Изображение: фрагмент dns.txt с записью для google.com и соответствующим IP-адресом

Когда это полезно:

  • ищете симптомы повреждённого кэша (перепутанные или зашифрованные строки),
  • проверяете, действительно ли запросы обслуживаются локальным резолвером,
  • сравниваете IP-адреса из кэша с ожидаемыми.

Ограничение: журнал может содержать много служебной информации — фильтруйте и ищите по домену.

Как очистить кэш systemd-resolved

Очистка (flush) удаляет все записи в локальном кэше. Это безопасная операция: systemd-resolved продолжит работать и накапливать новые записи по мере обращения к доменам.

Команда для очистки:

resolvectl flush-caches

После выполнения вы возвращаетесь к командной строке. Подтвердить эффект можно повоторно вызвав статистику:

resolvectl statistics

Если очистка удалась, поле с размером кэша должно показать ноль или значительно уменьшившееся количество записей. Кэш начнёт наполняться снова по мере использования сети.

Совет: перед очисткой фиксируйте текущее состояние (journal/logs) — это поможет при отладке, если проблема повторится.

Как очистить кэш dnsmasq

dnsmasq — лёгкий DNS/DHCP демон, часто используется в роутерах, на серверах или в комбинации с NetworkManager. Чтобы заставить dnsmasq перечитать конфигурацию и очистить кэш, отправьте сигнал SIGHUP:

sudo killall -HUP dnsmasq

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

Если dnsmasq настроен как systemd-юнит, можно выполнить мягкую перезагрузку через systemctl:

sudo systemctl reload dnsmasq

или полную перезапись, если reload недоступен:

sudo systemctl restart dnsmasq

Примечание: restart приведёт к кратковременному прерыванию DNS-сервиса — спланируйте в рабочее время вне пиков.

Когда очищать кэш полезно, а когда нет

Когда стоит очистить кэш:

  • вы видите старую версию сайта после обновления DNS;
  • вас перенаправляет на неправильный IP;
  • подозреваете повреждение кэша или странные DNS-ответы;
  • вы меняете локальные DNS-записи (например, в /etc/hosts, локальном DNS-сервере) и хотите протестировать изменения немедленно.

Когда не стоит:

  • всё работает корректно — бессмысленная операция только увеличит число DNS-запросов;
  • проблема связана с кэшем браузера (в этом случае сначала почистите кэш браузера);
  • проблема на стороне провайдера или внешнего резолвера (очистка локального кэша не поможет).

Контрпример: если сайт стал недоступен только для вас, но доступен для других, вероятнее причина в провайдере, CDN или локальной фильтрации, а не в локальном кэше.

Пошаговое руководство для устранения проблем с DNS на Linux

  1. Проверить, активен ли systemd-resolved:
systemctl is-active systemd-resolved
  1. Если активен, посмотреть статистику:
resolvectl statistics
  1. Если хотите посмотреть содержимое кэша — отправьте USR1 и извлеките журнал:
sudo killall -USR1 systemd-resolved
sudo journalctl -u systemd-resolved > dns.txt
less dns.txt
  1. Очистить кэш:
resolvectl flush-caches
  1. Если используется dnsmasq, вместо или дополнительно выполните:
sudo killall -HUP dnsmasq
  1. Проверьте разрешение домена вручную с помощью dig или host:
dig +short example.com
  1. Если проблема сохраняется, проверьте /etc/resolv.conf и настройки NetworkManager, затем маршрутизатор и провайдера.

Mermaid-диаграмма для принятия решения:

flowchart TD
  A[Проблемы с доступом к сайту] --> B{Доступ на других устройствах?}
  B -- Да --> C[Проверьте browser cache и локальные настройки]
  B -- Нет --> D{systemd-resolved активен?}
  D -- Да --> E[resolvectl statistics]
  E --> F{Похоже на устаревший/повреждённый кэш?}
  F -- Да --> G[resolvectl flush-caches]
  F -- Нет --> H[Проверить провайдера/CDN]
  D -- Нет --> I{dnsmasq запущен?}
  I -- Да --> J[sudo killall -HUP dnsmasq]
  I -- Нет --> K[Проверить /etc/resolv.conf и роутер]

Контрольные списки по ролям

Для администратора Linux:

  • проверить активность systemd-resolved и dnsmasq;
  • зафиксировать логи перед изменениями;
  • выполнить flush или перезагрузку демона;
  • проверить разрешение через dig/host;
  • при необходимости перезапустить NetworkManager или сеть.

Для рядового пользователя:

  • перезапустите браузер и очистите его кэш;
  • если проблема только на одном устройстве, попробуйте перезагрузку компьютера;
  • если уверены, что проблема локальная, попросите администратора выполнить очистку кэша.

Для разработчика веб-сайта:

  • убедитесь, что TTL DNS-записей настроен корректно;
  • при публикации изменений укажите ожидаемое время распространения;
  • документируйте тесты для проверки резолюции домена.

Критерии приёмки

  • после очистки systemd-resolved статистика показывает уменьшение размера кэша;
  • домен с обновлённой записью возвращает новый IP через dig;
  • доступ к сайту восстановлен на клиенте, где ранее возникли проблемы.

Команды-справочник и быстрый чит

Основные команды, упомянутые в статье:

systemctl is-active systemd-resolved
resolvectl statistics
resolvectl flush-caches
sudo killall -USR1 systemd-resolved
sudo journalctl -u systemd-resolved > dns.txt
less dns.txt
sudo killall -HUP dnsmasq
sudo systemctl reload dnsmasq
sudo systemctl restart dnsmasq
dig +short example.com

Таблица: полезные команды по категориям

Linux команды
Файлыtar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc · tr
Процессыalias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap
Сетьnetstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld

Устранение неполадок и советы

  • Если после flush-caches проблема осталась — проверьте браузерный кэш и расширения (например, прокси/антивирусные плагины).
  • Тестируйте разрешение доменов с других сетей (мобильный интернет, VPN) чтобы исключить проблему провайдера/CDN.
  • Если используете VPN, убедитесь, что резолвер не перенастроен на стороне VPN-клиента.
  • Для отладки используйте команды dig и traceroute, чтобы увидеть, какие сервера отвечают и какой маршрут у пакетов.

Короткая методология (минимальная проверка при проблемах с DNS)

  1. Убедиться, что проблема воспроизводима.
  2. Проверить локальный кэш и очистить его при необходимости.
  3. Проверить разрешение через dig с указанием внешнего резолвера (например, 1.1.1.1):
dig @1.1.1.1 example.com +short
  1. Если внешние резолверы возвращают правильный IP, проблема локальная. Иначе — ждать обновления DNS на стороне провайдера/хостинга.

1-строчный глоссарий

  • DNS: система сопоставления доменов и IP-адресов;
  • TTL: время жизни записи в кэше (в секундах);
  • systemd-resolved: демон для локального разрешения имён в systemd-системах;
  • dnsmasq: лёгкий DNS/DHCP демон, часто используемый в локальных сетях.

Краткое резюме

Очистка кэша DNS на Linux обычно безопасна и помогает при устаревших или некорректных записях. В systemd-системах используйте resolvectl flush-caches; для dnsmasq отправьте SIGHUP. Всегда подтверждайте результаты с помощью resolvectl statistics или dig, и не забывайте про проверку браузерного кэша и сети в целом.

Полезные ссылки и дальнейшие шаги

  • используйте dig и traceroute для глубокой диагностики;
  • при частых изменениях DNS настройте небольшой TTL на время миграции;
  • документируйте действия и логи перед изменениями для возможности отката.

Завершение

Если вы не используете локальный DNS-кэш, ничего делать не нужно. Если кэш присутствует, но всё работает корректно — тоже можно оставить как есть. Если же вы видите неправильные страницы, длительные задержки или подозрительную маршрутизацию, очистка локального кэша — быстрый и безопасный шаг к устранению проблемы.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Экстренные контакты iPhone: настройка и обход беззвучного режима
Инструкции

Экстренные контакты iPhone: настройка и обход беззвучного режима

Как исправить микрофон в Windows 10
Техника

Как исправить микрофон в Windows 10

Что Amazon знает о вас и как запросить ваши данные
Конфиденциальность

Что Amazon знает о вас и как запросить ваши данные

Защита веб‑API: руководство по безопасности
Кибербезопасность

Защита веб‑API: руководство по безопасности

Как управлять Google TV с телефона
Гайды

Как управлять Google TV с телефона

Сменить программу для чтения PDF в Windows
Windows

Сменить программу для чтения PDF в Windows