Утечка WebRTC: как браузер может выдать ваш настоящий IP
Как WebRTC в браузере может раскрыть ваш реальный IP-адрес несмотря на VPN, как проверить это тестом Colitu и как безопасно закрыть эту лазейку.
Вы включили VPN, сайт показывает страну сервера, всё выглядит правильно. И всё же одна функция браузера может передать сайту ваш настоящий IP-адрес — это WebRTC. Она затрагивает не каждую конфигурацию, проверяется за минуту, а если понять, как она устроена, легко исправляется.
Что такое WebRTC
WebRTC — технология, на которой работают видеозвонки, демонстрация экрана и передача файлов прямо в браузере, без плагинов. Чтобы соединить двух людей как можно напрямую, браузер собирает возможные сетевые пути — так называемых ICE-кандидатов:
- host — собственные локальные адреса устройства;
- server-reflexive — ваш публичный адрес, каким его видит интернет; браузер узнаёт его, обращаясь к STUN-серверу;
- relay — адрес на ретрансляционном TURN-сервере, если прямой путь не работает.
Веб-страница может запустить этот процесс несколькими строками JavaScript, а для базового канала данных браузер разрешения не спрашивает.
Как возникает утечка
STUN-запрос — это небольшой UDP-пакет. Пойдёт ли он через VPN, зависит от того, как VPN подключён к системе:
- VPN на всё устройство (TUN или системная VPN-служба). Весь трафик, включая UDP, попадает в туннель. STUN-сервер видит адрес VPN-сервера, и именно его узнаёт страница. Утечки нет.
- Только прокси. Браузер отправляет веб-страницы через прокси, но UDP-запрос WebRTC может уйти напрямую. Тогда STUN-сервер видит ваш реальный публичный адрес, и страница может его прочитать.
Так что утечка — не ошибка WebRTC: браузер честно сообщает, каким путём идёт его UDP-трафик.
Что утечкой не является
Современные браузеры прячут ваш адрес в локальной сети за случайным именем, оканчивающимся на .local (mDNS-имя). Если тест показывает такое имя, это нормально и безопасно. Частные адреса вроде 192.168.x.x тоже не идентифицируют вас в интернете, хотя браузеры, заботящиеся о приватности, стараются скрывать и их.
Проверка с Colitu
Наш тест утечки WebRTC просит браузер собрать кандидатов через публичный STUN-сервер Cloudflare (stun.cloudflare.com) и сравнивает найденные адреса с тем, который видят сайты. Результат оценивается только в вашем браузере.
- Выключите VPN и запустите тест. Запомните публичный адрес — это ваш настоящий.
- Включите VPN, дождитесь статуса «Подключено» и перезагрузите страницу теста.
- Сравните. Каждый публичный адрес, который находит WebRTC, теперь должен быть адресом сервера — тем же, что видят сайты.
- Если ваш настоящий адрес из шага 1 всё ещё виден, WebRTC протекает.
Чтобы проверить IP, DNS и WebRTC сразу, воспользуйтесь проверкой VPN-соединения. Про DNS отдельно — в статье утечка DNS.
Как это исправить
Windows: включите режим TUN. Colitu для Windows по умолчанию работает в режиме системного прокси. В режиме TUN весь трафик, включая UDP, идёт через туннель, и WebRTC видит адрес сервера. Включите его в настройках приложения и повторите тест.
Android и iOS. Там Colitu работает как VPN для всего устройства (VPN-служба Android, packet tunnel в iOS), поэтому трафик WebRTC тоже идёт через туннель.
Linux (бета). Как и на Windows, используйте режим TUN; он запрашивает sudo.
Настройки браузера — если нужен дополнительный уровень защиты или режим TUN недоступен:
- Firefox: откройте
about:configи установитеmedia.peerconnection.enabledв значение false — WebRTC отключится полностью. - Браузеры на Chromium: простого встроенного переключателя нет; расширения, ограничивающие сетевое поведение WebRTC, могут сократить список раскрываемых адресов.
Помните: отключённый WebRTC ломает видеозвонки в браузере, например веб-версии сервисов для встреч. В режиме TUN обычно ничем жертвовать не приходится.
Два частых вопроса
Утечка значит, что мой трафик не зашифрован? Нет. Сёрфинг по-прежнему идёт через туннель. Утечка WebRTC раскрывает ваш IP-адрес странице, которая его запросила, — это важно, если вы пользуетесь VPN, чтобы сайты не определяли ваше местоположение.
Приложения тоже так протекают? Тест проверяет браузер. Десктопные приложения для звонков используют собственный сетевой стек; в режиме системного прокси на Windows некоторые из них могут вообще идти мимо VPN, и это тоже решает режим TUN.
Сделайте проверку привычкой
Утечки обычно возвращаются, когда что-то меняется. Повторяйте тест после того, как вы:
- переключили Colitu на Windows между режимом системного прокси и TUN;
- установили новый браузер или расширение для приватности либо «VPN-расширение»;
- поставили другой VPN, «защищённое соединение» антивируса или игровой «ускоритель»;
- обновили операционную систему или перешли на новый компьютер.
Шпаргалка
| Что показывает тест при включённом VPN | Что это значит | Что делать |
|---|---|---|
| Только адрес сервера | Утечки нет | Ничего |
| Имя на .local | Скрытый локальный адрес | Ничего |
| Ваш реальный публичный адрес | Утечка WebRTC | Режим TUN на Windows или Linux |
| Ваш реальный адрес на телефоне | Нетипично | Переподключиться, закрыть другие VPN, написать в поддержку |
Подробнее в справочном центре: проверки подключения и руководство по Windows.