Fexyn
Fexyn
All posts

Как DNS-утечки тихо раскрывают твоё местоположение даже

Fexyn Team··5 min read

VPN шифрует твой трафик и направляет его через выходной сервер. Это работает. Что менее надёжно, особенно на Windows — это убедиться, что каждый DNS-запрос тоже идёт по этому пути. Когда DNS утекает, твой провайдер видит домены, которые ты посещаешь, даже если всё остальное зашифровано. Утечка тихая — браузер не показывает предупреждений, VPN-клиент говорит что ты подключён, а провайдер всё равно логирует каждый твой запрос.

Этот пост объясняет четыре частых пути утечки, как их проверить, и как Fexyn их закрывает.

Откуда берутся утечки

1. Smart Multi-Homed Name Resolution (SMHNR)

Windows 8 ввёл фичу Smart Multi-Homed Name Resolution. Она отправляет DNS-запросы одновременно на каждый доступный DNS-сервер и использует тот ответ, который придёт первым. Задумка была — ускорить DNS-резолюцию для пользователей с несколькими сетевыми интерфейсами.

Результат при включённом VPN: твои DNS-запросы идут одновременно и на VPN-резолвер (внутри туннеля), и на резолвер провайдера (снаружи туннеля). Провайдер видит запрос независимо от того, чей ответ выиграл гонку.

В Windows 10 поведение слегка изменилось — SMHNR должен предпочитать VPN-туннель, когда тот существует. На практике — не всегда. Поведение зависит от порядка adapter metric, Network Connectivity Status Indicator (NCSI), и того, какой интерфейс Windows считает «основным» в данный момент. Утечки получаются прерывистые, а это худший вид: одиночный тест проходит, а реальное использование течёт.

2. IPv6 fall-through

Большинство VPN-протоколов туннелируют только IPv4. Если провайдер даёт тебе IPv6 (а в 2026 это делает большинство) и твоя машина предпочитает IPv6 над IPv4 — DNS-запросы могут пойти по IPv6. IPv6-запрос уходит через настоящий интерфейс, попадает на IPv6 DNS-резолвер провайдера, и провайдер видит запрос.

Это не теория — это поведение по умолчанию на Windows последние десять лет. Лечение: либо отключить IPv6 на нижележащем интерфейсе, пока VPN включён, либо туннелировать IPv6 через VPN.

3. DNS-over-HTTPS в браузере

Современные Chrome, Firefox, Edge и Brave умеют делать DNS-over-HTTPS к публичному резолверу (Cloudflare, Google, Quad9, NextDNS). Когда DoH активен, браузер обходит системный DNS-уровень полностью.

Это хорошо для приватности от провайдера — DoH к Cloudflare приватнее, чем резолвер провайдера. Это плохо для туннелированного через VPN DNS — потому что браузер теперь говорит с Cloudflare напрямую через нижележащий интерфейс (DoH использует HTTPS, который ОС роутит через активный интерфейс — а это VPN-туннель только если VPN туннелирует всё).

Результат: DNS-leak тестеры, которые ожидают, что весь DNS приходит от VPN-резолвера, флагают браузеры с включённым DoH как «утечка». Является ли это реальной утечкой — зависит от того, какая threat model тебя волнует.

4. WebRTC и STUN

WebRTC — браузерный API для peer-to-peer соединений. Он использует STUN-серверы, чтобы узнать твой публичный IP. STUN-обмен работает выше сетевого стека — браузер знает твой настоящий IP локально и просто говорит его странице, когда та спрашивает.

Это не DNS-утечка как таковая, но смежная. Страница с WebRTC может узнать твой реальный IP даже при включённом VPN и при том что весь твой DNS идёт через туннель. Лечение совсем другое.

Читай про WebRTC отдельно.

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

Используй инструмент проверки DNS-утечек Fexyn при подключённом VPN. Две проверки:

  • Стандартный тест. Один батч запросов. Ловит постоянные утечки.
  • Расширенный тест. Шесть раундов, разнесённых во времени. Ловит прерывистые утечки от SMHNR или гонок приоритетов адаптеров.

