DNS

DNS не работает на Mac

Когда DNS не работает, Mac не может превратить имя вроде apple.com в IP-адрес. Подключение может работать, но все сайты по имени не открываются.

Относится к: macOS 13 Ventura и новее для шагов в «Системных настройках». Команды Терминала работают во всех актуальных версиях macOS.Проверено: 29 октября 2026 г.

Симптомы

  • Браузеры показывают «не удается найти сервер» или похожую ошибку для многих сайтов.
  • Инструменты Терминала пишут “Could not resolve host” или “nodename nor servname provided”.
  • Приложения, которые используют IP-адреса, работают, а имена — нет.
  • Проблема начинается после смены сети, подключения VPN или установки своих DNS-серверов.

Вероятные причины

  • Нет подключения. У Mac нет рабочего пути в интернет, поэтому запросы DNS не уходят.
  • Неправильные или недоступные DNS-серверы. DNS-сервер, введённый вручную, может перестать работать или быть заблокирован в этой сети.
  • Не работает DNS роутера. Многие сети отправляют DNS на роутер. Если роутер перестаёт отвечать, имена не работают на всех устройствах.
  • VPN, профиль или фильтр меняет DNS. VPN, профили зашифрованного DNS и фильтры контента могут отправлять запросы на другие серверы.
  • Старые ответы в кэше. Mac какое-то время хранит ответы. Если сайт переехал, старый ответ может не сработать.

Как проверить

  1. Убедитесь, что подключение работает. Отправьте пинги на IP-адрес, чтобы DNS не участвовал.

    ping -c 3 1.1.1.1
  2. Отправьте пинги на имя. Если IP-адрес работает, а имя — нет, проблема в DNS.

    ping -c 3 apple.com
  3. Спросите имя у резолвера macOS. Это тот же путь, которым пользуется большинство приложений.

    dscacheutil -q host -a name apple.com

    Вывод Строки ip_address и ipv6_address. Если строк нет, поиск не удался.

  4. Покажите конфигурацию DNS, которую macOS использует сейчас. Первый резолвер — основной.

    scutil --dns
  5. Покажите DNS-серверы, заданные вручную для службы Wi-Fi.

    networksetup -getdnsservers Wi-Fi

    Вывод Список IP-адресов или сообщение, что DNS-серверы не заданы. Тогда серверы выдаёт сеть.

Как исправить

  1. Удалите DNS-серверы, введённые вручную. Выберите меню Apple > «Системные настройки» > «Сеть».

  2. Нажмите сетевую службу, нажмите «Подробнее», затем «DNS». Выберите каждый добавленный вами сервер и нажмите кнопку удаления.

  3. Их можно убрать и в Терминале. Вместо адресов серверов укажите слово empty.

    networksetup -setdnsservers Wi-Fi empty

    Нужен пароль администратора.

  4. Очистите кэш DNS. См. Очистка кэша DNS на Mac.

    sudo killall -HUP mDNSResponder

    Нужен пароль администратора.

  5. Получите от роутера новый адрес и новые DNS-серверы. См. Обновление аренды DHCP на Mac.

  6. Для проверки отключите VPN. Если имена заработали, проверьте настройки DNS у VPN. См. Запросы DNS уходят мимо VPN на Mac.

  7. Если DNS не работает на всех устройствах, перезагрузите роутер.

С Kilobat

  1. Kilobat замеряет один поиск DNS и показывает используемые резолверы. Смотрите на dnsMilliseconds, dnsServers и captivePortal.

    kilobat diagnose --json
  2. Для одного сайта или API найдите уровень, на котором происходит сбой. DNS проверяется до подключения.

    kilobat why api.example.com
  3. CLI бесплатный. В приложении на вкладке «Состояние» видны DNS-серверы и время поиска. См. Почему не подключается один сайт или API.

Вопросы

Почему пинг до 1.1.1.1 проходит, а сайты не открываются?

Пинг на IP-адрес не использует DNS. Если он проходит, а имена не работают, проблема в DNS, а не в подключении.

Почему dig работает, а приложения — нет?

dig отправляет запросы на серверы из /etc/resolv.conf. Приложения используют резолвер macOS, который может учитывать ещё и VPN, и правила для отдельных доменов.

Выдаст ли роутер мне DNS-серверы снова?

Да. Когда список DNS в настройках сети пуст, macOS использует серверы, которые сеть выдаёт по DHCP.

Источники

Источники проверены 29 октября 2026 г. Man-страницы — те, что установлены вместе с macOS; откройте любую командой man <name> в Терминале.