Утечки WebRTC
Тест на утечку WebRTC: что звонок из браузера раскрывает о вашем IP-адресе
Раздел: Безопасна ли IP-телефония: что защищает звонок из браузера и что он раскрывает
Добавить callfrombrowser.org в предпочтительные источники Google
Коротко
Тест на утечку WebRTC показывает все IP-адреса, которые браузер через WebRTC передаёт веб-странице, и позволяет заметить тот, что вы собирались скрыть, — обычно адрес вашего интернет-провайдера при включённом VPN [1]. При звонке из браузера на телефонный номер ваш IP видит сервис звонков, а не тот, кому вы звоните: собеседник получает только Caller ID [2]. Этот тест — одна из проверок приватности и безопасности, которые я советую пройти, прежде чем звонить из браузера.
Главные факты
- Правила IETF для WebRTC указывают, что VPN с раздельным туннелированием (split tunnel) может позволить WebRTC узнать публичный адрес вашего провайдера наряду с адресом VPN [1]. Проверено .
- При моей локальной проверке в Chrome 156 страница без разрешения на микрофон видела мой компьютер только под случайным именем .local; когда я разрешил микрофон, она получила мой настоящий локальный адрес [3][1]. Проверено .
- Messenger сообщает, что при звонках один на один ваш IP-адрес передаётся устройству собеседника [4]; настройка WhatsApp «Защита IP-адреса в звонках» вместо этого пропускает звонки через его серверы [5]. Проверено .
Что такое утечка WebRTC?
Перед звонком по WebRTC браузер собирает возможные сетевые маршруты — так называемых ICE-кандидатов — и передаёт их веб-странице, чтобы та переслала их другой стороне. В каждом из них есть IP-адрес или, вместо скрытого локального адреса, случайное имя .local. Обычный сайт видит только публичный адрес, с которого пришёл запрос; через WebRTC страница может узнать больше [1]. Утечка — это любой адрес в этом списке, которым вы не собирались делиться.
Как проходит остальная часть звонка, я описал в разборе WebRTC, SIP и телефонная сеть; для утечек важен только список кандидатов. MDN отмечает, что их адреса всегда видны странице [6].
| Тип кандидата | Какой адрес показывает | Риск для приватности |
|---|---|---|
| host | Адрес устройства в локальной сети или случайное имя с окончанием .local, если браузер его скрывает [7][3] | Ниже, чем у публичного адреса, но IETF называет частные IPv4-адреса довольно значимым источником данных для цифрового отпечатка (фингерпринтинга) [1] |
| srflx (server reflexive) | Публичный адрес, который ваш роутер или VPN показывает STUN-серверу [7] | Высокий, если это адрес вашего провайдера при включённом VPN [1] |
| relay | Адрес на TURN-сервере, который пересылает медиапоток [7] | Низкий: другая сторона видит адрес ретранслятора, а не ваш [6]; оператор ретранслятора вас всё равно видит |
Случай с VPN IETF называет самым значимым, потому что некоторые пользуются VPN, чтобы оставаться анонимными [1]. Два других случая — ваш частный адрес и прокси, который проверки WebRTC обходят, раскрывая ваш настоящий публичный адрес [1].
Раскрывает ли звонок из браузера ваш IP-адрес?
Сервису звонков — да: любой сайт видит ваш публичный адрес [1], а звонок добавляет медиасоединение с серверами сервиса. Тому, кому вы звоните на городской или мобильный, — нет: звонок покидает интернет на шлюзе провайдера [8], а телефонная сеть передаёт номер звонящего, а не IP-адрес [2]. Звонки между приложениями могут соединять два устройства напрямую.
| Тип звонка | Сервис | Тот, кому вы звоните |
|---|---|---|
| Из браузера на телефонный номер (Google Voice, TwinPhone, Yolla) | Да: он обслуживает медиасоединение | Нет: собеседник видит Caller ID [2] |
| Бесплатные веб-сервисы для звонков (Call2Friends, Globfone) | Да: Call2Friends ограничивает бесплатные звонки по IP-адресу, а политика конфиденциальности Globfone относит IP-адреса к техническим данным и журналам, которые он обрабатывает [9][10] | Нет: собеседник видит Caller ID |
| Messenger, звонок один на один | Да | Да: Meta сообщает, что ваш IP передаётся другому устройству [4] |
| Да | Может видеть, если не включена «Защита IP-адреса в звонках»; групповые звонки всегда идут через ретранслятор [5] | |
| Telegram | Да | Может видеть: в анонсе Telegram 2017 года сказано, что звонки по возможности идут напрямую между устройствами (peer-to-peer) [11] |
При звонках на настоящие номера вопрос в том, что сервис узнаёт и хранит; что вместо IP видит собеседник, я разбираю в статье о том, какой номер определяется при звонке из браузера.
Как пройти тест на утечку WebRTC
Страница теста делает то же, что сервис звонков перед вызовом: открывает WebRTC-соединение, спрашивает у STUN-сервера, какой публичный адрес он видит, и выводит всех кандидатов рядом с адресом, который сама видит по обычному HTTP. Проведите тест в каждом браузере, из которого звоните, сначала с выключенным VPN, затем с включённым.
- VPN выключен: откройте страницу теста, например WebRTC Leak Test от BrowserLeaks. «Your Remote IP» вверху и «Public IP Address» в разделе «Your WebRTC IP» должны совпадать.
- VPN включён: перезагрузите страницу. В строке «Your Remote IP» теперь должен быть адрес VPN.
- Если в разделе WebRTC по-прежнему виден адрес вашего провайдера, WebRTC идёт в обход туннеля [1].
- Локальная запись с окончанием .local означает, что адрес скрыт [3]; открытый адрес, начинающийся с 192.168. или 10., — нет.
- Если страница предлагает проверку микрофона, разрешите доступ и проведите тест ещё раз: сервису звонков нужен доступ к микрофону, а это разрешение может открыть больше адресов [1]. Потом отзовите разрешение в настройках сайта [12].
Что изменилось в Chrome, когда я разрешил микрофон
я открыл локальную тестовую страницу в Chrome 156 на Mac без STUN-сервера, так что ни один адрес не ушёл на внешний сервер. Без разрешения на микрофон страница видела одного host-кандидата, названного случайной строкой с окончанием .local [3]. Когда я разрешил микрофон, она получила мой настоящий локальный IPv4-адрес.
Это соответствует стандарту, который разрешает выдавать полный список адресов только с согласия пользователя, например при разрешении на микрофон [1]; WebKit, движок Safari, описал то же правило в 2017 году [13]. Значит, сервис звонков, которому вы дали разрешение, может видеть ваш локальный адрес: это меньший риск, чем раскрытие публичного [1].
Настройки браузера, которые ограничивают утечки WebRTC
Brave описывает для пользователей настройку WebRTC IP. Google документирует средства управления Chrome для расширений и администраторов, а Microsoft описывает настройку Edge как политику для администраторов. Firefox по умолчанию скрывает локальные адреса и держит выключатель в about:config. Одно правило действует везде: отключение WebRTC останавливает и сервисы звонков в браузере, потому что звонок идёт через WebRTC [14].
| Браузер | Настройка | Что она меняет | Влияние на звонки из браузера |
|---|---|---|---|
| Brave | Политика обработки IP для WebRTC (WebRTC IP handling policy) в настройках приватности, согласно вики Brave (последняя правка в 2018 году) [15] | Значение Default Public Interface Only не раскрывает локальные адреса [15] | Медиапоток может переключиться на ретранслирующий сервер [1] |
| Chrome | Расширения могут задать политику обработки IP для WebRTC [16]; администраторы — политику WebRtcIPHandling [17] | В зависимости от значения браузер перестаёт использовать частные адреса или пускает медиапоток только через прокси [17] | Значения «только через прокси» могут перевести звук на TCP, что, по словам IETF, ухудшает качество [1] |
| Edge | Политика для администраторов WebRtcLocalhostIpHandling [18] | Два её значения прекращают раскрытие локального IP-адреса [18] | Как в Chrome |
| Firefox | Локальные адреса скрыты по умолчанию [19]; параметр media.peerconnection.enabled в about:config [20] | Значение false для этого параметра отключает WebRTC | Сервисы звонков в браузере перестают работать |
| Safari | Встроенное правило | Страницы без доступа к микрофону или камере не получают host-адреса, как описал WebKit в 2017 году [13] | Никакого |
Что VPN меняет для звонков из браузера
VPN, который пускает через туннель весь трафик, включая WebRTC, показывает сервису звонков адрес VPN вместо вашего. VPN с раздельным туннелированием может позволить WebRTC найти и адрес вашего провайдера [1], поэтому тест на утечку проводят с включённым VPN. Есть у VPN и побочные эффекты для звонков.
- Некоторые сервисы ограничивают VPN: в условиях TextNow сказано, что он может ограничивать их использование [21].
- Некоторые бесплатные сервисы звонков распределяют бесплатные звонки по IP-адресам, как Call2Friends [9], поэтому через VPN вы можете делить этот лимит с другими пользователями того же выходного адреса.
- Если принудительно пустить медиапоток через прокси, который не передаёт UDP, звук перейдёт на TCP, а это, по словам IETF, ухудшает качество [1].
- Сервис всё равно видит ваш аккаунт и историю звонков; Google, например, может записывать номера, время и длительность звонков [22].
Как сохранить IP-адрес в тайне при звонках
Подбирайте решение под тип звонка. При звонках на телефонные номера ваш IP не получает тот, кому вы звоните, поэтому выберите сервис, которому готовы его доверить, и проверьте VPN. При звонках между приложениями устройство собеседника может подключиться к вашему напрямую, поэтому включите ретрансляцию в приложении, если такая настройка есть.
- Звонки из браузера: проведите тест на утечку с включённым VPN; в Brave выберите Default Public Interface Only [15].
- Микрофон: сервисам звонков, которыми пользуетесь один раз, давайте доступ кнопкой «Разрешить в этот раз» [12]; при моей проверке в Chrome страница с этим разрешением могла видеть локальный адрес.
- WhatsApp: включите «Защиту IP-адреса в звонках». Справочная страница описывает Android, iOS и Mac, но не веб-версию, и предупреждает, что качество звонков через ретранслятор может немного снизиться [5].
Частые вопросы
Что такое тест на утечку WebRTC?
Это веб-страница, которая выполняет ту же настройку соединения, что и звонок из браузера, и выводит все IP-адреса, которые предлагает ваш браузер, рядом с адресом, который страница видит по обычному HTTP. Если при включённом VPN в этом списке есть адрес вашего провайдера, WebRTC идёт в обход туннеля [1]; случайное имя .local означает, что ваш локальный адрес скрыт [3].
Видит ли мой IP-адрес тот, кому я звоню из браузера?
Нет, если вы звоните на городской или мобильный. Провайдер превращает звук из браузера в телефонный звонок на своём шлюзе [23], а телефонная сеть передаёт номер звонящего, а не IP-адрес [2]. Со звонками между приложениями всё иначе: Messenger сообщает, что при звонках один на один ваш IP передаётся устройству собеседника [4].
Защищает ли VPN от утечек WebRTC?
Защищает, если пускает весь трафик, включая WebRTC, через свой туннель. VPN с раздельным туннелированием может не защитить, потому что WebRTC способен узнать публичный адрес провайдера наряду с адресом VPN [1]. Узнать наверняка можно только тестом на утечку с подключённым VPN в каждом браузере, которым вы пользуетесь, и повторять его стоит после обновлений.
Опасна ли утечка локального IP-адреса?
Менее опасна, чем утечка публичного. Частный адрес вроде 192.168.1.20 не говорит, где вы находитесь, но IETF называет частные IPv4-адреса довольно значимым источником данных для цифрового отпечатка, который позволяет связать обычный сеанс и сеанс в приватном режиме на одном устройстве [1]. Firefox по умолчанию скрывает локальные адреса [19], Safari скрывает их от страниц без доступа к микрофону или камере [13], и так же вёл себя Chrome при моей проверке.
Защищает ли режим инкогнито от утечек WebRTC?
Нет. IETF отмечает, что частный адрес, раскрытый через WebRTC, может служить идентификатором, по которому сайт поймёт, что обычное окно и окно в приватном режиме открыты на одном устройстве [1], так что сам по себе приватный режим его не скрывает. Воспользуйтесь описанными выше настройками браузера, а затем проведите тест на утечку и в приватном окне.
Работают ли расширения против утечек WebRTC?
Отчасти. В Chrome расширение может задать политику обработки IP для WebRTC, которую Google описывает как компромисс между производительностью медиапотока и тем, сколько информации о локальных адресах раскрывается [16]. В зависимости от значения она скрывает локальные адреса или пускает медиапоток через прокси, из-за чего звук может перейти на TCP, а качество — снизиться [1]. После установки расширения проведите тест на утечку, чтобы убедиться, что изменение сработало.
Как отключить WebRTC в Firefox?
Введите about:config в адресной строке, найдите media.peerconnection.enabled и установите значение false. В исходном коде Mozilla этот параметр описан как выключатель RTCPeerConnection, а его отключение заодно лишает страницы доступа к API микрофона [20]. После этого перестают работать все сервисы звонков в браузере, поэтому большинству лучше оставить настройки Firefox по умолчанию, которые и так скрывают локальные адреса [19].
Как остановить утечку WebRTC в Chrome?
Через расширение или политику, потому что Google документирует управление адресами WebRTC в Chrome именно для этих двух способов. Расширение может задать политику обработки IP-адресов WebRTC [16], а администратор — политику WebRtcIPHandling, значение default_public_interface_only которой не даёт WebRTC использовать частные адреса [17]. Когда я проверял Chrome, страница без доступа к микрофону и так видела только случайное имя .local [3]. За VPN настоящее решение — туннель, через который идёт весь трафик [1]. Всё, что полностью блокирует WebRTC, отключает и звонки из браузера [14].
Может ли сайт без спроса увидеть мой IP через WebRTC?
Публичный адрес — да, но сайты и так его видят: Safari, например, даёт страницам без доступа к микрофону только те адреса, которые сайт и так мог бы узнать [13]. Подвох — в прокси браузера. Если разрешен прямой выход в интернет, проверки STUN в WebRTC могут обойти прокси и раскрыть ваш реальный публичный адрес [1]. Локальные адреса защищены лучше: стандарт открывает полный список только с согласия, например после разрешения на микрофон [1], и когда я проверял Chrome, страница без этого разрешения видела только случайное имя .local [3].
Спросите ИИ об этом исследовании
Каждая кнопка открывает ассистента в новой вкладке и просит его кратко пересказать эту страницу со ссылкой на неё как на источник.
Источники
- RFC 8828: WebRTC IP Address Handling Requirements · IETF (RFC Editor) · проверено 1 ноября 2026 г.
- 47 CFR 64.1601 -- Delivery requirements and privacy restrictions | eCFR · US Code of Federal Regulations (eCFR) · проверено 1 ноября 2026 г.
- Using Multicast DNS to protect privacy when exposing ICE candidates (draft-ietf-mmusic-mdns-ice-candidates) · IETF (Internet-Draft, work in progress) · проверено 1 ноября 2026 г.
- Voice call someone or a group on Messenger - Messenger Help Center (Computer) · проверено 1 ноября 2026 г.
- How to protect your IP address on WhatsApp calls | WhatsApp Help Center · WhatsApp · проверено 1 ноября 2026 г.
- RTCIceCandidate: address property - Web APIs | MDN · MDN Web Docs (Mozilla) · проверено 1 ноября 2026 г.
- RTCIceCandidate: type property - Web APIs | MDN · MDN Web Docs (Mozilla) · проверено 1 ноября 2026 г.
- Make calls | Sonetel help · проверено 1 ноября 2026 г.
- Free call | Call2Friends - Online call · проверено 1 ноября 2026 г.
- Privacy Policy | Globfone · проверено 1 ноября 2026 г.
- Voice Calls: Secure, Crystal-Clear, AI-Powered | Telegram Blog (30 March 2017) · Telegram · проверено 1 ноября 2026 г.
- Use your camera and microphone in Chrome - Computer - Google Chrome Help · Google · проверено 1 ноября 2026 г.
- A Closer Look Into WebRTC | WebKit (3 July 2017) · WebKit (Apple) · проверено 1 ноября 2026 г.
- WebRTC API - Web APIs | MDN · MDN Web Docs (Mozilla) · проверено 1 ноября 2026 г.
- WebRTC Custom Settings · brave/brave-browser Wiki · Brave Software (official GitHub wiki) · проверено 1 ноября 2026 г.
- chrome.privacy | API | Chrome for Developers · Google (Chrome for Developers) · проверено 1 ноября 2026 г.
- Chrome Enterprise policy list: WebRtcIPHandling (WebRTC IP handling) · Google (Chrome Enterprise) · проверено 1 ноября 2026 г.
- Microsoft Edge Browser Policy Documentation WebRtcLocalhostIpHandling | Microsoft Learn · Microsoft · проверено 1 ноября 2026 г.
- Firefox source: modules/libpref/init/all.js (mozilla-firefox/firefox) · Mozilla (official Firefox source repository) · проверено 1 ноября 2026 г.
- Firefox source: modules/libpref/init/StaticPrefList.yaml (mozilla-firefox/firefox) · Mozilla (official Firefox source repository) · проверено 1 ноября 2026 г.
- Terms of Use – TextNow · проверено 1 ноября 2026 г.
- Privacy Policy – Privacy & Terms – Google · Google · проверено 1 ноября 2026 г.
- Call From Your Browser Without a SIM Card - TwinPhone · проверено 1 ноября 2026 г.