TrueSocks

Безопасность · 7 мин

Утечки WebRTC и DNS через прокси: как проверить и закрыть

  • Редакция TrueSocks
  • 7 мин чтения

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

Коротко

5 пунктов
  • WebRTC использует UDP и может обращаться к STUN-серверам мимо HTTP-прокси, раскрывая ваш настоящий публичный IP.
  • DNS-утечка выдаёт, чьими DNS-серверами вы пользуетесь: через HTTP-прокси её нет, у SOCKS5 всё зависит от настройки удалённого DNS.
  • Проверяйте три вещи: IP на сайте, кандидаты WebRTC и список DNS-серверов в тесте утечек.
  • В антидетект-браузере выбирайте режим WebRTC с подменой на IP прокси, а не полное отключение.
  • В скриптах используйте схему socks5h://, чтобы имена сайтов разрешались на стороне прокси.

Что такое утечка и чем она опасна

#

Утечка - это ситуация, когда часть трафика или сведений о вас идёт мимо прокси. Сайт видит IP прокси в основном запросе, но через другой канал получает ваш настоящий адрес или признаки вашего провайдера. Для антифрод-системы это сильный сигнал: адрес из Германии, а WebRTC показывает домашний IP в Москве.

УтечкаЧто раскрываетсяОткуда берётся
WebRTCНастоящий публичный IP, иногда локальныйUDP-запросы к STUN-серверам в обход HTTP-прокси
DNSDNS-серверы вашего провайдера и их странаИмена сайтов разрешаются на вашем компьютере, а не на прокси
IPv6Ваш IPv6-адресПрокси настроен только для части трафика, IPv6 идёт напрямую
Часовой пояс и языкРеальный регионНастройки системы не совпадают со страной прокси

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

Как возникает утечка WebRTC

#

WebRTC - технология видеозвонков и передачи данных прямо между браузерами. Чтобы два браузера нашли друг друга, каждый собирает список своих адресов, так называемых ICE-кандидатов. Часть из них браузер узнаёт, спросив у STUN-сервера: «с какого адреса ты меня видишь?»

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

Как возникает утечка DNS

#

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

ПодключениеГде разрешаются именаЕсть ли утечка
HTTP(S)-прокси в браузереНа прокси: браузер передаёт имя в запросе CONNECTНет
SOCKS5 в Chrome и EdgeНа проксиНет
SOCKS5 в Firefox без удалённого DNSНа вашем компьютереДа
socks5:// в curl и PythonНа вашем компьютереДа
socks5h:// в curl и PythonНа проксиНет
Proxifier с выключенным DNS через проксиНа вашем компьютереДа

Отсюда простое правило: при работе через SOCKS5 всегда включайте разрешение имён на стороне прокси. В Firefox это галочка проксирования DNS-запросов при использовании SOCKS v5 в параметрах соединения, в скриптах буква h в схеме, в Proxifier опция Resolve hostnames through proxy. Про разницу протоколов подробнее в статье HTTP(S) и SOCKS5.

Как проверить утечки за пять минут

#
  1. Включите прокси и откройте чистый профиль

    Расширения и старые cookies могут исказить результат. Удобнее всего проверять в новом профиле браузера или антидетекта.

  2. Проверьте IP

    Откройте browserleaks.com/ip или ipleak.net. В поле адреса должен быть IP прокси, страна и провайдер должны совпадать с купленными.

  3. Проверьте WebRTC

    На странице browserleaks.com/webrtc посмотрите раздел с публичными адресами. Там должен быть адрес прокси или пусто, но не ваш домашний IP.

  4. Проверьте DNS

    Запустите расширенный тест на dnsleaktest.com. В списке серверов не должно быть DNS вашего домашнего или мобильного провайдера.

  5. Проверьте IPv6

    Откройте api6.ipify.org. Если показан ваш домашний IPv6, часть трафика идёт мимо прокси.

  6. Сверьте часовой пояс и язык

    Сервисы проверки показывают часовой пояс браузера. Он должен соответствовать стране прокси.

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

Как закрыть утечки в Chrome, Edge и Firefox

#

Chrome и Edge

Встроенного переключателя в настройках нет. Есть два способа:

  • Расширение WebRTC Network Limiter от Google. В нём выберите режим, при котором WebRTC не использует UDP в обход прокси. Звонки через прокси могут работать хуже, зато адрес не утекает.
  • Корпоративная политика WebRtcIPHandling со значением disable_non_proxied_udp. Её задают через реестр Windows или профиль конфигурации macOS, она действует на все профили браузера.

