Все статьи
Безопасность
19 мин

WebRTC-утечки: ваш реальный IP виден через браузер даже с VPN

Подключили VPN, открыли 2ip.ru — IP европейский. Кажется, всё в порядке. Открыли whoer.net или browserleaks.com — и увидели свой настоящий российский IP. Как? Через WebRTC. Это технология видео- и аудиозвонков в браузере (используется Discord, Google Meet, Zoom Web), которая для оптимизации сети проверяет ваш реальный публичный IP-адрес — и делает это в обход VPN. WebRTC-leak — одна из самых коварных уязвимостей: VPN работает, но любой сайт может узнать ваш реальный IP через JavaScript. В этой статье — детальный разбор: как работает WebRTC, как тестировать утечки, как отключить WebRTC в Chrome, Firefox, Safari, Brave, Edge, и почему VPN RUS Client с системным TUN-туннелем закрывает эту проблему автоматически.

Внимание

Если у вас VPN, но WebRTC не отключён — каждый сайт, который вы открываете, может узнать ваш реальный IP через JavaScript за миллисекунды. Это не теоретическая угроза — таргетированная реклама и аналитические системы используют WebRTC-leak повсеместно. VPN сам по себе ОТ ЭТОГО НЕ ЗАЩИЩАЕТ, нужны дополнительные меры.

Что такое WebRTC и зачем он вообще нужен

WebRTC (Web Real-Time Communication) — это набор API-стандартов W3C для прямой передачи аудио, видео и данных между браузерами. Разработан в 2011 году Google для конкуренции с Skype/Flash. Сейчас встроен в Chrome, Firefox, Safari, Edge, Opera. Используется в:

  • Google Meet, Zoom (web-версия), Microsoft Teams
  • Discord (через web-app)
  • Видеозвонки в Telegram, WhatsApp Web
  • Онлайн-играх в браузере
  • P2P файлообмене в браузере
  • Стриминговых сервисах (некоторые)

WebRTC создан для прямого P2P соединения между двумя пиерами (компьютерами). Чтобы соединение установилось, обоим нужно знать публичные IP друг друга — иначе через NAT не проложить путь. WebRTC использует технологию ICE (Interactive Connectivity Establishment) и серверы STUN (Session Traversal Utilities for NAT), которые сообщают вашему компьютеру его собственный публичный IP.

В этом и проблема: STUN-запрос идёт в обход VPN, потому что WebRTC использует прямые UDP-сокеты на сетевой адаптер, а не системный TCP-стек.

Как технически происходит утечка

  1. Сайт открывает WebRTC-соединение через JavaScript: new RTCPeerConnection()
  2. WebRTC отправляет STUN-запрос к серверу (например, stun.l.google.com)
  3. STUN-сервер отвечает: «твой публичный IP — 95.27.104.235» (это ваш реальный российский IP, потому что STUN-запрос пошёл по сетевому интерфейсу в обход VPN)
  4. WebRTC API передаёт этот IP-адрес JavaScript на странице
  5. JavaScript отправляет IP куда хочет — в аналитику, в фингерпринт, в logs

Всё это происходит за 100-300 миллисекунд при загрузке страницы. Без вашего ведома.

Как проверить WebRTC-утечку

Способ 1. browserleaks.com/webrtc

  1. Подключите VPN
  2. Откройте https://browserleaks.com/webrtc в режиме инкогнито (чтобы исключить расширения)
  3. Страница автоматически проведёт WebRTC-тест
  4. Посмотрите секцию «Public IP Address» — должен совпадать с IP VPN-сервера
  5. Также «Local IP Addresses» — желательно скрыть (видны 192.168.x.x — это норма)

Способ 2. ipleak.net

ipleak.net показывает все типы утечек на одной странице. WebRTC-секция в верхней части страницы, рядом с IPv4/IPv6.

Способ 3. whoer.net

whoer.net показывает «общий показатель приватности». WebRTC-leak снижает оценку. Удобно для общего понимания состояния защиты.

Что делать с WebRTC: 3 варианта

Вариант 1. Отключить WebRTC полностью

Самый радикальный способ. Минус: перестают работать видеозвонки в браузере (Google Meet, Discord web), некоторые игры, P2P-сайты.

Firefox

  1. В адресной строке: about:config
  2. Найдите: media.peerconnection.enabled
  3. Установите false

Chrome / Edge / Brave

В Chrome нет встроенного отключения WebRTC. Используйте расширение:

  • WebRTC Network Limiter (от Google) — официальное расширение, ограничивает WebRTC использовать только UDP-туннели VPN
  • WebRTC Leak Prevent — полностью отключает WebRTC
  • uBlock Origin — в настройках включите «Prevent WebRTC from leaking local IP addresses»

Safari

В Safari WebRTC встроен жёстко. Полное отключение через Терминал:

defaults write com.apple.Safari WebKitMediaStreamEnabled -bool NO

Вариант 2. Использовать TUN-режим VPN

Это лучший способ — оставить WebRTC работающим, но заставить его идти через VPN. В TUN-режиме VPN перехватывает ВСЕ сетевые пакеты, включая UDP STUN-запросы. WebRTC не видит ваш реальный IP, видит только VPN.

В Hiddify Next:

  • Settings → Tunnel Mode → TUN (вместо SOCKS/HTTP-proxy)
  • Auto-route: ON
  • Strict route: ON

