Тест утечки WebRTC: раскрывает ли ваш VPN реальный IP-адрес?
Этот тест утечки WebRTC запускает в точности тот же алгоритм peer-to-peer соединений, который применяют скрипты трекинга, и определяет, фигурирует ли среди собранных адресов тот, который должен был скрыть ваш VPN. Инструмент открывает соединение RTCPeerConnection с пустым каналом данных — без камеры, без микрофона и без запросов разрешений —, опрашивает два публичных STUN-сервера о том, как ваше соединение выглядит снаружи, и сравнивает результат с IP-адресом обычных HTTPS-запросов.
Как читать кандидатов ICE, обнаруженных тестом
Протокол WebRTC обязан собрать все возможные сетевые адреса, по которым удаленный участник может связаться с вашим устройством, формируя список кандидатов ICE. На этой странице отображается полный сырой список с указанием типа и транспортного протокола; сбор данных завершается через пять секунд.
В верхней части отображаются ваши обычные адреса IPv4 и IPv6, зафиксированные по протоколу HTTP — те же самые, что выдает инструмент какой у меня IP-адрес. Они служат базовым эталоном, а итоговый вердикт выносится на основе прямого сопоставления.
host, srflx и relay — расшифровка обозначений
- Локальный (host) — адрес вашего собственного сетевого адаптера: IP в локальной сети вроде
192.168.1.14или случайное имя.local. - Публичный (через STUN) — кандидат
srflx, то есть адрес, с которого STUN-сервер принял пакет. Ключевой параметр при проверке надежности VPN. - Реле (TURN) — трафик, прошедший через промежуточный ретранслятор; этот тест использует только STUN, поэтому появление строки relay маловероятно.
Что означают результаты проверки
- Обнаружена утечка — публичный кандидат STUN не совпадает с вашим HTTP IP; при включенном VPN это значит, что WebRTC обошел защищенный туннель.
- Утечек нет — оба адреса полностью совпадают.
- Локальный IP раскрыт — отобразился прямой LAN-адрес вместо зашифрованного имени mDNS.
- Защищен — ваш локальный адрес надежно скрыт случайным именем хоста
.local. - Нет публичного IP / WebRTC заблокирован — серверы STUN недоступны либо WebRTC отключен в настройках.
Почему WebRTC выдает IP-адрес, скрываемый VPN
Технология WebRTC создавалась для организации видеозвонков, голосовой связи и передачи файлов напрямую между браузерами. Чтобы связать два устройства за разными маршрутизаторами, требуется обход NAT, а для этого нужен ответ извне: с какого адреса поступает этот поток? Сервер STUN дает такой ответ, и любой веб-сайт может запустить этот процесс в фоновом режиме через JavaScript.
Проблема возникает, когда вы рассчитываете скрыть свой сетевой адрес. VPN направляет обычные HTTP-запросы через зашифрованный туннель, но WebRTC отправляет собственные UDP-пакеты к STUN, которые при раздельном туннелировании идут стандартным маршрутом провайдера. Расширения VPN для браузеров — классический пример: они проксируют веб-трафик, но не перехватывают UDP-стек операционной системы — поэтому результат этого теста может опровергать данные, которые показывает обычная проверка VPN по HTTP.
Случайное имя хоста .local не является утечкой
Если в графе host-кандидата указано значение вида 7b3f9c21-4d0a-48e7.local вместо 192.168.1.14, система работает штатно. Это маскировка mDNS: браузер генерирует временное имя multicast DNS для сетевого адаптера и передает его вместо реального LAN-адреса. Chrome, Edge, Brave, Firefox и Safari делают это по умолчанию — uBlock Origin убрал встроенную функцию WebRTC в версии 1.38, поскольку браузеры взяли защиту на себя. Однако помните: это защищает лишь локальный адрес (и не предотвращает утечку внешнего IP через VPN), а сайт с разрешением на камеру или микрофон все равно получит реальный LAN IP.
Как устранить утечку WebRTC в Chrome и Edge
Ни в одном из этих браузеров нет простого переключателя в интерфейсе, а параметры в chrome://flags и edge://flags больше не отключают WebRTC. На практике эффективны три решения:
- Используйте полноценный системный VPN-клиент (Full-Tunnel) вместо браузерного расширения. Если весь UDP-трафик проходит через туннель, STUN зафиксирует только IP-адрес VPN-сервера.
- Настройте политику обработки IP через расширение. Утилиты вроде WebRTC Leak Prevent переводят параметр
chrome.privacy.network.webRTCIPHandlingPolicyв режимdefault_public_interface_onlyилиdisable_non_proxied_udp, предотвращая локальную утечку. - Примените групповые политики ОС. Задайте политику
WebRtcIPHandlingдля Chrome илиWebRtcLocalhostIpHandlingв веткеSOFTWARE\Policies\Microsoft\Edgeсо значениемAllowPublicInterfaceOnlyлибоDisableNonProxiedUdp. Потребуется перезапуск браузера; проверить статус можно наedge://policy.
Как полностью отключить WebRTC в Firefox
Firefox — единственный популярный десктопный браузер, где сохранился прямой выключатель. Введите about:config в адресной строке, подтвердите предупреждение, найдите параметр media.peerconnection.enabled и дважды кликните по нему, чтобы перевести в значение false. WebRTC моментально отключится для всех сайтов без перезагрузки, а тест отобразит его как заблокированный.
Это кардинальная мера: браузерные сервисы вроде Google Meet, Teams, Discord и Zoom перестанут подключаться к звонкам. Чтобы сохранить возможность голосовой связи, оставьте эту опцию включенной и переведите параметр media.peerconnection.ice.default_address_only в значение true — тогда Firefox будет отдавать только адрес шлюза по умолчанию (то есть VPN).
Как предотвратить утечку WebRTC в Brave
Браузер Brave выносит в открытые настройки то, что скрывает Chrome. Откройте brave://settings/privacy и найдите блок WebRTC IP handling policy. При работе через VPN или прокси актуальны два варианта:
- Default — опрашивает все адаптеры и может раскрывать локальные IP.
- Default Public and Private Interfaces — использует основной маршрут, но продолжает отдавать приватный адрес.
- Default Public Interface Only — только основной маршрут без локальных адресов; звонки работают штатно. Оптимальный вариант на каждый день.
- Disable Non-Proxied UDP — принудительно переводит трафик в TCP через прокси, если тот не поддерживает UDP. Самый строгий режим (как в окнах Tor), но может нарушать p2p-связь.
Особенности работы в Safari, iPhone и Android
На мобильных платформах и на движке WebKit традиционные советы для ПК неприменимы.
Safari на macOS
В актуальных версиях Safari отсутствует постоянный глобальный выключатель. Опции в меню разработчика сбрасываются при закрытии программы. Так как Safari скрывает локальные IP за mDNS до предоставления прав на микрофон или камеру, надежнее всего контролировать разрешения сайтов в Safari > Настройки > Веб-сайты и использовать системный VPN.
iPhone и iPad
Любой браузер на iOS обязан использовать движок WebKit. Chrome и Firefox на iPhone не поддерживают about:config, скрытые флаги или расширения; блокировщики контента не могут фильтровать WebRTC. Чтобы исключить утечки на iOS, активируйте VPN-профиль в Настройки > VPN с перехватом UDP-пакетов и повторите тест в Safari.
Android
Chrome для Android не поддерживает флаги и расширения для WebRTC. Brave для Android содержит аналогичные настройки обработки IP в меню конфиденциальности. В Firefox для Android about:config доступен лишь в сборках Beta и Nightly. Универсальный системный метод — включить Постоянный VPN и активировать Блокировать соединения без VPN.
Ограничения данного теста утечек
Эта страница фиксирует исключительно те параметры, которые ваш браузер передает скриптам на текущем домене. Тест не выявляет утечки глубже уровня браузера — сбои маршрутизации на уровне ОС или трафик IPv6, который не перехватывается вашим VPN — и не анализирует DNS-запросы. Если фаервол блокирует STUN, отобразится статус „Нет публичного IP“, что означает лишь отсутствие ответа. Кроме того, IP — лишь один из идентификаторов: параметры экрана, шрифты и заголовки, перечисленные на странице Какой у меня браузер, способны безошибочно выделить ваше устройство даже при чистом VPN-адресе.
Часто задаваемые вопросы (FAQ)
Может ли WebRTC раскрыть реальный IP даже при включенном VPN?
Да, такое происходит регулярно. WebRTC отправляет свои UDP-пакеты напрямую к серверам STUN. При раздельном туннелировании или использовании браузерных расширений эти пакеты идут в обход туннеля через обычное подключение провайдера. Сервер STUN видит ваш настоящий адрес, а любой сайт может извлечь его через JavaScript. Системный VPN-клиент полностью решает эту проблему.
Можно ли полностью отключить WebRTC в браузере Edge?
Через стандартный интерфейс — нет: в Edge нет кнопки отключения, а старый флаг в about:flags удален. В Windows можно задать политику WebRtcLocalhostIpHandling со значением AllowPublicInterfaceOnly или DisableNonProxiedUdp в реестре по пути SOFTWARE\Policies\Microsoft\Edge. Потребуется перезапуск; проверка доступна на edge://policy.
Где отключить WebRTC и PeerConnection в Firefox?
В about:config: найдите параметр media.peerconnection.enabled и двойным щелчком переведите в false. Это отключит WebRTC для всех сайтов без перезапуска, но веб-звонки перестанут работать. Если звонки нужны, оставьте параметр включенным и переведите media.peerconnection.ice.default_address_only в true.
Как навсегда отключить WebRTC в браузере Safari?
В современных версиях Safari отключить WebRTC глобально и навсегда невозможно. Старый пункт в экспериментальном меню удален, а параметры в меню разработчика действуют только в рамках сессии. Поскольку Safari скрывает локальные IP за mDNS, лучший путь — управление разрешениями в Safari > Настройки > Веб-сайты и использование системного VPN.
Какие настройки лучше всего защищают от утечек WebRTC в Brave?
В brave://settings/privacy выберите вариант «Disable Non-Proxied UDP» в графе WebRTC IP handling policy при активном VPN или прокси. WebRTC будет перенаправлять трафик в TCP через прокси, и STUN не увидит ваш реальный IP. Режим «Default Public Interface Only» — более мягкий вариант, при котором голосовые вызовы продолжают работать.
Какую политику обработки IP в WebRTC следует выбрать?
Режим «Default Public Interface Only» подходит большинству пользователей: он маскирует локальные сетевые адаптеры, сохраняет поддержку UDP и обеспечивает работу видеозвонков. Режим «Disable Non-Proxied UDP» выбирайте только при повышенных требованиях к анонимности. Стандартные режимы по-прежнему выдают локальные адреса устройства.
Почему мой приватный IP-адрес оказывается публичным из-за WebRTC?
В современных браузерах этого уже не происходит открыто. Chrome, Edge, Brave, Firefox и Safari подменяют реальный LAN-адрес случайным именем mDNS с окончанием .local. Веб-страницы видят лишь это имя вместо адреса вроде 192.168.1.14. Если в тесте отображается незащищенный локальный IP, встроенная защита mDNS отключена.