Firefox

about:config
network.proxy.socks_remote_dns          true
media.peerconnection.ice.proxy_only     true
media.peerconnection.ice.default_address_only  true

# полностью отключить WebRTC (звонки в браузере перестанут работать)
media.peerconnection.enabled            false

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

Утечки в антидетект-браузере

#

Антидетект-браузеры решают проблему на уровне профиля. Обычно для WebRTC есть три режима:

Подмена (рекомендуется)

  • WebRTC работает, сайты видят обычный браузер
  • В кандидатах показывается IP прокси
  • Сочетается с автоматическим часовым поясом по IP

Отключение или реальный

  • «Отключено»: отсутствие WebRTC выделяет профиль
  • «Реальный»: в кандидаты попадает ваш настоящий адрес
  • Ручные режимы легко забыть поменять при смене прокси

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

Несостыковки, которые выдают не хуже утечек

#

Даже если IP, WebRTC и DNS чистые, сайт сравнивает адрес с тем, что сообщает о себе браузер. Каждое расхождение по отдельности не страшно, но вместе они складываются в портрет «человек в Москве с немецким прокси».

СигналКак сайт его получаетКак привести в порядок
Часовой поясJavaScript, Intl.DateTimeFormat().resolvedOptions().timeZoneАвтоопределение по IP в антидетекте, timezoneId в Playwright
ЯзыкЗаголовок Accept-Language и navigator.languagesЯзык профиля под страну прокси или нейтральный английский
Геолокация браузераAPI геолокации, если вы дали разрешениеНе давать разрешение или подменять координаты под IP
Тип адресаASN и списки адресов дата-центровДля строгих площадок ISP, резидентские или мобильные прокси

Обратите внимание и на смену адреса. Если аккаунт вчера заходил из Казахстана, а сегодня из Германии, это тоже сигнал, даже без единой утечки. Для аккаунтов держите постоянный адрес одной страны, а подробности о типах адресов найдёте в статье серверные, ISP, резидентские и мобильные.

Утечки в скриптах и системных настройках

#

В коде WebRTC обычно нет, а вот DNS-утечки встречаются постоянно. Типичный пример - SOCKS5 в curl или Python со схемой без h.

Правильно: DNS на стороне прокси
curl -x socks5h://login:[email protected]:1080 https://api.ipify.org

# Python requests
proxies = {"https": "socks5h://login:[email protected]:1080"}

Ещё одна ловушка - системный прокси в Windows и macOS. Его учитывают браузеры и часть программ, но многие приложения его игнорируют и ходят напрямую. Если нужно гарантированно завернуть в прокси всю программу, используйте Proxifier с включённым разрешением имён через прокси, а затем проверьте, что сайт видит нужный адрес. Примеры для разных инструментов собраны в статье прокси в curl, wget и Node.js.

Вопросы и ответы

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

Включите прокси и откройте browserleaks.com/webrtc. Если в публичных адресах виден ваш домашний IP, а не адрес прокси, утечка есть. Для сравнения заранее узнайте свой IP без прокси.

Нужно ли полностью отключать WebRTC?

Обычно нет. Отключённый WebRTC сам по себе выделяет браузер. Лучше ограничить WebRTC работой через прокси или включить в антидетекте режим подмены на IP прокси.

Бывает ли утечка DNS через HTTP-прокси?

В браузере нет: при HTTPS браузер передаёт прокси имя сайта, и адрес определяет прокси. Утечки DNS характерны для SOCKS5 без удалённого разрешения имён и для программ, которые сами разрешают имена.

Чем socks5 отличается от socks5h?

Со схемой socks5h имя сайта разрешается в IP на стороне прокси. Со схемой socks5 это делает ваш компьютер, и DNS-запрос уходит вашему провайдеру.

Редакция TrueSocks

Гайды и разборы о прокси

Статьи пишет команда TrueSocks: те, кто собирает каталог прокси и отвечает в поддержке. Нашли неточность или устаревший шаг? Напишите нам в Telegram, поправим.

На посадку

Прокси для этой задачи

Цена «от» за единицу на базовый срок, страны и скидка за объём видны на странице товара.

  • #WebRTC
  • #DNS
  • #утечки
  • #безопасность
  • #антидетект
Поделиться

Прокси предоставляются для законных задач. Спам, мошенничество и взлом запрещены, соблюдайте правила площадок. Правила сервиса

Все статьи