Утечка DNS: как исправить в Happ и Hiddify, в настройках Android и iPhone, в браузере и на роутере — и как за минуту проверить, что запросы идут в туннель.
Утечка DNS — это когда туннель включён, а вопрос «какой адрес у этого сайта» всё равно уходит к вашему провайдеру мимо него. Как исправить утечку DNS, зависит от того, где она возникла: на компьютере — перевести клиент в режим TUN, в системе — убрать ручные серверы имён, выключить «частный DNS» на Android и DNS-профили на iPhone, в браузере — не выбирать своего поставщика DNS, на роутере — направить запросы имён внутрь туннеля. Проверяется всё это за минуту, а ниже — по порядку, от самого частого случая к редкому.
Каждый раз, когда вы открываете сайт по имени, устройство сначала спрашивает у справочника его адрес — как это устроено, разобрано в статье что такое DNS. В норме при включённом туннеле этот вопрос уходит внутрь туннеля и до провайдера не доезжает. При утечке он уезжает к провайдерскому серверу имён напрямую, в открытом виде.
Что из этого следует:
Что должно получиться: в списке нет вашего провайдера — ни Ростелекома, ни МТС, ни Дом.ру, ни оператора мобильной сети. Адреса относятся к стране выхода, к хостингу, где стоит сервер, или к известному публичному справочнику вроде Cloudflare — так бывает, если клиент сам ходит к нему через туннель, и это нормально. В MOSTIS имена резолвятся на стороне сервиса, поэтому при включённом туннеле провайдерский DNS в результатах появляться не должен. Если появился — утечка на вашей стороне: в клиенте, системе, браузере или роутере.
Отдельный случай — жалоба «VPN не меняет IP». Если проверочный сайт показывает ваш обычный адрес, это не утечка DNS: через туннель не идёт сам браузер — клиент горит «подключено», а трафик не несёт. Как отличить одно от другого — в статье как проверить, что VPN работает. А вот если адрес сменился, а DNS остался провайдерским, это ровно наш случай.
На телефоне утечек из клиента почти не бывает: приложение поднимает системный VPN, и запросы имён вместе с остальным трафиком попадают в него. Утечки на телефоне живут в настройках системы и браузера — о них ниже.
На Windows и macOS всё решает режим работы клиента:
У настольного Happ режим переключается в настройках приложения. У Hiddify — «Настройки → Входящие → Режим службы»: поставьте «VPN» вместо «Установить системный прокси»; на Windows этот режим требует запуска от имени администратора.
Второе — собственные DNS в клиенте. У Happ они лежат в профиле маршрутизации («Геонастройки»): Remote DNS для запросов через туннель и Domestic DNS для прямых. У Hiddify — в разделе «DNS» настроек: «Удалённый DNS» и «Прямой DNS». Трогать их для закрытия утечки не нужно: по умолчанию клиент отправляет запросы через туннель. Если вы что-то меняли и не помните что — сбросьте настройки клиента, подписку это не затронет.
Android. «Настройки → Сеть и интернет → Частный DNS-сервер» (у Samsung — «Подключения → Другие настройки → Частный DNS»). Три положения: «Выключено», «Автоматически» и «Имя хоста поставщика». Проблема в третьем: если там прописан dns.adguard.com или dns.google, система шифрует запросы сама и отправляет их этому хосту, а клиент такой трафик не перехватывает — в проверке появится AdGuard или Google. Хуже, когда хост в сети заблокирован: по сообщениям пользователей, тогда с включённым туннелем не открывается вообще ничего. Поставьте «Автоматически» или «Выключено».
iPhone и iPad. Для мобильной сети ручного DNS в системе нет, зато его умеют ставить приложения: AdGuard, NextDNS, 1.1.1.1 устанавливают профиль зашифрованного DNS, и он работает рядом с туннелем. Загляните в «Настройки → Основные → VPN и управление устройством»: если там есть профиль DNS, выключите его на время работы через туннель. И проверьте Wi-Fi: в «Настройки → Wi-Fi → (i) рядом с сетью → Настроить DNS» должно стоять «Автоматически».
Windows и macOS. Ручные серверы имён в свойствах сетевого адаптера — частая причина. На Windows верните «Получать адрес DNS-сервера автоматически», на macOS уберите лишние серверы в «Системные настройки → Сеть → DNS», а клиент переведите в TUN.
Браузеры умеют ходить к справочнику сами, минуя систему, — это DNS через HTTPS, или DoH. В режиме TUN такие запросы попадают в туннель, но идут не к справочнику туннеля, а к выбранному в браузере поставщику — Google или Cloudflare. Проверка тогда показывает его вместо страны выхода, а сайты снова видят рассогласование. В режиме системного прокси браузер имена не резолвит, а передаёт их прокси, и DoH ни на что не влияет.
Если туннель поднят на роутере, запросы имён от всех устройств дома собирает он сам — и должен отправлять их внутрь туннеля, а не провайдеру. Иначе трафик идёт за границу, а список посещённых сайтов — к провайдеру. Как это делается, зависит от прошивки:
Отдельная история — IPv6. Если провайдер выдаёт IPv6, а туннель обслуживает только IPv4, запросы имён по шестой версии спокойно уходят мимо. Быстрое лечение — выключить IPv6 на подключении к провайдеру, пока с ним не разобрались.
Если туннель на телефоне, роутер ни при чём: в режиме VPN телефон его DNS не использует.
При утечке — да, имена сайтов. Содержимое страниц он не видит: оно шифруется и идёт в туннеле.
Нет. При включённом туннеле имена и так резолвятся не у провайдера, а собственный DNS в клиенте добавляет точку отказа: если он в вашей сети не отвечает, получите «подключён, но интернета нет».
Нет. WebRTC — это когда браузер раскрывает сайту ваш настоящий адрес напрямую, DNS тут ни при чём. В режиме системного прокси она обычна, в TUN — нет. Те же проверочные сайты показывают её отдельной строкой.
Ничего. Только повторяйте проверку после смены сети, обновления системы и установки любого приложения, которое просит «настроить DNS», — именно они чаще всего возвращают утечку.
3 дня и 2 ГБ Premium LTE. Карта не нужна.
Открыть кабинет