Представьте ситуацию: вы включаете VPN, проверяете IP — он изменился, страна другая, всё красиво. Заходите на заблокированный ресурс — работает. Кажется, что вы в безопасности. А потом выясняется, что ваш интернет-провайдер всё это время спокойно видел, на какие сайты вы ходили. Утечка DNS — это именно та штука, которая делает VPN бесполезным при полной иллюзии защиты.
И вот что обидно: большинство людей даже не подозревают, что у них есть эта проблема.
Что вообще такое DNS и при чём тут приватность
Когда вы вводите в браузере google.com, компьютер понятия не имеет, что с этим делать. Ему нужен числовой IP-адрес — например, 142.250.74.46. Чтобы перевести человеческое название в машинный адрес, устройство отправляет запрос на DNS-сервер. По умолчанию — на DNS-сервер вашего провайдера.
Это как телефонная книга. Вы говорите «Иван Петров», а книга отвечает «+7-999-123-45-67». Проблема в том, что тот, кто держит эту книгу, видит все ваши запросы. Каждый сайт, каждый домен, каждый раз.
Когда VPN работает правильно, DNS-запросы идут через зашифрованный туннель на DNS-серверы VPN-провайдера. Провайдер видит только то, что вы подключены к VPN. Какие сайты открываете — не видит.
Когда VPN работает неправильно, трафик идёт через туннель, а DNS-запросы — мимо. Напрямую к провайдеру. Это и есть утечка DNS, или DNS leak.
Почему DNS-запросы утекают мимо VPN
Причин на удивление много, и не все из них очевидны.
Кривая настройка VPN-клиента. Самый частый случай. VPN-приложение должно перехватывать DNS-запросы и направлять их в туннель. Если разработчик схалтурил или вы настраиваете подключение вручную через стандартные средства Windows — DNS легко может пойти мимо. Windows вообще печально известна тем, что любит отправлять DNS-запросы через все доступные интерфейсы одновременно. Это называется Smart Multi-Homed Name Resolution, и Microsoft считает это «оптимизацией». По факту — дыра в приватности.
IPv6. Вот в чём штука: многие VPN-сервисы до сих пор работают только с IPv4. А ваш провайдер уже выдал вам IPv6-адрес. DNS-запросы по IPv6 просто не попадают в VPN-туннель и уходят напрямую. Вы об этом даже не узнаете, если специально не проверите.
Переключение сетей. Перешли с Wi-Fi на мобильный интернет? Вернулись домой и ноутбук переподключился к роутеру? В момент переключения VPN-соединение может на секунду разорваться, и система откатится на DNS провайдера. Некоторые клиенты потом не восстанавливают правильную маршрутизацию DNS.
Ручная настройка DNS в системе. Если вы когда-то прописали в настройках сетевого адаптера DNS-серверы Google (8.8.8.8) или Cloudflare (1.1.1.1) — VPN-клиент может не суметь их перезаписать. Запросы пойдут на эти серверы, но вне туннеля. Да, Google не ваш провайдер, но видеть ваши запросы он всё равно будет.
Как проверить VPN на утечку DNS за 2 минуты
Проверка элементарная. Серьёзно, это быстрее, чем заварить чай.
Шаг 1. Подключитесь к VPN.
Шаг 2. Откройте один из этих сайтов:
- dnsleaktest.com — нажмите Extended Test для подробных результатов
- browserleaks.com/dns — покажет все DNS-серверы, которые обрабатывают ваши запросы
- ipleak.net — проверяет и IP, и DNS, и WebRTC одним махом
Шаг 3. Посмотрите на результаты. Если в списке DNS-серверов вы видите название своего провайдера (Ростелеком, МТС, Билайн, МГТС и так далее) — у вас утечка. Если видите только серверы VPN-провайдера или незнакомые IP в другой стране — всё чисто.
Интересный момент: по данным исследования CSIRO 2017 года, из 283 проверенных Android VPN-приложений 84% допускали утечки трафика, а 66% не перенаправляли DNS-запросы. С тех пор ситуация стала лучше, но не радикально.
Я бы советовал проверять не только дома, но и в кафе, на работе, через мобильный интернет. Утечка может появляться в одной сети и отсутствовать в другой.
Что делать, если DNS утекает
Не паниковать. В большинстве случаев проблема решается.
Проверьте настройки VPN-клиента. Ищите опцию вроде «DNS leak protection» или «Use VPN DNS servers». Если такой настройки нет — это повод задуматься о качестве вашего VPN. У нормальных сервисов, включая Duck Proxy, защита от DNS-утечек работает по умолчанию.
Отключите Smart Multi-Homed Name Resolution в Windows. Это можно сделать через групповую политику (gpedit.msc) или через реестр. Гуглится за минуту по названию — конкретная ветка зависит от версии Windows.
Отключите IPv6, если VPN его не поддерживает. Да, это костыль. Но рабочий. В свойствах сетевого адаптера снимите галочку с «Протокол Интернета версии 6 (TCP/IPv6)». На macOS: Системные настройки → Сеть → выбрать подключение → Дополнительно → TCP/IP → настроить IPv6 → «Выкл.».
Включите Kill Switch. Если VPN-клиент умеет блокировать весь трафик при обрыве соединения — включайте обязательно. Это защищает не только от DNS-утечек, но и от утечки реального IP при переключении сетей.
А если VPN вообще не имеет защиты от утечек?
Меняйте VPN. Без вариантов. Это базовая функция, которая должна быть в любом сервисе, претендующем на приватность. Если разработчикам лень реализовать DNS leak protection — страшно представить, что там с остальным.
DNS-over-HTTPS и DNS-over-TLS: это поможет?
Коротко — поможет, но не заменит VPN.
DoH (DNS-over-HTTPS) и DoT (DNS-over-TLS) шифруют DNS-запросы. В Firefox DoH включается в настройках, в Chrome работает автоматически, если ваш DNS-провайдер его поддерживает. Это значит, что провайдер не сможет прочитать содержимое DNS-запроса, даже если перехватит его.
Но есть нюанс. Провайдер всё равно видит, что вы отправляете запросы на, допустим, 1.1.1.1. И видит весь остальной ваш трафик — IP-адреса серверов, к которым вы подключаетесь. DNS — это только одна часть головоломки.
DoH + VPN — хорошая комбинация. DoH без VPN — лучше, чем ничего, но полноценной защитой не является.
Почему это вообще важно
Можно подумать: ну видит провайдер мои DNS-запросы — и что? Я ничего противозаконного не делаю.
Дело не только в законах. DNS-логи — это полная карта вашей онлайн-жизни. Какие новостные сайты читаете, какие стриминговые сервисы используете, в каких соцсетях сидите, какие медицинские форумы посещаете. Провайдеры в России обязаны хранить эти данные и предоставлять их по запросу. А ещё они могут продавать обезличенную статистику рекламодателям — и не факт, что она останется обезличенной.
Утечка DNS при включённом VPN — это как запереть дверь на три замка и оставить открытым окно. Технически дверь заперта. Практически — толку ноль.
Потратьте две минуты. Откройте dnsleaktest.com. Проверьте. Если всё чисто — отлично, живите спокойно. Если нет — теперь вы знаете, что делать.