Тест витоку 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; при VPN це означає, що пакети пішли в обхід захищеного тунелю.
- Витоків немає — обидві адреси повністю збігаються.
- Локальний IP розкрито — замість замаскованого імені mDNS відобразилася відкрита адреса LAN.
- Захищено — локальну адресу надійно приховано випадковим іменем вузла
.local. - Немає публічного IP / WebRTC заблоковано — сервери STUN недосяжні або протокол WebRTC вимкнено у браузері.
Чому WebRTC може видати IP-адресу, яку приховує VPN
Технологію WebRTC створено для забезпечення відеозв'язку, передачі голосу та обміну файлами безпосередньо між браузерами. Щоб з'єднати два пристрої за різними маршрутизаторами, необхідний обхід NAT, а для цього потрібна відповідь ззовні: з якої адреси надходить підключення? Сервер STUN надає таку відповідь, і будь-який сайт може ініціювати цей процес у фоновому режимі через JavaScript.
Це спричиняє проблему, коли ви прагнете приховати власну мережеву адресу. VPN спрямовує веб-трафік HTTP через захищений тунель, але WebRTC відправляє власні пакети UDP до STUN, які за умов роздільного тунелювання (split-tunneling) йдуть звичайним маршрутом провайдера. 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.
Як усунути витік WebRTC у Chrome та Edge
У жодному з цих браузерів немає звичайного вимикача в налаштуваннях, а параметри в chrome://flags чи edge://flags більше не вимикають WebRTC. На практиці ефективні три варіанти:
- Використовуйте повноцінний системний VPN-клієнт (Full-Tunnel) замість розширення для браузера. Якщо всі пакети UDP проходять через тунель, STUN зафіксує лише адресу сервера VPN.
- Налаштуйте правила обробки IP за допомогою розширення. Додатки на зразок WebRTC Leak Prevent змінюють параметр
chrome.privacy.network.webRTCIPHandlingPolicyнаdefault_public_interface_onlyабоdisable_non_proxied_udp, блокуючи розкриття локальних IP. - Застосуйте системні групові політики. Задайте політику
WebRtcIPHandlingдля Chrome абоWebRtcLocalhostIpHandlingу гілціSOFTWARE\Policies\Microsoft\Edgeзі значеннямAllowPublicInterfaceOnlyчиDisableNonProxiedUdp. Знадобиться перезапуск браузера; стан перевіряйте наedge://policy.
Як повністю вимкнути WebRTC у Firefox
Firefox залишається єдиним популярним десктопним браузером зі справжнім вимикачем. Введіть about:config в адресному рядку, підтвердьте застереження, знайдіть параметр media.peerconnection.enabled та двічі клікніть, встановивши значення false. WebRTC вимкнеться для всіх сайтів без перезапуску браузера, а наш тест зафіксує протокол як заблокований.
Це радикальне рішення: веб-сервіси на зразок 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), але може переривати прямі дзвінки.
Нюанси для Safari, iPhone та пристроїв на Android
На мобільних пристроях та з рушієм WebKit типові поради для комп'ютерів часто втрачають чинність.
Safari на macOS
В актуальних версіях Safari немає постійного глобального вимикача. Налаштування в меню розробника діють лише протягом відкритої сесії. Оскільки Safari маскує локальні адреси за 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 приховує адреси LAN за mDNS, найкраще керувати дозволами у Safari > Параметри > Веб-сайти та запускати системний VPN.
Які налаштування найкраще захищають від витоків WebRTC у Brave?
У brave://settings/privacy встановіть параметр WebRTC IP handling policy на «Disable Non-Proxied UDP» під час використання VPN чи проксі. WebRTC спрямовуватиме трафік через TCP по проксі, і STUN не побачить вашу IP-адресу. Режим «Default Public Interface Only» є м'якшим варіантом, за якого дзвінки продовжують працювати.
Яку політику обробки IP у WebRTC варто вибрати?
Режим «Default Public Interface Only» підходить переважній більшості: він приховує локальні адаптери, залишає підтримку UDP та забезпечує стабільні відеодзвінки. Режим «Disable Non-Proxied UDP» обирайте лише за підвищених вимог до приватності під проксі чи VPN. Стандартні режими продовжують розкривати локальні адреси.
Чому моя приватна IP-адреса стає публічною через WebRTC?
У сучасних браузерах це більше не відбувається відкрито. Chrome, Edge, Brave, Firefox та Safari замінюють реальну адресу LAN тимчасовим ім'ям mDNS із закінченням .local. Веб-сторінки отримують це ім'я замість адреси на зразок 192.168.1.14. Якщо в тесті видно відкриту адресу мережі LAN, вбудований захист mDNS вимкнено.