DNS

Запросы DNS уходят мимо VPN на Mac

Когда VPN включён, DNS-запросы обычно должны идти на серверы VPN. Некоторые настройки вместо этого отправляют их на серверы локальной сети.

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

Симптомы

  • VPN подключён, но тест DNS показывает серверы местного провайдера.
  • Сайты видят DNS-сервер вашей локальной сети, пока VPN включён.
  • Внутренние имена работают, но остальные имена идут через DNS локальной сети.

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

  • DNS-серверы, заданные вручную для Wi-Fi или Ethernet. Серверы, которые вы ввели для сетевой службы, могут использоваться наряду с серверами VPN.
  • VPN с раздельным туннелированием. Некоторые VPN пускают через туннель только часть доменов или сетей. Остальные запросы идут на локальные серверы.
  • Профиль зашифрованного DNS или приложение DNS. Профиль настроек DNS или другое приложение DNS может отправлять запросы на собственный сервер.
  • Настройки приложения VPN. У многих приложений VPN есть собственные параметры DNS. От них зависит, какие серверы получит macOS.

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

  1. Подключите VPN. Покажите конфигурацию DNS. Resolver #1 используется по умолчанию для большинства имён.

    scutil --dns

    Вывод Каждый резолвер с его адресами nameserver, его интерфейсом if_index и у некоторых — с domain.

  2. Найдите интерфейс resolver #1. Интерфейс VPN обычно называется как-то вроде utun.

    ifconfig -l
  3. Поищите DNS-серверы, которые вы задали вручную для физической службы.

    networksetup -getdnsservers Wi-Fi
  4. Поищите профили. В macOS 15 и новее выберите меню Apple > «Системные настройки» > «Основные» > «Управление устройством».

  5. В macOS 13 и 14 выберите меню Apple > «Системные настройки» > «Конфиденциальность и безопасность» > «Профили».

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

  1. Удалите DNS-серверы, заданные вручную для Wi-Fi или Ethernet, если они вам не нужны.

    networksetup -setdnsservers Wi-Fi empty

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

  2. Откройте настройки приложения VPN. Если там есть параметр «использовать DNS VPN», включите его.

  3. Удалите ненужный профиль DNS. Выберите его в «Управлении устройством» или в «Профилях», затем нажмите кнопку удаления.

  4. Отключите и снова подключите VPN. Снова выполните scutil --dns и сравните.

  5. Спросите поставщика VPN или администратора, какие DNS-серверы должен использовать туннель.

С Kilobat

  1. Kilobat показывает интерфейсы VPN рядом с физическими.

    kilobat interfaces --json
  2. Для частного имени why сообщает, к какому DNS-серверу VPN ушёл запрос и отвечает ли он. Также сравнивается прямой путь с туннелем.

    kilobat why intranet.corp.example

Вопросы

VPN всегда обрабатывает весь DNS?

Нет. Это решает VPN. VPN с раздельным туннелированием может отправлять на свои DNS-серверы только часть доменов.

Почему я вижу несколько резолверов?

macOS может использовать много резолверов. Резолверы со строкой domain отвечают только для этого домена. Это объясняется на странице man scutil.

Источники

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