Введение
DNS-кэш (кэш доменных имён) — это временное хранилище на вашем компьютере, где сохраняются результаты разрешения доменных имен в IP-адреса. Со временем эти записи могут устареть, особенно если IP-адрес сайта изменился. Это приводит к ошибкам вроде «DNS_PROBE_FINISHED_NXDOMAIN» или когда сайт не обновляется, хотя должен. Очистка DNS-кэша заставляет систему запрашивать актуальные данные у DNS-серверов, что часто решает проблемы с доступом к сайтам и ускоряет работу сети.
В этом гайде вы узнаете, как быстро очистить DNS-кэш на Windows, macOS и Linux. Процесс занимает менее минуты и не требует установки дополнительного ПО.
Требования / Подготовка
Перед началом убедитесь, что:
- У вас есть права администратора (или sudo-доступ) на компьютере.
- Установлено интернет-соединение (для проверки результата).
- Вы знаете, какая у вас операционная система.
Очистка DNS-кэша в Windows
Шаг 1: Откройте командную строку или PowerShell от имени администратора
Нажмите Win + X и выберите «Командная строка (администратор)» или «Windows PowerShell (администратор)». Если запросит подтверждение UAC, нажмите «Да».
Шаг 2: Выполните команду очистки кэша
Введите команду и нажмите Enter:
ipconfig /flushdns
Если команда выполнена успешно, вы увидите сообщение:
Успешно сброшен кэш DNS-резолвера.
Очистка DNS-кэша в macOS
Шаг 1: Откройте терминал
Найдите Терминал через Spotlight (Cmd + Пробел) или в папке Утилиты.
Шаг 2: Выполните команду очистки кэша
Введите следующую команду (требует пароль администратора):
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Введите пароль (символы не отображаются) и нажмите Enter. Ошибок быть не должно.
💡 Совет: На старых версиях macOS (до Mavericks) используйте
sudo killall -HUP mDNSResponderотдельно.
Очистка DNS-кэша в Linux
В Linux кэширование DNS может осуществляться разными службами. Самые распространённые — systemd-resolved и nscd.
Шаг 1: Определите, какая служба DNS используется
Выполните в терминале:
ps aux | grep -E "(systemd-resolve|dnsmasq|nscd)"
Если видите процесс systemd-resolved, используйте метод для systemd-resolved. Если nscd — для nscd. Если ничего не найдено, возможно, кэширование отключено или используется другой демон (например, unbound).
Шаг 2: Выполните соответствующую команду
Для systemd-resolved (актуально для Ubuntu 22.04+, Debian 11+, Fedora 36+):
sudo systemd-resolve --flush-caches
Или в некоторых дистрибутивах:
sudo systemd-resolved-flush-caches
Для nscd (используется в некоторых старых дистрибутивах):
sudo nscd -i hosts
Если используется dnsmasq (часто в роутерах или локальных сетях):
sudo killall -HUP dnsmasq
Проверка результата
После очистки кэша попробуйте открыть сайт, который ранее не загружался. Также можно проверить разрешение имени:
- Windows/macOS/Linux:
nslookup example.comилиdig example.com(если установленdig). Убедитесь, что возвращается актуальный IP-адрес.
Если проблема осталась, возможно, дело в других настройках сети (брандмауэр, прокси, DNS-серверы). В этом случае обратитесь к смежным гайдам, например, сброс сетевых адаптеров в Windows или смена DNS-серверов.
Возможные проблемы
Ошибка доступа (Permission denied)
- Причина: Команда запущена без прав администратора.
- Решение: Запустите терминал/командную строку от имени администратора или используйте
sudo.
Команда не найдена
- Причина: Служба DNS не установлена или не используется (например, в минимальных установках Linux).
- Решение: Установите соответствующую службу (например,
sudo apt install systemd-resolved) или настройте DNS-клиент без кэширования.
Ошибка Failed to flush cache: No such file or directory (Linux)
- Причина: Служба systemd-resolved не активна.
- Решение: Активируйте службу:
sudo systemctl enable --now systemd-resolved.
Очистка не помогла
- Причина: Проблема не в DNS-кэше, а в настройках сети, брандмауэре или самом сайте.
- Решение: Проверьте подключение (
ping 8.8.8.8), отключите брандмауэр временно, смените DNS-серверы на публичные (например, 8.8.8.8).