Результат должен показывать только резолверы, которые держит VPN-провайдер. Если показывает резолверы твоего провайдера (или имя провайдера в любом из ответов) — у тебя утечка.

Что атакующий или провайдер видит из утечки

Каждый утёкший DNS-запрос даёт им:

  • Точный домен, который ты ищешь
  • Время
  • Частоту (если повторяется)
  • Паттерн твоего сёрфинга — какие сайты коррелируют друг с другом

Этого хватает, чтобы построить детальный профиль сёрфинга. Зашифрованный трафик сам по себе непрозрачен, но направления — нет. Провайдер знает, что ты сёрфил, не видя контента.

В странах, которые сохраняют DNS-логи по умолчанию (Великобритания по Investigatory Powers Act, Франция по Loi Renseignement, и другие), утечки становятся долгосрочными записями. Срок хранения варьируется; существование записей — нет.

Как Fexyn предотвращает утечки на Windows

Fexyn-helper устанавливает многослойную защиту:

Правила Name Resolution Policy Table (NRPT). NRPT работает на уровне ОС, до того как любое приложение увидит DNS-запрос. Fexyn устанавливает универсальные NRPT-правила, которые загоняют каждый домен через VPN-резолвер. NRPT перекрывает per-adapter настройки DNS, ручные конфигурации и SMHNR. Это блокировка маршрутизации DNS на уровне ОС.

Per-protocol DNS-конфигурация. Каждый VPN-протокол (WireGuard, VLESS Reality, OpenVPN) настроен со своим путём DNS. WireGuard использует AllowedIPs catch-all. VLESS использует tun2socks с tunnel DNS override. OpenVPN пушит DNS через dhcp-option DNS. Все три сходятся на VPN-резолвере.

Null-routing IPv6. Когда VPN активен, Fexyn null-роутит IPv6-трафик. Вместо того чтобы надеяться, что IPv6 пойдёт через туннель (иногда не идёт), весь IPv6-трафик уходит на локальный null. Это убирает путь утечки IPv6 целиком. IPv4-связность через туннель не страдает.

Kill switch на Windows Filtering Platform. Если туннель падает, WFP-фильтры блокируют весь не-туннельный трафик — включая DNS. Окна для утечки во время переподключения нет.

Сочетание закрывает SMHNR (NRPT перекрывает), IPv6 fall-through (null-routed) и tunnel-drop утечки (WFP блокирует). DoH в браузере остаётся в покое — это выбор пользователя, использовать публичный DoH-резолвер или VPN'овский.

Что делать, если утечка есть

Если тест показывает утечку, иди по порядку:

  1. Переподключи VPN. Самый простой фикс. NRPT-правила иногда дрейфуют после циклов sleep/resume или после обновления Windows. Свежее подключение их переустанавливает.
  2. Попробуй другой протокол. Переключись на Fexyn Stealth (VLESS Reality) или Fexyn Secure (OpenVPN). У каждого свой путь DNS; если один настроен криво для твоей сети — другой может справиться.
  3. Попробуй другой сервер. Резолверы некоторых серверов медленнее; если резолвер дропает запросы, ОС может уйти на системный fallback.
  4. Проверь, не запущены ли другие VPN-клиенты. Cloudflare WARP, NordVPN Meshnet, Tailscale, корпоративные VPN-клиенты — несколько VPN устанавливают конкурирующие NRPT-правила и дерутся друг с другом. Закрой (не просто отключи) любой другой VPN.
  5. Временно отключи DoH в браузере. Если хочешь, чтобы для тестового сеанса весь DNS шёл через туннель — выключи DoH на уровне браузера на время теста.

Полный гайд по траблшутингу — на странице поддержки.

Связанное чтение

Попробуй Fexyn бесплатно 7 дней. DNS-блокировка включена по умолчанию — её не нужно включать.

Как DNS-утечки тихо раскрывают твоё местоположение даже | Fexyn VPN