DNS
Внутренние имена не разрешаются через VPN
macOS умеет отправлять запросы для одного домена на один DNS-сервер, а остальные — на другой. VPN используют такой раздельный DNS для внутренних имён.
Симптомы
- Внутренние имена, например
intranet.corp.example, не работают, а публичные сайты работают. - Внутренний IP-адрес работает, а его имя — нет.
digилиnslookupне работают, а браузер работает, или наоборот.
Вероятные причины
- VPN не добавляет резолвер для домена. VPN должен сообщить macOS, какие домены отправлять на его DNS-серверы.
- Инструмент проверки обходит правила macOS.
digиспользует серверы из/etc/resolv.conf, а не резолверы для доменов, которыми пользуются приложения. - DNS-серверы, заданные вручную. DNS-серверы, заданные вручную для Wi-Fi, не знают внутренних имён.
- Короткое имя без домена поиска. Короткому имени вроде
intranetнужен домен поиска, чтобы стать полным.
Как проверить
Подключите VPN. Покажите все резолверы. Найдите резолвер со строкой
domainдля домена вашей компании.scutil --dnsРазрешите имя через резолвер macOS, а не через
dig.dscacheutil -q host -a name intranet.corp.exampleПокажите домены поиска для службы.
networksetup -getsearchdomains Wi-Fi
Как исправить
Спросите администратора, какой домен и DNS-сервер должен использовать VPN.
Создайте папку для резолверов доменов, если её нет.
sudo mkdir -p /etc/resolverНужен пароль администратора.
Создайте файл с именем домена. Добавьте в него по одной строке
nameserverна каждый сервер.sudo nano /etc/resolver/corp.exampleНужен пароль администратора.
Введите адрес внутреннего DNS-сервера одной строкой.
nameserver 10.0.0.53Сохраните файл. Выполните
scutil --dnsи найдите новый домен.Используйте полные имена или добавьте домен поиска в «Системных настройках» > «Сеть» > служба > «Подробнее» > «DNS».
Удалите файл, когда он больше не нужен.
sudo rm /etc/resolver/corp.exampleНужен пароль администратора.
С Kilobat
Для частного имени
whyсообщает, к какому DNS-серверу VPN ушёл запрос и отвечает ли этот сервер.kilobat why intranet.corp.example
Вопросы
Почему dig не работает, а браузер работает?
dig обращается к серверам из /etc/resolv.conf. Браузер использует резолвер macOS, который учитывает и резолверы для доменов.
Можно ли редактировать /etc/resolv.conf?
Нет. Согласно странице man resolver, macOS ведёт этот файл автоматически. Используйте настройки сети или /etc/resolver.
Источники
- resolver(5), man-страница из macOS 27.2
- scutil(8), man-страница из macOS 27.2
- dig(1), страница man из macOS 27.2
- Поддержка Apple: изменение настроек DNS на Mac
Источники проверены 29 октября 2026 г. Man-страницы — те, что установлены вместе с macOS; откройте любую командой man <name> в Терминале.