WebRTC і DNS: чому одного проксі мало

WebRTC і DNS: чому одного проксі мало

27.05.2026

Проксі приховує реальну IP-адресу для HTTP/HTTPS-трафіку браузера. Але в браузера є й інші «способи» показати свій реальний IP. Два з них варто перевіряти окремо: WebRTC і DNS.

WebRTC і DNS — це нормальні частини браузера та мережі. Проблема починається тоді, коли мережеві перевірки показують неузгодженість: сайт відкритий через проксі, але WebRTC або DNS leak-тест указує на інший маршрут.

WebRTC: навіщо він узагалі потрібен

WebRTC використовується для peer-to-peer аудіо- і відеодзвінків, демонстрації екрана та передачі даних між браузерами. Щоб знайти робочий шлях між двома сторонами, WebRTC використовує ICE. MDN описує ICE-кандидати як варіанти мережевого з’єднання, через які клієнти можуть спілкуватися напряму або через проміжний сервер: WebRTC connectivity. Сам ICE описаний у RFC 8445.

Саме тут з’являється ризик деанонімізації. RFC 8828 прямо каже, що WebRTC може розкривати вебзастосунку більше інформації про локальну мережу, ніж звичайний HTTP-запит. У документі перелічені зрозумілі випадки: додаткові публічні IP за наявності кількох мережевих інтерфейсів, приватні адреси за NAT і обхід класичного application proxy через STUN, якщо прямий доступ до інтернету дозволений.

Простіше кажучи: якщо звичайна сторінка бачить лише IP проксі, то WebRTC за поганої конфігурації може показати реальну IP-адресу.

Як виглядає WebRTC-витік

Сценарій такий: HTTP-трафік іде через проксі, але WebRTC збирає ICE-кандидати іншим маршрутом.

У дослідженні One Leak Will Sink A Ship автор перевіряв браузери та VPN-сервіси і показав, що WebRTC API міг робити IP-адреси доступними для сайту через JavaScript навіть за ввімкненого VPN. Дослідження старе, тому його не варто читати як точний опис усіх сучасних браузерів. Але воно добре пояснює сам клас проблеми: WebRTC живе не зовсім у тому самому шарі, що й звичайний запит сторінки.

Чому не завжди варто просто вимикати WebRTC

Повністю вимкнути WebRTC — найгрубіший варіант. Іноді він підходить, але має свою ціну: ламаються дзвінки, screen sharing, data channels і будь-які перевірки, де сервіс очікує, що WebRTC API працює.

Навіть Chrome не зводить це питання до «увімкнути/вимкнути». У Chrome є політика webRTCIPHandlingPolicy, яка керує тим, як маршрутизується WebRTC-трафік і скільки локальної адресної інформації розкривається сайтам. У документації Chrome Extensions перелічені режими, зокрема disable_non_proxied_udp: chrome.privacy API. У Chrome Enterprise також є окрема політика для WebRTC IP handling: Chrome Enterprise policy.

Висновок простий: нормальна ціль — не зламати WebRTC, а зробити так, щоб він не показував маршрут, який суперечить профілю.

DNS: де може з’явитися нестикування

DNS перетворює доменне ім’я на IP-адресу. Cloudflare коротко пояснює це так: DNS переводить зрозумілі людині домени на кшталт example.com в IP-адреси, з якими працюють машини: What is DNS?.

DNS-витік — це ситуація, коли основний трафік іде через VPN або проксі, а DNS-запити йдуть іншим маршрутом. Mozilla пояснює це на прикладі VPN: DNS-запити можуть виходити за межі захищеного тунелю, якщо VPN налаштований неправильно або не маршрутизує DNS через власну мережу: What is a DNS Leak?.

Із проксі працює та сама логіка: важливо, де саме резолвиться домен. У документації curl добре видно різницю між локальним і віддаленим DNS. socks5:// означає SOCKS5 із локальним резолвом імені, а socks5h:// — SOCKS5 із резолвом імені на стороні проксі: everything curl: Proxies.

