Почему прокси эту утечку не закрывает
WebRTC — механизм связи в реальном времени, встроенный в браузер и рассчитанный на прямое соединение двух устройств. Чтобы его установить, браузеру нужно выяснить, по каким адресам он доступен, и он спрашивает об этом STUN-сервер: «каким ты меня видишь?» Этот разговор идёт внутри браузера, мимо HTTP-трафика, к которому применяются настройки прокси. Отсюда и ситуация, знакомая всем, кто работает с антидетект-браузерами: профиль показывает нужный IP, сайт видит домашний.
Найденные кандидаты бывают трёх видов. Host — локальные адреса (192.168.x.x, 10.x.x.x) или mDNS-имя на .local: снаружи они бессмысленны, это не утечка. Server-reflexive — публичный адрес, который увидел STUN-сервер; вот он и важен. Если это не адрес вашего прокси — утечка. Relay приходит от TURN-сервера и о вас не говорит ничего.
Как идёт проверка
Это единственный инструмент на сайте, чья проверка уходит в сеть, — причём уходит ваш браузер, а не наш сервер: он обращается к публичным STUN-серверам Google и Cloudflare. Именно поэтому проверка запускается только по кнопке и никогда сама при открытии страницы. Сбор кандидатов мы закрываем и по сигналу браузера о конце списка, и по таймеру в четыре секунды: браузер, который не прислал финальный пустой кандидат, иначе крутил бы проверку бесконечно.
Что делать, если утечка нашлась
Firefox: about:config, параметр media.peerconnection.enabled в false. Выключает WebRTC целиком, вместе со звонками.
Chrome и Edge: встроенной настройки нет. Нужно расширение, которое ограничивает WebRTC проксируемым интерфейсом, а не то, которое обещает «отключить» всё.
Антидетект-браузер: в профиле есть режим подмены WebRTC — как правило, «замена на IP прокси». Режим «отключить» тоже закрывает утечку, но сам по себе выглядит необычно: живые браузеры WebRTC поддерживают.
VPN с kill switch заворачивает и WebRTC, потому что туннель лежит ниже браузера. По этой причине он течёт здесь реже, чем браузерный прокси.
Одни только имена .local — нормально: современные браузеры по умолчанию прячут локальные адреса за mDNS.
Чистый результат означает одну закрытую дыру, а не анонимность. Оставшееся показывают заголовки запроса и отпечаток браузера.
Частые вопросы
Что такое утечка WebRTC?
Это когда браузер отдаёт сайту ваш настоящий IP через механизм поиска адресов в WebRTC, хотя весь HTTP-трафик идёт через прокси. Страница получает адрес из браузерного интерфейса, не видя его ни в одном запросе.
В антидетект-браузере стоит прокси, а здесь виден мой домашний IP — почему?
Потому что подмена WebRTC в профиле либо выключена, либо настроена в режим, который её не закрывает. Настройки прокси в профиле управляют HTTP-трафиком, а WebRTC — отдельный канал, и его режим задаётся отдельным переключателем.
Защищает ли VPN от утечки WebRTC?
Обычно да: VPN уводит трафик всей системы, а не только запросы браузера. Но проверять стоит — раздельное туннелирование и IPv6 в обход туннеля возвращают утечку.
Вижу адреса 192.168.x.x — это утечка?
Нет. Это адреса локальной сети, за пределами роутера бессмысленные, до вас по ним никто не достучится. Смотреть надо на публичный адрес, найденный через STUN.
Стоит ли отключать WebRTC полностью?
Только если он не нужен: без него не работают видеозвонки, демонстрация экрана и часть рабочих сервисов. Ограничение WebRTC проксируемым интерфейсом сохраняет функциональность и закрывает утечку.
Проверка не показала вообще ничего — это хорошо?
Браузер не выдал ни одного кандидата: WebRTC выключен, заблокирован расширением или не поддерживается. Для утечки это безопасно, но и всё, чему нужен WebRTC, работать не будет.