---
title: "Раздельный DNS через VPN на Mac: внутренние имена не разрешаются · Руководства Kilobat"
url: "https://kilobat.app/ru/guides/vpn-split-dns-internal-names.html"
description: "Корпоративные хосты, например intranet.corp.example, не открываются на Mac при включённом VPN. Проверьте резолверы для доменов и добавьте свой через /etc/resolver."
---

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`.

## Источники

- resolver(5), man-страница из macOS 27.2
- scutil(8), man-страница из macOS 27.2
- dig(1), страница man из macOS 27.2
- [Поддержка Apple: изменение настроек DNS на Mac](https://support.apple.com/guide/mac-help/change-dns-settings-on-mac-mh14127/mac)

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

## Похожие руководства

- [Запросы DNS уходят мимо VPN на Mac](https://kilobat.app/ru/guides/vpn-dns-leak-mac.html): Когда VPN включён, обычно нужно, чтобы запросы DNS шли на серверы VPN.
- [VPN подключён, но интернета нет на Mac](https://kilobat.app/ru/guides/vpn-connected-no-internet.html): VPN направляет трафик через туннель.
- [DNS не работает на Mac](https://kilobat.app/ru/guides/dns-server-not-found.html): Когда DNS не работает, Mac не может превратить имя вроде apple.com в IP-адрес.
- [Почему не подключается один сайт или API](https://kilobat.app/ru/guides/recipes/why-cant-it-connect.html): Когда интернет работает, а один адрес — нет, Kilobat проверяет уровни по очереди.