Тут важливо бути точними: звичайний сайт не завжди напряму бачить ваш DNS-резолвер. Тому некоректно писати, що «будь-який сайт одразу дізнається ваш DNS». Правильніше сказати так: DNS-витік показує, що мережевий маршрут налаштований не повністю. Це можна зловити через DNS leak-тести, власну інфраструктуру або системи, які контролюють свої домени й мережеві логи.

Що ми перевіряємо в 0detect

Для нас WebRTC і DNS — це частина єдиного мережевого профілю. Якщо профіль працює через проксі, решта мережевих параметрів має бути узгоджена з ним і не створювати конфліктів.

У нашій документації зі створення профілю мережеві налаштування винесені в окремий блок “Соединение”: до профілю можна прикріпити проксі, вибрати проксі зі списку й налаштувати DNS. Для DNS є режим “Настоящий”: якщо профіль працює через проксі, DNS береться відповідно до цього проксі; якщо проксі немає, використовується ваша адреса; за потреби DNS можна вказати вручну: Створення профілю.

У тих самих загальних налаштуваннях профілю є мова, часовий пояс і геолокація. За документацією ці параметри за замовчуванням підбираються з урахуванням зовнішнього IP. Це не прямо про WebRTC, але про ту саму ідею: IP, DNS, часовий пояс, мова й геолокація мають складатися в одну цілісну історію.

Для автоматизації порядок теж важливий. У Local API проксі створюється окремо, прив’язується до профілю через POST /profile/set/proxy, і лише після цього профіль запускається: Робота з proxy. Це зменшує ризик ситуації, коли скрипт уже відкрив браузер, а мережевий профіль ще не відповідає налаштуванням профілю.

Коротко

WebRTC може розкривати більше мережевої інформації, ніж звичайний HTTP-запит. DNS може йти не тим маршрутом, якщо резолв налаштований локально або минає проксі.
Хороший профіль — це не «проксі поверх браузера». Це браузер, у якого мережеві налаштування, відбиток і географія не суперечать одне одному.

Нещодавні статті

Чому однакові антидетект-профілі дають різні результати при масштабуванні
Чому однакові антидетект-профілі дають різні результати при масштабуванні
Є ситуація, через яку проходять майже всі команди, що працюють з мультиакаунтингом. Налаштовуєш профілі, тестуєш на невеликому обсязі — все працює стабільно. Масштабуєш: береш той самий шаблон, запускаєш сотню акаунтів — і результати починають розходитися. Одні профілі працюють без проблем, інші отримують додаткові перевірки або йдуть у блок. В інтерфейсі антидетект-браузера всі налаштування виглядають однаково. […]
27.05.2026
Headless Chrome в автоматизації: що насправді видає бота
Headless Chrome в автоматизації: що насправді видає бота
Headless Chrome сам по собі не є «поганим». Це нормальний режим Chrome без видимого вікна. Його використовують для тестів, генерації PDF, скриншотів, моніторингу та внутрішньої автоматизації. Проблеми починаються в іншому місці: коли браузер у режимі headless намагаються видати за звичайного користувача на сайті з антифродом. Тоді сайт дивиться не на один параметр, а на всю […]
27.05.2026
Canvas і WebGL: чому «додати шум» часто недостатньо
Canvas і WebGL: чому «додати шум» часто недостатньо
Canvas і WebGL часто подають як просту кнопку в антидетект-браузері: увімкнув шум, отримав новий відбиток і пішов працювати. Насправді все складніше. Сайти використовують відбитки Canvas і WebGL тому, що вони відображають не лише особливості браузера, а й увесь процес формування зображення системою: від відеокарти й драйверів до ОС, шрифтів і параметрів рендерингу. Саме ця комбінація […]
27.05.2026

Зробіть свою роботу швидкою та безпечною з 0DETECT Browser

Хочете бути в курсі всіх новин, знижок, акцій? Підпишіться на нашу розсилку та отримуйте актуальну інформацію першими
Слідкуйте за нами в соціальних мережах
Дослідити браузер 0DETECT