
Почему прокси может раскрыть IP: проверка и защита WebRTC
Обычная проверка показывает прокси, а WebRTC-тест — другой IP или имя .local. Это ещё не доказывает утечку: сначала нужно узнать тип ICE-кандидата и маршрут трафика.
Проверено в июле 2026 года. После обновления браузера, прокси или сети тест следует повторять.
Как возникает различие
HTTP-прокси обычно переносит веб-запросы. WebRTC для аудио, видео и каналов данных собирает ICE-кандидаты с локальных интерфейсов, через STUN и TURN, используя UDP или TCP. Если UDP либо IPv6 не входят в прокси, STUN может увидеть публичное отображение исходной сети.
| Тип | Значение |
|---|---|
host | Локальный интерфейс, частный адрес, IPv6 или mDNS; сам по себе не доказывает публичную утечку |
srflx | NAT-адрес, найденный STUN; исходный публичный IP провайдера здесь — сильный признак утечки |
prflx | Кандидат, найденный при проверке связи |
relay | Адрес TURN-сервера, а не конечного устройства |
W3C предупреждает, что ICE-адреса могут раскрывать местоположение и топологию и увеличивать поверхность fingerprinting. См. раздел W3C об IP.
Воспроизводимая проверка
- Приватно запишите исходные IPv4 и IPv6.
- Включите прокси, перезапустите профиль и проверьте HTTP, DNS, IPv4 и IPv6.
- Соберите кандидаты с указанием
type,protocolи адреса. - Сопоставьте их с исходным IP, прокси и TURN.
- Полностью перезапускайте профиль после каждого изменения.
srflx с исходным IP провайдера означает риск. Частный адрес или .local означает host/mDNS и требует дополнительной оценки. relay показывает TURN. Описание типов: MDN RTCIceCandidate.
Защита
Используйте туннель, который явно обрабатывает требуемые UDP и IPv6, проверьте split tunneling и запретите непроходящий через прокси UDP, если это поддерживается. Полное отключение WebRTC ломает конференции и screen sharing. Разработчик сайта может выбрать iceTransportPolicy: relay и TURN, но это увеличивает задержку и расходы.
PurpleMark предлагает Forward, Replace, Real, Disable и Proxy UDP. Replace согласует видимый IPv4 с выходом прокси; Real оставляет исходные данные; Disable блокирует чтение WebRTC; Proxy UDP запрещает непроксированный UDP и требует Patch 2.8.2.0+; Forward сохраняет возможность WebRTC через настроенную схему. Каждый режим нужно тестировать в конкретной сети.
Контрольный список
- Совпадает ли HTTP-выход с прокси?
- Обрабатываются ли IPv4 и IPv6?
- Есть ли исходный публичный IP в
srflx? - Другой адрес — private, mDNS, proxy или TURN?
- Поддерживает ли прокси UDP?
- Работают ли нужные звонки после изменения?
Вывод
Второй адрес на странице не равен утечке. Надёжный вывод требует типа кандидата и сравнения с исходным и прокси-адресом. Настройка PurpleMark помогает изолировать разрешённые среды, но не отменяет правила сайтов и не гарантирует результат без проверки.