Руководство

Что такое DNS и как утечки DNS ломают анонимность прокси

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

Roman Bulatov
Эксперт по прокси и сетевой инфраструктуре · · 5 мин чтения

Как устроена система доменных имён (DNS)

Интернет маршрутизирует трафик по числовым IP-адресам, но людям удобнее имена вроде proxyverity.com. Система доменных имён (DNS) связывает эти миры: она переводит понятные человеку доменные имена в машинные IP-адреса. Без DNS пришлось бы запоминать наборы цифр для каждого сайта — что непрактично.

DNS часто называют телефонной книгой интернета. Когда вы вводите URL в браузере, устройство отправляет DNS-запрос резолверу, а тот проходит по иерархической системе, чтобы найти нужный IP-адрес. Это занимает миллисекунды при каждой загрузке веб-страницы.

Как работает разрешение DNS: пошаговый разбор

Иерархия DNS состоит из трёх основных уровней: корневых серверов, серверов доменов верхнего уровня (TLD) и авторитетных серверов имён. Вот что происходит, когда вы запрашиваете example.com:

  1. Рекурсивный запрос: устройство (или сеть) отправляет запрос рекурсивному резолверу (часто его предоставляет интернет-провайдер).
  2. Корневой сервер: резолвер спрашивает корневой сервер, где искать сервер TLD для .com.
  3. Сервер TLD: корневой сервер отвечает адресом сервера TLD для .com. Затем резолвер запрашивает этот сервер.
  4. Авторитетный сервер: сервер TLD указывает на авторитетный сервер имён для example.com. Резолвер запрашивает этот сервер.
  5. Ответ: авторитетный сервер возвращает IP-адрес (например, A-запись для IPv4). Резолвер кэширует его и отправляет обратно устройству.

Этот процесс может быть рекурсивным (резолвер выполняет все шаги) или итеративным (клиент сам запрашивает каждый сервер). Для конечных пользователей чаще используется рекурсивное разрешение.

Кэширование DNS и TTL

Чтобы повысить производительность, ответы DNS кэшируются на разных уровнях: в браузере, операционной системе и самом резолвере. У каждой DNS-записи есть значение времени жизни (TTL), которое определяет, сколько её хранить до нового запроса. Меньшие TTL означают более частые запросы — это полезно для балансировки нагрузки, но увеличивает нагрузку на резолвер.

Типы DNS-записей, которые стоит знать

Тип записиНазначениеПример
AСопоставляет домен с IPv4-адресом192.0.2.1
AAAAСопоставляет домен с IPv6-адресом2001:db8::1
CNAMEПсевдоним одного домена для другогоwww.example.com → example.com
MXУказывает почтовые серверы для доменаmail.example.com
NSДелегирует поддомен набору серверов имёнns1.example.com

Другие типы включают TXT (произвольный текст), SRV (расположение службы) и SOA (начало полномочий). Для большинства пользователей наиболее важны записи A и AAAA.

Что такое утечка DNS?

Утечка DNS происходит, когда устройство отправляет DNS-запросы в обход защищённого туннеля прокси или VPN и тем самым раскрывает постороннему наблюдателю ваш настоящий IP-адрес или местоположение. Даже если весь остальной трафик идёт через прокси, одного утёкшего DNS-запроса достаточно, чтобы вас деанонимизировали: в самом запросе есть имя посещаемого домена, и передаётся он открытым текстом (обычно UDP, порт 53).

Почему так происходит? Многие прокси-клиенты направляют через прокси только трафик прикладного уровня и не трогают общесистемные настройки DNS. Операционная система продолжает обращаться к DNS-резолверу по умолчанию из локальной сети (например, к серверу провайдера), а не к DNS-серверу, заданному в прокси. По той же причине браузеры со встроенным «безопасным DNS» могут обходить прокси, если их правильно не настроить.

Удалённое разрешение DNS и SOCKS

Некоторые протоколы прокси поддерживают удалённое разрешение DNS. Например, SOCKS5h (буква h означает hostname) передаёт имя домена прокси-серверу, и тот разрешает его за вас. Так клиент не делает локальный DNS-запрос. Однако обычные HTTP-прокси часто рассчитывают, что домен сначала разрешит клиент, и потому уязвимы к утечкам, если в клиенте явно не включена передача DNS прокси.

Если бесплатный прокси не поддерживает удалённое разрешение DNS, ваши запросы могут утечь. Всегда проверяйте настройки клиента: инструменты вроде curl --socks5-hostname используют удалённое разрешение, а --socks5 — нет.

Как проверить утечку DNS

Есть несколько онлайн-сервисов, которые показывают, перехватывает ли прокси ваши DNS-запросы. Подключитесь к прокси и зайдите на ipleak.net или dnsleaktest.com. Они покажут DNS-серверы, которые использует ваша система. Если среди них есть серверы вашего провайдера или локальной сети, значит, утечка есть.

Можно и из командной строки:

nslookup google.com  # Проверьте, какой резолвер используется

Сравните ответ с известными прокси. Ещё можно воспользоваться нашим проверщиком прокси и убедиться в правильности настроек и анонимности.

Как предотвратить утечки DNS

Чтобы DNS-запросы оставались внутри прокси-туннеля:

  • Используйте прокси с поддержкой удалённого DNS (SOCKS5h или VPN с перенаправлением DNS).
  • Задайте DNS-сервер вручную — доверенный, без утечек (например, 1.1.1.1 или 8.8.8.8) — в настройках прокси-клиента.
  • Отключите IPv6, если прокси его не поддерживает: DNS-запросы по IPv6 могут утекать отдельно.
  • Выберите тип прокси вроде VPN, который обычно направляет весь трафик, включая DNS.
  • Включите DNS-over-HTTPS (DoH) в браузере, но следите, чтобы он шёл через туннель прокси, иначе DoH может обойти прокси.

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

Честно о публичных прокси и DNS

Бесплатные прокси — это риск. Они могут намеренно или случайно пропускать данные DNS, записывать ваши запросы и даже подсовывать вредоносное ПО. Даже если прокси работает, при удалённом разрешении оператор прокси видит ваши DNS-запросы — так что доверие здесь важно.

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

Помните: собираете данные с сайтов? Всегда соблюдайте robots.txt и условия использования. Утечки DNS — это не только проблема анонимности: они также могут раскрыть вашу личность в правовых ситуациях. Будьте в курсе и соблюдайте меры безопасности.