После этого browserleaks.com покажет VPN-IP и в WebRTC, и в HTTP-заголовках. Утечки нет.

Вариант 3. Заблокировать STUN-серверы в hosts

Грубый, но работающий метод. Блокируем известные STUN-серверы на уровне системы. WebRTC не получит ответа, не сможет узнать публичный IP.

# Добавить в /etc/hosts (Linux/macOS) или C:\Windows\System32\drivers\etc\hosts (Windows) 0.0.0.0 stun.l.google.com 0.0.0.0 stun1.l.google.com 0.0.0.0 stun2.l.google.com 0.0.0.0 stun3.l.google.com 0.0.0.0 stun4.l.google.com 0.0.0.0 stun.cloudflare.com

Минус: блокирует и легитимный WebRTC. Видеозвонки сломаются.

Какой вариант выбрать

Какой вариант выбрать

ВариантЗащитаWebRTC работает?Сложность
TUN-режим VPNПолнаяДаНизкая (1 галочка)
Расширение в браузереТолько в этом браузереНетНизкая
about:config FirefoxТолько FirefoxНетСредняя
Блокировка hostsСистемнаяНетСредняя

Рекомендация: используйте TUN-режим VPN. Это закрывает WebRTC-leak без поломки функциональности браузера. С VPN RUS Client + Hiddify в TUN-режиме защита включается одной галочкой.

WebRTC и анонимность Tor

В Tor Browser WebRTC отключён по умолчанию — Tor разработчики понимают риск. Поэтому в Tor видеозвонки в браузере не работают, но это плата за анонимность.

Если вы используете Tor + VPN (Tor over VPN), WebRTC-утечки нет. Но и Tor работает без VPN.

WebRTC-fingerprint — отдельная угроза

Помимо IP, WebRTC раскрывает уникальный «отпечаток» вашего устройства:

  • Список ваших аудио/видео-устройств (микрофоны, камеры)
  • Поддерживаемые видеокодеки (H.264, VP8, VP9, AV1)
  • Network info: тип соединения, MTU, скорость

Эти параметры в комбинации создают уникальный fingerprint — даже если вы скроете IP, по WebRTC-параметрам вас можно идентифицировать. Полная защита: TUN-режим VPN + Brave/Tor browser с anti-fingerprinting.

Mobile приложения и WebRTC

В мобильных приложениях нет WebRTC API в стандартной реализации (это браузерная технология). Но есть аналогичные нативные API. iOS и Android приложения для видеозвонков (Telegram, WhatsApp) тоже могут «утекать» IP мимо VPN, если VPN работает в SOCKS-режиме.

В iOS Hiddify в TUN-режиме (по умолчанию) полностью защищает все приложения, включая мессенджеры.

FAQ про WebRTC-leak

Почему VPN не защищает от WebRTC-leak по умолчанию?

Зависит от режима VPN. В SOCKS5/HTTP-proxy режиме VPN перехватывает только TCP. В TUN-режиме (системный туннель) — всё. Большинство устаревших VPN-протоколов работали в SOCKS-режиме, отсюда уязвимость. Современные VPN с TUN-режимом (Hiddify, sing-box) защищают.

Можно ли проверить WebRTC через программу, а не браузер?

Программно — через Wireshark смотреть UDP-пакеты к STUN-серверам. Если они уходят на ваш реальный сетевой интерфейс — утечка. Если через VPN-интерфейс — нет утечки.

Brave Browser защищает от WebRTC-leak?

Brave имеет встроенную защиту. Brave Settings → Shields → Fingerprinting blocking → ставит маскировку WebRTC. По умолчанию включено в Strict-режиме.

Поломается ли Discord с отключенным WebRTC?

Web-версия Discord да — голос и видео не работают. Десктоп-приложение Discord нет — оно использует свой нативный код (тоже WebRTC, но не браузерный API). Для Discord на десктопе достаточно TUN-режима VPN.

Расширения «WebRTC Leak Shield» — безопасны?

Не все. Многие — спам-расширения с трекерами. Используйте только проверенные: WebRTC Network Limiter (от Google), uBlock Origin (есть galette), Privacy Badger (EFF). Эти точно безопасны.

Полный чеклист защиты

Чтобы быть точно защищённым:

  1. VPN включён в TUN-режиме
  2. Проверка browserleaks.com/webrtc — IP должен быть VPN-овский
  3. Проверка dnsleaktest.com — DNS в Cloudflare/Google, не у ISP
  4. uBlock Origin или Privacy Badger в браузере (опционально)
  5. В Firefox: media.peerconnection.enabled = false (если совсем параноите)
  6. Не использовать встроенный VPN в браузерах (Opera VPN, Yandex VPN) — они только для браузерного трафика, не системные

Заключение

WebRTC-leak — серьёзная уязвимость, которую большинство пользователей не замечают. VPN не защищает от неё автоматически — нужен правильный режим (TUN) и правильные настройки. Современные клиенты типа Hiddify Next делают это «из коробки», но проверять стоит — потратьте 30 секунд на browserleaks.com и убедитесь, что у вас всё в порядке.

С VPN RUS Client в TUN-режиме WebRTC-leak исключён. Это базовая часть защиты, которую мы обеспечиваем по умолчанию.

VPN с защитой от WebRTC-утечек

TUN-режим в Hiddify включён по умолчанию. WebRTC, DNS, IPv6 — всё через туннель.

Связанные статьи