Безопасность
WebRTC leak: как браузер выдаёт ваш IP даже под VPN
§ в этой статье — 34 разделов
- Что такое WebRTC
- STUN
- Как работает WebRTC leak
- Кто эксплуатирует
- Как проверить WebRTC leak
- Тест 1: browserleaks.com/webrtc
- Тест 2: ipleak.net
- Тест 3: doileak.com
- Как починить — по браузерам
- Firefox
- Chrome / Edge / Brave
- Safari
- Mullvad Browser
- Tor Browser
- Решение на уровне VPN-клиента (частично)
- WebRTC leak на мобильных
- iOS Safari
- Android Chrome
- Что если нужны видеозвонки
- Дополнительные риски WebRTC
- Расширения и инструменты — детальный обзор
- WebRTC Control (Firefox / Chrome)
- uBlock Origin (Firefox / Chrome / Edge)
- Disable WebRTC (Firefox)
- Privacy Badger (Firefox / Chrome)
- NoScript (Firefox)
- Альтернатива: использование VM или контейнера для приватных задач
- Реальные кейсы WebRTC leak
- Случай 1: журналист использовал VPN + Firefox
- Случай 2: сайт детектил VPN-пользователей
- Случай 3: фрод-детектор банка
- Чек-лист защиты от WebRTC leak
- Резюме
- Связанные материалы
WebRTC leak — это утечка реального IP-адреса через браузер по протоколу WebRTC, даже если вы подключены к VPN. WebRTC использует STUN-серверы, чтобы узнать публичный IP клиента для P2P-соединений (видеозвонки, голосовые чаты, файлообмен). STUN-запрос может пойти мимо VPN-туннеля, и сайт через JavaScript получит ваш домашний IP. Это работает в Chrome, Firefox, Safari и других браузерах с поддержкой WebRTC.
В 2026 году WebRTC leak — одна из самых распространённых уязвимостей VPN-сетапа, и она не решается на стороне VPN-клиента: чинить нужно в браузере.
Что такое WebRTC
WebRTC (Web Real-Time Communication) — стандарт W3C для прямого P2P-соединения между браузерами без посредника-сервера. Используется в Google Meet, Discord (web-клиент), Zoom (web), WhatsApp Web, Telegram Web и десятках других сервисов для видео- и аудиосвязи.
Технически WebRTC устанавливает соединение между двумя устройствами через интернет. Для этого ему нужно знать публичные IP-адреса обоих участников — иначе пакеты UDP не найдут друг друга. Чтобы их узнать, WebRTC использует STUN.
STUN
STUN (Session Traversal Utilities for NAT) — серверы, которые сообщают клиенту его публичный IP-адрес. Вы шлёте UDP-запрос на STUN-сервер, он отвечает: «вижу тебя как 89.110.73.101:54321». Теперь вы знаете свой external IP и можете передать его собеседнику для прямого подключения.
WebRTC по умолчанию использует Google STUN (stun:stun.l.google.com:19302) или собственные сервера сервиса.
Как работает WebRTC leak
Проблема: STUN-запрос идёт через UDP, и в некоторых конфигурациях VPN может его пропустить или маршрутизировать неправильно.
Сценарий:
- Вы под VPN. Туннель работает, HTTPS-трафик идёт через сервер VPN.
- Открываете сайт с JavaScript, который использует WebRTC API.
- JS делает запрос: «дай мне ICE candidates» (список возможных адресов клиента).
- Браузер шлёт STUN-запросы. Если конфигурация не блокирует — UDP-запрос идёт через физический интерфейс, минуя VPN.
- STUN-сервер отвечает: «твой публичный IP — реальный домашний IP».
- JS получает этот IP и шлёт на сервер сайта (или просто отображает).
Результат: сайт знает ваш реальный IP, ваш VPN-IP, и сравнивает их. Если разные — вы под VPN, и сайт может вас деанонимизировать.
Кто эксплуатирует
Несколько типичных сценариев эксплуатации:
- Рекламные сети — собирают реальные IP для трекинга, даже под VPN.
- Фрод-детекторы — выявляют пользователей, которые маскируются под другую гео.
- Цели целенаправленных атак — могут специально получить IP через скомпрометированный сайт.
- Сайты, борющиеся с VPN-доступом — некоторые стримминги (Netflix), банки используют WebRTC leak для детекции VPN.
Это публичная уязвимость, которая существует с 2015 года и до сих пор актуальна.
Как проверить WebRTC leak
Тест 1: browserleaks.com/webrtc
Самый детальный. Зайдите на browserleaks.com/webrtc.
Что показывается:
- Public IP Address — что видит сервер.
- Local IP Address — внутренний IP в локальной сети (10.x, 192.168.x).
- Public IPv4 / IPv6 (WebRTC) — то, что выдаёт WebRTC через STUN.
Что должно быть:
- Public IP — VPN-IP.
- WebRTC Public — пусто или VPN-IP.
Что плохо:
- WebRTC Public показывает ваш реальный домашний IP — leak.
- Local IP виден — само по себе не критично (внутренний IP роутера никому ничего не говорит), но указывает на активный WebRTC.
Тест 2: ipleak.net
ipleak.net — секция WebRTC внизу страницы. Аналогично browserleaks.
Тест 3: doileak.com
doileak.com — общий leak-тест, включая WebRTC.
Как починить — по браузерам
Firefox
Firefox даёт прямой контроль через about:config:
- Откройте
about:configв адресной строке. - Согласитесь с предупреждением.
- Найдите параметр
media.peerconnection.enabled. - Установите в
false.
Это полностью отключит WebRTC. Минус — перестанут работать видеозвонки в браузере (Google Meet web, Discord web).
Если нужно сохранить WebRTC, но скрыть IP — есть media.peerconnection.ice.no_host и media.peerconnection.ice.default_address_only:
media.peerconnection.ice.default_address_only = true— браузер сообщит только одну адрес-кандидат, что усложняет утечку.
Лучше — установить расширение WebRTC Control или WebRTC Leak Shield, которое управляет настройками без about:config.
Chrome / Edge / Brave
Chrome не даёт встроенной опции отключить WebRTC. Это давняя жалоба сообщества, Google не двигается. Единственный путь — расширение.
Рекомендуемые расширения:
- WebRTC Leak Prevent — блокирует non-proxied UDP, оставляет работающим WebRTC через VPN.
- uBlock Origin — в advanced settings есть опция «Prevent WebRTC from leaking local IPs».
- WebRTC Control — детальный контроль.
Установите одно из них и проверьте через browserleaks.
Brave — встроенная защита от WebRTC leak: brave://settings/shields → WebRTC IP handling policy → Disable Non-Proxied UDP. Это правильная настройка, не отключающая WebRTC полностью, но блокирующая STUN-запросы вне VPN-туннеля.
Safari
Safari даёт меньше контроля. Чтобы полностью отключить WebRTC:
Safari → Preferences → Advanced → Show Develop menu.Develop → Experimental Features → отключить WebRTC mDNS ICE candidates.
Это не полное отключение, но снижает утечки.
Полностью отключить WebRTC в Safari невозможно без модификации системы. Apple не даёт.
Альтернатива — пользоваться Mullvad Browser или Tor Browser, которые правильно настраивают WebRTC.
Mullvad Browser
Mullvad Browser — форк Firefox от Mullvad VPN и Tor Project. WebRTC отключён или жёстко ограничен по умолчанию. Также защищён от browser fingerprinting.
Если приватность — приоритет, используйте Mullvad Browser, а не настраивайте обычный.
Tor Browser
Tor Browser — то же самое, только трафик через Tor. WebRTC отключён в дефолтной конфигурации.
Решение на уровне VPN-клиента (частично)
Некоторые VPN-клиенты пытаются заблокировать WebRTC-leak на уровне файрвола. Это работает, но не везде:
- Mullvad — Block non-proxied UDP traffic. Системный kill switch отрезает STUN-запросы, которые идут не через туннель.
- ProtonVPN — DNS Leak Protection частично закрывает WebRTC, но не полностью.
- NordVPN — не блокирует напрямую WebRTC, рекомендует расширения.
Идеал: VPN-клиент + системный kill switch + расширение в браузере. Чтобы даже если одна линия защиты упала — оставались остальные. Подробнее: Kill switch и защита от утечек.
WebRTC leak на мобильных
iOS Safari
Safari на iOS отключить WebRTC сложно. Но iOS-приложения сторонних браузеров (Brave, Firefox Focus) могут быть лучше.
В Brave iOS: Settings → Shields → Disable Non-Proxied UDP.
Android Chrome
В Android Chrome WebRTC включён и без расширений не отключить. Альтернативы:
- Firefox for Android + about:config.
- Brave for Android — встроенная защита.
- Tor Browser for Android — WebRTC отключён.
См. VPN для Android и VPN для iPhone.
Что если нужны видеозвонки
WebRTC — основа видеозвонков в браузере. Если вы его полностью отключите, перестанут работать:
- Google Meet (web-клиент).
- Discord (web).
- Whereby, Jitsi Meet.
- WhatsApp Web (звонки).
- Telegram Web (звонки).
Компромисс: использовать Brave / Mullvad Browser с опцией «Disable Non-Proxied UDP». WebRTC работает, но STUN-запросы идут через VPN-туннель. Видеозвонки работают, IP не утекает.
Альтернатива — использовать отдельный браузер для видеозвонков и отдельный для приватной активности. Видеозвонки в Chrome без VPN, приватная сёрфинг в Firefox с отключённым WebRTC под VPN.
Десктопные приложения (Zoom desktop, Discord desktop, Telegram desktop) не используют WebRTC напрямую — они шлют трафик через свои протоколы, которые обычно нормально маршрутизируются через VPN. Меньше уязвимостей.
Дополнительные риски WebRTC
Помимо leak IP, WebRTC может выдавать:
- mDNS hostnames — Chrome с 2019 года использует mDNS для скрытия local IP, но имя устройства (типа
iphone-vasiya.local) может утекать. - List of network interfaces — сколько у вас сетевых адаптеров.
- STUN response timing — для fingerprinting.
Полная приватность от WebRTC — только при полном его отключении.
Расширения и инструменты — детальный обзор
WebRTC Control (Firefox / Chrome)
Open-source расширение, одно из самых старых и проверенных. Поддерживает все основные браузеры. Позволяет:
- Полностью отключить WebRTC.
- Заблокировать только non-proxy UDP, оставив P2P работающим через VPN.
- Whitelist для сайтов, где WebRTC нужен.
Минусы: интерфейс староват, давно не обновлялся, но работает стабильно.
uBlock Origin (Firefox / Chrome / Edge)
Не специально WebRTC-расширение, но имеет фичу в дополнительных настройках. Откройте панель uBlock → Dashboard → Settings → Privacy → отметьте «Prevent WebRTC from leaking local IP addresses». Бонус: блокирует рекламу, трекеры, malware-домены.
Рекомендую uBlock Origin как универсальное расширение по приватности — оно покрывает не только WebRTC, но и десятки других векторов трекинга.
Disable WebRTC (Firefox)
Узкоспециализированное расширение, делает только одно: меняет media.peerconnection.enabled на false при загрузке. Минимально по весу, не открывает дополнительные настройки.
Privacy Badger (Firefox / Chrome)
От EFF. Не блокирует WebRTC напрямую, но детектит и блокирует сайты, которые используют WebRTC для fingerprinting. Совмещается с WebRTC Control.
NoScript (Firefox)
Жёстко контролирует JavaScript. Отключает WebRTC автоматически на сайтах, где он не разрешён вручную. Сложен для повседневного использования, но самый строгий.
Альтернатива: использование VM или контейнера для приватных задач
Радикальное решение, которое полностью изолирует приватный сёрфинг:
- Виртуальная машина (VirtualBox, UTM, VMware) с отдельной ОС.
- В этой ОС — браузер с настройками анонимности, VPN внутри VM.
- Хост-система — обычная, для повседневной работы.
WebRTC leak в VM не выдаст реальный IP хост-системы, только VM-IP, который и так через VPN.
Для тяжёлых задач opsec — Whonix (Linux-дистрибутив, специально под Tor) или Tails OS (live-USB).
Реальные кейсы WebRTC leak
Случай 1: журналист использовал VPN + Firefox
Журналист подключался к источнику через зашифрованный мессенджер на веб-версии. VPN был активен, IP замаскирован. Но веб-мессенджер использовал WebRTC для P2P-соединения с другим клиентом, и через STUN запрос пошёл наружу. Сторонний клиент увидел реальный IP журналиста.
Чтобы избежать — использовать desktop-приложение мессенджера, а не веб-версию. Desktop-app использует свой проток без браузерного WebRTC.
Случай 2: сайт детектил VPN-пользователей
Streaming-сервис активно борется с VPN. Сайт через JavaScript делал WebRTC-запросы и сравнивал HTTP-IP с WebRTC-IP. Если разные — блокировал доступ или показывал ошибку.
С исправленным WebRTC-leak streaming работает как обычно.
Случай 3: фрод-детектор банка
Банк через WebRTC получал реальный IP и сравнивал с заявленным VPN-IP. Если несовпадение — система определяла «подозрительная активность» и блокировала сессию.
В этом случае WebRTC leak был «фичей»: блокировал транзакции с VPN. Решение — отключать VPN при работе с банком, или использовать домашний VPN-роутер с правильной маршрутизацией.
Чек-лист защиты от WebRTC leak
-
Десктоп — основной браузер:
- Firefox:
media.peerconnection.enabled = falseили расширение WebRTC Control. - Chrome: расширение WebRTC Leak Prevent или uBlock Origin advanced.
- Brave: настройка «Disable Non-Proxied UDP».
- Safari: experimental features → disable WebRTC mDNS ICE candidates.
- Firefox:
-
Мобильный:
- Android: Firefox + about:config или Brave с настройкой.
- iOS: Brave или Mullvad Browser.
-
Универсальное решение:
- Mullvad Browser — отключено по умолчанию.
- Tor Browser — отключено по умолчанию.
-
VPN-уровень:
- Включить системный kill switch.
- DNS через VPN-туннель (см. DNS leak: как починить).
- Block non-proxied UDP в Mullvad/IVPN.
-
Проверка:
- Раз в месяц на browserleaks.com/webrtc.
- После любого обновления браузера.
Резюме
WebRTC leak — серьёзная уязвимость VPN-сетапа, потому что она работает на уровне браузера, минуя сам VPN. Хорошие новости: исправить просто. 5–10 минут на установку расширения или изменение настройки — и проблема закрыта.
Главное помнить: один тест на browserleaks после обновления браузера — потому что обновления Chrome / Firefox иногда сбрасывают настройки расширений. Профилактика лучше деанонимизации.
Для chronical-приватности — Mullvad Browser или Tor Browser, где это решено архитектурно. Для обычного использования — расширение + Brave или Firefox.
Связанные материалы
читать дальше
Похожие статьи
-
Безопасность
Kill switch и защита от утечек VPN: подробный разбор 2026
Что делает kill switch, чем отличается системный уровень от app-level, что протекает без него: DNS, IPv6, WebRTC. Mullvad, ProtonVPN, Surfshark — кто как реализует.
-
Безопасность
ML-классификаторы против VPN 2026: как нейросети ловят трафик
ТСПУ применяет XGBoost и random forest на packet timings для классификации зашифрованного трафика. Что обходит ML: DAITA, padding, traffic shaping. Технический разбор.
-
Безопасность
Как платить за VPN анонимно в 2026: Monero, Lightning, vouchers
Способы оплатить VPN без раскрытия личности: Monero, Bitcoin Lightning, наличные по почте, ваучеры, prepaid-карты. Mullvad, AzireVPN, IVPN — кто принимает что.