Очистка кэша DNS в Linux: сброс резолвера systemd-resolved и nscd
Вы изменили IP-адрес домена или перенесли сайт на новый сервер, но сервер Linux упорно обращается по старому IP-адресу из-за устаревших записей, сохраненных во внутреннем кэше DNS.
Как работает кэширование DNS в современной Ubuntu?
В Ubuntu 20.04, 22.04 и 24.04 за локальный кэш доменных имен отвечает системная служба systemd-resolved. Она запоминает результаты предыдущих DNS-ответов, чтобы снизить нагрузку на сеть.
Шаг 1. Очистка кэша DNS (команда resolvectl)
Выполните команду сброса кэша:
sudo resolvectl flush-caches(На старых версиях Ubuntu 18.04 использовалась команда: sudo systemd-resolve --flush-caches).
Шаг 2. Проверка результата сброса
Посмотрите статистику кэша резолвера:
resolvectl statisticsВ блоке Cache параметр Current Cache Size: 0 подтверждает, что весь локальный кэш успешно очищен.
Шаг 3. Перезапуск службы резолвера
Для полной гарантии перезапустите демон:
sudo systemctl restart systemd-resolvedШаг 4. Очистка кэша, если установлен демон nscd или BIND
- Если используется кэширующий сервис nscd:
sudo systemctl restart nscd - Если на сервере работает локальный dnsmasq:
sudo systemctl restart dnsmasq
Частые вопросы (FAQ)
Как проверить, какой реальный IP возвращает DNS-резолвер прямо сейчас?
Используйте утилиту resolvectl: resolvectl query itstm.ru.
Почему после сброса кэша сервер все равно видит старый IP домена?
Старый IP-адрес мог закешироваться на промежуточных DNS-серверах вашего интернет-провайдера в соответствии со временем TTL доменной зоны. Попробуйте временно сменить DNS на 1.1.1.1 или 8.8.8.8.
Как очистить кэш DNS в браузере Chrome?
Вставьте в адресную строку браузера: chrome://net-internals/#dns и нажмите кнопку 'Clear host cache'.
Какая команда сбрасывает кэш DNS в операционной системе Windows?
В командной строке Windows выполните команду: ipconfig /flushdns.