Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Linux / DevOps

Очистка кэша DNS в Linux: сброс резолвера resolvectl flush-caches

Обновлено: 26.08.2026 · Официальная документация ↗

Почему сайт не открывается после смены IP-адреса на сервере

Вы перенесли домен или сайт на новый сервер, прописали новые A-записи в DNS, но сервер Linux упорно продолжает слать запросы на старый несуществующий IP-адрес. Причина — локальный кэш службы разрешения имен (DNS Resolver). Операционная система сохраняет в оперативной памяти предыдущие ответы DNS-серверов на определенное время (TTL), чтобы не нагружать сеть повторными запросами.

Служба systemd-resolved

В современных дистрибутивах Ubuntu Linux за кэширование и маршрутизацию DNS-запросов отвечает системный демон systemd-resolved. Чтобы заставить систему мгновенно забыть старые записи, необходимо выполнить принудительный сброс (Flush) кэша.

Пошаговый сброс кэша DNS в разных версиях Linux

Способ 1: Для современных Ubuntu 20.04 / 22.04 / 24.04 (resolvectl)

Выполните команду сброса кэша резолвера:

sudo resolvectl flush-caches

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

sudo resolvectl statistics

В выводе в секции Cache параметр Current Cache Size должен стать равен 0.

Способ 2: Для Ubuntu 18.04 и ранних систем (systemd-resolve)

sudo systemd-resolve --flush-caches

Способ 3: Перезапуск службы резолвера

Если кэш продолжает отдавать старый IP, полностью перезапустите демон:

sudo systemctl restart systemd-resolved

Шаг 4: Проверка разрешения домена

Проверьте, какой IP-адрес теперь видит система с помощью утилиты dig или nslookup:

dig mysite.com +short
 или
nslookup mysite.com

Типовые ошибки администраторов

  • Забытый кэш сторонних служб (Dnsmasq / Nscd / BIND): Если на сервере дополнительно установлен локальный DNS-кэшер (например, nscd или dnsmasq), очистка systemd-resolved не поможет. Нужно очистить их службы: sudo systemctl restart nscd или sudo systemctl restart dnsmasq.
  • Кэш браузера или прокси: Если curl в терминале отдает правильный новый IP, а в браузере сайт не работает — очистите кэш сокетов в браузере (в Chrome: chrome://net-internals/#dns).
Проблемы с медленным открытием сайтов или сбоями корпоративного DNS?
Инженеры ITSTM настроят отказоустойчивые локальные DNS-резолверы с валидацией DNSSEC и фильтрацией вредоносных доменов.
💡 Практика специалистов: При смене IP-адресов серверов в публичных DNS всегда заранее (за 24-48 часов до миграции) уменьшайте значение TTL (Time To Live) в NS-зоне до 300 секунд (5 минут). Это гарантирует, что клиенты и серверы по всему миру переключатся на новый IP практически мгновенно.

Частые вопросы (FAQ)

Как посмотреть, какие DNS-серверы использует мой Linux сервер прямо сейчас?

Выполните команду 'resolvectl status' или посмотрите файл '/run/systemd/resolve/resolv.conf'.

Как сбросить DNS кэш в RedHat / CentOS / AlmaLinux?

В RHEL/CentOS по умолчанию системный кэш DNS отключен. Если используется демон nscd, выполните: sudo systemctl restart nscd. Если установлен BIND/Named: sudo rndc flush.

Помогает ли перезагрузка сервера для сброса DNS-кэша?

Да. Кэш systemd-resolved хранится исключительно в оперативной памяти (RAM) и полностью обнуляется при любой перезагрузке сервера.

Почему после сброса кэша ping все равно идет на старый IP?

Проверьте файл /etc/hosts. Если в нем жестко прописана статическая связка домена и старого IP, она имеет приоритет над любыми DNS-серверами.

Полезные материалы
Рекомендуем