DNS

Внутренние имена не разрешаются через VPN

macOS умеет отправлять запросы для одного домена на один DNS-сервер, а остальные — на другой. VPN используют такой раздельный DNS для внутренних имён.

Применимость: все актуальные версии macOS.Проверено: 29 октября 2026 г.

Симптомы

  • Внутренние имена, например intranet.corp.example, не работают, а публичные сайты работают.
  • Внутренний IP-адрес работает, а его имя — нет.
  • dig или nslookup не работают, а браузер работает, или наоборот.

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

  • VPN не добавляет резолвер для домена. VPN должен сообщить macOS, какие домены отправлять на его DNS-серверы.
  • Инструмент проверки обходит правила macOS. dig использует серверы из /etc/resolv.conf, а не резолверы для доменов, которыми пользуются приложения.
  • DNS-серверы, заданные вручную. DNS-серверы, заданные вручную для Wi-Fi, не знают внутренних имён.
  • Короткое имя без домена поиска. Короткому имени вроде intranet нужен домен поиска, чтобы стать полным.

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

  1. Подключите VPN. Покажите все резолверы. Найдите резолвер со строкой domain для домена вашей компании.

    scutil --dns
  2. Разрешите имя через резолвер macOS, а не через dig.

    dscacheutil -q host -a name intranet.corp.example
  3. Покажите домены поиска для службы.

    networksetup -getsearchdomains Wi-Fi

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

  1. Спросите администратора, какой домен и DNS-сервер должен использовать VPN.

  2. Создайте папку для резолверов доменов, если её нет.

    sudo mkdir -p /etc/resolver

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

  3. Создайте файл с именем домена. Добавьте в него по одной строке nameserver на каждый сервер.

    sudo nano /etc/resolver/corp.example

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

  4. Введите адрес внутреннего DNS-сервера одной строкой.

    nameserver 10.0.0.53
  5. Сохраните файл. Выполните scutil --dns и найдите новый домен.

  6. Используйте полные имена или добавьте домен поиска в «Системных настройках» > «Сеть» > служба > «Подробнее» > «DNS».

  7. Удалите файл, когда он больше не нужен.

    sudo rm /etc/resolver/corp.example

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

С Kilobat

  1. Для частного имени why сообщает, к какому DNS-серверу VPN ушёл запрос и отвечает ли этот сервер.

    kilobat why intranet.corp.example

Вопросы

Почему dig не работает, а браузер работает?

dig обращается к серверам из /etc/resolv.conf. Браузер использует резолвер macOS, который учитывает и резолверы для доменов.

Можно ли редактировать /etc/resolv.conf?

Нет. Согласно странице man resolver, macOS ведёт этот файл автоматически. Используйте настройки сети или /etc/resolver.

Источники

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