macOSНизкая

Очистка DNS-кэша на macOS: инструкция для всех версий

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

Обновлено 16 февраля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:macOS 10.10 и вышеmacOS 11 Big SurmacOS 12 MontereymacOS 13 VenturamacOS 14 Sonoma

Введение

DNS-кэш (Domain Name System Cache) — это временное хранилище, в котором macOS сохраняет результаты разрешения доменных имен (например, example.com → IP-адрес). Это ускоряет доступ к часто посещаемым сайтам. Однако, если DNS-записи меняются (например, при переносе сайта на новый сервер) или становятся некорректными, кэш может содержать устаревшие данные, что приводит к ошибкам "сайт не найден" или подключению к неверному IP. Очистка DNS-кэша заставляет систему запрашивать актуальные записи у DNS-серверов, что часто решает проблемы с сетью без перезагрузки.

Требования

Перед выполнением инструкции убедитесь, что:

  • У вас установлена macOS 10.10 (Yosemite) или новее. Для более старых версий (OS X 10.9 и ниже) команды отличаются, но такие системы сегодня практически не встречаются.
  • У вас есть учетная запись с правами администратора (для использования sudo).
  • Доступ к Терминалу (встроенное приложение).

Пошаговая инструкция

Шаг 1: Откройте Терминал

Терминал — это командная строка macOS, через которую выполняется очистка кэша. Есть несколько способов его открыть:

  • Нажмите Cmd+Пробел (Spotlight), введите Терминал и нажмите Enter.
  • Откройте папку Утилиты через Launchpad или Finder (Переход → Перейти к папке → /Утилиты) и запустите приложение Терминал.

Шаг 2: Очистите DNS-кэш

В открытом Терминале введите следующую команду и нажмите Enter:

sudo killall -HUP mDNSResponder

Что делает эта команда:

  • sudo — выполняет команду с правами суперпользователя (потребуется пароль администратора).
  • killall — отправляет сигнал всем процессам с указанным именем.
  • -HUP — сигнал hangup (SIGHUP), который заставляет процесс перечитать конфигурацию и очистить кэш.
  • mDNSResponder — системный демон, отвечающий за разрешение DNS-имен в macOS начиная с версии 10.10.

После ввода команды система запросит пароль администратора. Введите пароль (символы не отображаются при вводе) и нажмите Enter. Если пароль верный, команда выполнится мгновенно и вернет приглашение командной строки (например, MacBook-Pro:~ user$).

⚠️ Важно: Убедитесь, что вы вводите команду точно так, как указано. Ошибки в написании (например, mDNSresponder с маленькой буквы) приведут к сообщению "No such process".

Шаг 3: Проверьте результат

Чтобы убедиться, что DNS-кэш очищен, выполните одну из проверок:

  1. Браузер: Попробуйте открыть сайт, который ранее не загружался из-за ошибки DNS (например, отображал "Не удалось найти IP-адрес сервера").
  2. Команда dig (если установлен, например, через Homebrew):
    dig example.com
    
    В разделе ANSWER SECTION должен отображаться актуальный IP-адрес. Если вы знали старый IP (например, из предыдущей проверки), сравните — он должен измениться, если DNS-запись обновилась.
  3. Команда ping:
    ping -c 4 example.com
    
    Если пакеты отправляются и приходят ответы (например, 64 bytes from 93.184.216.34), значит разрешение имени работает корректно.

💡 Совет: Некоторые приложения (Chrome, Firefox) имеют собственный DNS-кэш. Если проблема осталась, закройте и повторно откройте браузер или очистите его кэш в настройках.

Возможные проблемы

  • Ошибка "No such process": Это означает, что процесс mDNSResponder не запущен. Обычно он работает всегда. Попробуйте перезагрузить Mac и повторить команду. Если проблема сохранится, проверьте, не используете ли вы сторонные утилиты, которые могут останавливать системные службы.
  • Ошибка доступа (permission denied): Убедитесь, что вы используете sudo и вводите пароль правильно. Также проверьте, что ваша учетная запись входит в группу администраторов (Системные настройки → Пользователи и группы).
  • Проблема не решена после очистки: Возможно, проблема не в кэше macOS, а в настройках сети, DNS-серверах или сторонних программах (брандмауэры, антивирусы, AdGuard). Проверьте настройки DNS в Системные настройки → Сеть. Также попробуйте перезагрузить роутер и выполнить sudo ifconfig en0 down && sudo ifconfig en0 up (замените en0 на ваш интерфейс, если нужно).
  • Команда не работает на очень старых версиях macOS: Если у вас macOS 10.9 (Mavericks) или старше, используйте команду sudo dscacheutil -flushcache. Но для современных версий (10.10 и выше) рекомендуется sudo killall -HUP mDNSResponder.

Часто задаваемые вопросы

Почему нужно очищать DNS-кэш на macOS?
Что делать, если команда sudo killall -HUP mDNSResponder не сработала?
Нужно ли перезагружать Mac после очистки DNS-кэша?
Как проверить, что DNS-кэш очищен?

Полезное

Откройте Терминал
Очистите DNS-кэш
Проверьте работу сети