Как читать результат теста на утечку WebRTC
Вы открываете тест на утечку WebRTC с включённым прокси и получаете страницу адресов: удалённый IP, локальный IP в виде случайной строки на .local, публичный IP и блок текста SDP. Что-то из этого выглядит тревожно и при этом безвредно, а поле, которое действительно важно, легко пролистать.
Здесь речь о том, как читать результат. Откуда утечка берётся и как её закрыть, разобрано в статье про защиту от утечек WebRTC.
Из чего состоит типичный тест
Возьмём для примера browserleaks.com/webrtc (подписи в том виде, в каком они были 22 октября 2026). На странице такие блоки:
- Your Remote IP: адреса IPv4 и IPv6, которые тестовый сервер увидел в HTTP-запросе. С прокси здесь должен быть его выходной адрес.
- WebRTC Support Detection: есть ли в браузере
RTCPeerConnectionиRTCDataChannel. - Your WebRTC IP: Local IP Address и Public IP Address, оба прочитаны из ICE-кандидатов.
- Session Description: сырой SDP Log.
- Media Devices: есть ли API камеры и микрофона и какое у них состояние разрешений.
ipleak.net и похожие сервисы показывают те же данные под другими подписями.
Одно сравнение, которое всё решает
Сравните Public IP Address в блоке WebRTC с Remote IP в начале страницы.
- Адрес совпадает: путь WebRTC до STUN-сервера вышел через тот же выход, что и веб-трафик. Утечки публичного IP нет.
- Адрес другой, и он ваш: STUN-запрос ушёл с машины мимо прокси, и сервер увидел ваш настоящий IP. Это и есть та утечка, о которой обычно говорят.
- Пусто: серверный рефлексивный кандидат не пришёл. Либо UDP до STUN-сервера заблокирован, либо браузер настроен его не собирать. Настоящий IP не раскрыт, но браузер, который никогда не выдаёт публичного кандидата, сам по себе необычен, и об этом подробнее в статье про защиту.
Всё остальное на странице вторично по отношению к этой строке.
Локальный IP: обычно не то, чем кажется
Local IP Address вида 3f2a9c1e-7b4d-4e0a-9a51-2c6d8e1f0b37.local это не ваш адрес. Браузеры на Chromium заменяют host-кандидаты случайным mDNS-именем, если у страницы нет разрешения на камеру или микрофон, чтобы сайт не мог бесплатно прочитать ваш адрес в локальной сети. Имя генерируется на сессию и разрешается только внутри вашей сети.
Частный адрес вроде 192.168.1.23 или 10.0.0.5 в этом поле означает, что подмена выключена или странице дали доступ к медиаустройствам. Кто вы в интернете, он не раскрывает, но добавляет энтропии и кое-что говорит о вашей сети. Если на одной машине работает несколько личностей, все они сообщат один и тот же адрес в LAN, и это их связывает.
Публичный адрес в поле локального IP появляется, когда у машины публичный IP прямо на интерфейсе, что обычно для серверов. Это утечка адреса хоста, даже если публичный кандидат чистый.
Случай с IPv6
Посмотрите на обе половины Remote IP. Прокси, который несёт только IPv4, оставляет поле IPv6 пустым или с другим адресом, а WebRTC может собрать IPv6-кандидата от вашего провайдера. Если IPv4 совпадает с прокси, а где-то в блоке WebRTC появляется IPv6 вашего провайдера, это утечка, хотя главный публичный IP выглядит правильно.
Как читать лог SDP
В логе SDP кандидаты записаны строками такого вида:
a=candidate:842163049 1 udp 1677729535 203.0.113.7 54321 typ srflx raddr 0.0.0.0 rport 0
Важные поля: транспорт (udp или tcp), адрес и порт, и typ. host это локальный интерфейс (или mDNS-имя), srflx это то, что увидел STUN-сервер, relay это адрес TURN-сервера. Найдите в логе каждый IP и сверьте его с выходом прокси. Сводные поля выше показывают по одному адресу на тип, а лог показывает все.
Сравнение результатов между профилями
Один тест отвечает на вопрос, течёт ли один профиль. Если на одной машине у вас несколько личностей, прогоните тест в каждой и сведите результаты вместе: вопрос меняется с «есть ли утечка» на «не выглядят ли они одним человеком».
| Поле | Должно различаться между профилями | Должно совпадать в одном профиле от запуска к запуску |
|---|---|---|
| Public IP | да, свой выход на каждую личность | да, если прокси не ротируется |
| Local IP (имя mDNS) | да, оно случайное | нет, новое имя на сессию это норма |
| Local IP (частный адрес) | лучше, чтобы его не было; если виден, он связывает профили | да |
| Media Devices: поддержка и разрешения | не обязательно | да |
Два шаблона заслуживают внимания. Публичный IP, который в одном запуске есть, а в следующем пустой, значит, что путь до STUN через этот прокси ненадёжен, и профиль попеременно выглядит как два разных браузера. А одинаковый частный адрес LAN во всех профилях это одна и та же машина, которая представляется под разными именами, даже если все публичные IP разные.
Когда тест отвечает на больше вопросов, чем нужно
Если вы пользуетесь системным VPN, который туннелирует весь трафик вместе с UDP, тест обычно покажет адрес VPN везде, и на этом можно остановиться. Антидетект-браузер в этом сценарии ничего не добавит. Сравнение становится тонким, только когда прокси задаётся на браузер или на профиль, а это обычная схема для работы с несколькими личностями.
Проверяйте там, где это важно
Запускайте тест внутри того профиля и с тем прокси, которыми будете пользоваться, и запускайте дважды: сразу после загрузки и через минуту, потому что ICE-кандидаты могут прийти с опозданием. Сверьте каждый адрес из лога SDP с удалённым IP. Остальную часть личности проверьте по чек-листу согласованности, а почему сам выход важен не меньше, чем отсутствие утечки, объясняет статья про резидентные прокси и прокси дата-центров.
Попробуйте на бесплатном тарифе.
Неограниченное число локальных профилей, без карты. Проверьте результат детекторами сами.