Отправьте ping на буквальный адрес — и он отвечает. Откройте сайт по имени — и ничего не происходит, хотя значок сети настаивает, что соединение в порядке. На Mac, который только что подключился к VPN, такая комбинация почти всегда означает, что запросы направлены на сервер, который больше недоступен, а не что сеть упала. Адреса были закреплены за службой Wi-Fi когда-то раньше, и с тех пор ничто их не удаляло. Диагностируйте методом исключения, затем удалите закреплённые записи.

Починка — это удаление, а не сброс, и разница важна, потому что команды, которые большинство пробует первыми, делают совсем другое.

«Подключено» — это утверждение о канале

macOS хранит конфигурацию резолвера для каждой сетевой службы. Значения от DHCP — один источник, введённые вручную — другой, а протолкнутые профилем или записанные клиентом — третий. Закреплённые важнее того, что предлагает сеть, и ничто в стеке их не перепроверяет. Поэтому исчезнувший сервер остаётся в списке, пока человек его не удалит или служба не будет перестроена с нуля.

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

Отделите имена от пакетов

Сначала доступитесь к хосту по буквальному адресу. Если он загружается, пакеты в порядке и виноват резолвер. Если не загружается, остановитесь здесь и считайте проблему маршрутной, потому что изменения DNS лишь добавят переменную в уже запутанную картину.

Имя, которое отказывает, тогда как соответствующий адрес работает, — это отпечаток. Обратите внимание и на охват: если отказывает всё, это указывает на сломанную глобальную запись, а если только хосты внутри туннеля — на другого владельца и более узкую починку.

Удалите закреплённые серверы

В настройках сети откройте подробности службы Wi-Fi и перейдите на вкладку DNS. Удалите каждую строку сервера, подтвердите изменение, затем просмотрите домены поиска на значения, которые вы никогда не добавляли. Оставьте список пустым, переподключите службу и убедитесь, что адрес, выданный DHCP, появляется сам. Пустой список — это временное состояние, доказывающее, что проблемой были закреплённые значения.

Старые выпуски прячут ту же панель на уровень глубже, за кнопкой «Дополнительно», с тем же поведением и тем же результатом.

Читайте состояние, а не панель

scutil --dns | head -40 печатает резолверы, которые macOS действительно использует, сгруппированные по охвату, а быстрый nslookup известного внутреннего имени показывает, приходит ли ответ вообще. Сравните два вывода: чистая панель, в которой всё ещё значится устаревший сервер, означает, что этой настройкой владеет другой писатель. Это другая ошибка и другая починка.

Когда оба выглядят чисто, а имена всё ещё отказывают, неисправность переехала в другое место, и вы больше не отлаживаете конфигурацию DNS.

Кто возвращает записи

Серверы, которые возвращаются после удаления, имеют источник. Проверьте «Управление устройствами» на конфигурационный профиль: профили могут нести DNS и переоцениваются по собственному расписанию. Проверьте настройки клиента на опцию задавать DNS при подключении и решите, заслуживает ли она ещё места на этой машине. Если VPN действительно нужен приватный резолвер, ограничьте его доменами, которыми он владеет, вместо записи в глобальный список, который наследует каждая будущая сеть.

Запишите предполагаемый резолвер и домены, на которые он должен отвечать. После следующего обновления клиента проверьте одно публичное и одно приватное имя: это быстрее, чем повторять обход настроек, и ловит регрессию, пока машина ещё у вас в руках.

Всё остальное — театр обслуживания: команды, которые выглядят намеренными, не меняют ничего измеримого и оставляют тот же сломанный запрос следующему человеку.

Похожие статьи