Test wycieku WebRTC: czy Twój VPN ujawnia prawdziwy adres IP?
Ten test wycieku WebRTC wykorzystuje dokładnie ten sam mechanizm połączeń bezpośrednich (peer-to-peer), z którego korzystają skrypty śledzące, i sprawdza, czy którykolwiek zebrany adres to ten, który Twój VPN powinien ukrywać. Otwiera połączenie RTCPeerConnection z pustym kanałem danych — bez kamery, mikrofonu i zapytań o uprawnienia —, odpytuje dwa publiczne serwery STUN o Twój adres widziany z zewnątrz i zestawia wynik z adresem IP, z którego docierają Twoje zapytania HTTPS.
Jak interpretować kandydatów ICE prezentowanych w teście
Protokół WebRTC musi wykryć wszystkie możliwe adresy, pod którymi inny użytkownik mógłby nawiązać z Tobą połączenie, generując listę kandydatów ICE. Na tej stronie wyświetlana jest pełna surowa lista z typem i protokołem transportowym, a zbieranie danych zatrzymuje się po pięciu sekundach.
Powyżej widoczne są Twoje standardowe adresy IPv4 i IPv6 wykryte przez protokół HTTP — identyczne z tymi, które podaje strona jaki jest mój adres IP. Stanowią one punkt odniesienia; werdykt to bezpośrednie porównanie obu źródeł.
host, srflx oraz relay — co oznaczają oznaczenia
- Lokalny (host) — adres Twojej własnej karty sieciowej: IP w sieci LAN jak
192.168.1.14lub losowa nazwa.local. - Publiczny (przez STUN) — kandydat
srflx, czyli adres zarejestrowany przez serwer STUN po odebraniu pakietu. Kluczowy parametr przy włączonym VPN. - Relay (TURN) — ruch przekazywany przez serwer pośredniczący; test korzysta wyłącznie ze STUN, więc wiersz relay pojawia się rzadko.
Znaczenie poszczególnych werdyktów
- Wykryto wyciek — publiczny kandydat STUN różni się od Twojego adresu HTTP; w sieci VPN oznacza to, że pakiety ominęły zaszyfrowany tunel.
- Brak wycieku — oba adresy są identyczne.
- Lokalny IP ujawniony — wyświetlił się surowy adres lokalny zamiast nazwy mDNS.
- Chroniony — Twój adres lokalny został zamaskowany losową nazwą hosta
.local. - Brak publicznego IP / WebRTC zablokowane — serwery STUN były nieosiągalne lub WebRTC wyłączono w przeglądarce.
Dlaczego WebRTC ujawnia adres IP ukrywany przez VPN
WebRTC stworzono w celu umożliwienia bezpośrednich wideorozmów, połączeń głosowych i wymiany plików pomiędzy przeglądarkami. Połączenie dwóch urządzeń za osobnymi routerami wymaga mechanizmu NAT traversal, a do tego potrzebna jest odpowiedź z zewnątrz: z jakiego adresu pochodzi to połączenie? Serwer STUN udziela tej odpowiedzi, a każda strona www może zainicjować tę wymianę w tle za pomocą JavaScriptu.
Zaczyna to stanowić problem, gdy chcesz ukryć swój prawdziwy adres. VPN kieruje zwykły ruch HTTP przez swój tunel, lecz WebRTC wysyła własne pakiety UDP do STUN, które przy dzielonym tunelowaniu (split-tunneling) idą domyślną trasą dostawcy internetu. Rozszerzenia VPN do przeglądarek to klasyczny przykład: pośredniczą one w żądaniach stron, lecz nie tunelują stosu UDP systemu — dlatego wynik może być sprzeczny z tym, co wskazuje test VPN wykonany przez HTTP.
Losowa nazwa hosta .local to nie wyciek danych
Jeśli kandydat typu host ma postać 7b3f9c21-4d0a-48e7.local zamiast 192.168.1.14, wszystko działa prawidłowo. To mechanizm zaciemniania mDNS: przeglądarka tworzy tymczasową nazwę multicast DNS dla lokalnego interfejsu i przekazuje ją zamiast realnego adresu LAN. Chrome, Edge, Brave, Firefox i Safari stosują to domyślnie — uBlock Origin usunął własną opcję WebRTC w wersji 1.38, bo przeglądarki przejęły tę ochronę. Pamiętaj jednak: chroni to wyłącznie adres lokalny (nie zapobiega wyciekowi publicznego IP przez VPN), a strona z uprawnieniami do kamery lub mikrofonu i tak otrzyma prawdziwy adres lokalny.
Jak naprawić wyciek WebRTC w Chrome i Edge
Żadna z tych przeglądarek nie ma prostego wyłącznika w ustawieniach, a opcje w chrome://flags i edge://flags już nie wyłączają WebRTC. W praktyce działają trzy metody:
- Używaj pełnego klienta VPN w systemie (Full-Tunnel) zamiast wtyczki do przeglądarki. Gdy każdy pakiet UDP trafia do tunelu, STUN widzi wyłącznie adres serwera VPN.
- Zmień zasady obsługi IP za pomocą rozszerzenia. Narzędzia takie jak WebRTC Leak Prevent przełączają parametr
chrome.privacy.network.webRTCIPHandlingPolicynadefault_public_interface_onlylubdisable_non_proxied_udp, co skutecznie blokuje ekspozycję lokalną. - Wdróż reguły zasad grupy (GPO). Skonfiguruj
WebRtcIPHandlingdla Chrome lubWebRtcLocalhostIpHandlingpod kluczemSOFTWARE\Policies\Microsoft\Edgez wartościamiAllowPublicInterfaceOnlylubDisableNonProxiedUdp. Wymaga to restartu; stan sprawdzisz naedge://policy.
Jak całkowicie wyłączyć WebRTC w Firefoksie
Firefox jest jedyną popularną przeglądarką komputerową z bezpośrednim wyłącznikiem. Wpisz about:config w pasku adresu, zaakceptuj ostrzeżenie, wyszukaj media.peerconnection.enabled i kliknij dwukrotnie, aby zmienić wartość na false. WebRTC zostanie wyłączone dla wszystkich stron bez konieczności restartu, a nasz test zaraportuje protokół jako zablokowany.
To krok radykalny: aplikacje webowe takie jak Meet, Teams, Discord czy Zoom przestaną łączyć rozmowy. Aby zachować możliwość dzwonienia, pozostaw tę opcję włączoną i ustaw zamiast tego media.peerconnection.ice.default_address_only na true — Firefox przekaże wtedy tylko adres trasy domyślnej (czyli z tunelu VPN).
Jak zablokować wyciek WebRTC w przeglądarce Brave
Brave udostępnia bezpośrednio opcje, które Chrome ukrywa. Przejdź do brave://settings/privacy i znajdź WebRTC IP handling policy. Korzystając z VPN lub proxy, warto wybrać jedną z dwóch wartości:
- Default — może skanować wszystkie interfejsy i ujawniać adresy lokalne.
- Default Public and Private Interfaces — trasa domyślna, ale nadal ujawnia powiązany adres prywatny.
- Default Public Interface Only — tylko trasa domyślna, brak adresów lokalnych, połączenia działają. To optymalny wybór na co dzień.
- Disable Non-Proxied UDP — wymusza TCP przez proxy, o ile proxy nie obsługuje UDP. Najbardziej rygorystyczny tryb (używany w oknach Tor), lecz może zrywać połączenia p2p.
Specyfika Safari, iPhone'a i urządzeń z Androidem
Na urządzeniach mobilnych oraz w silniku WebKit ogólne porady z komputerów stacjonarnych często przestają działać.
Safari na systemie macOS
Współczesne Safari nie posiada trwałego, globalnego wyłącznika. Opcje w menu programisty resetują się wraz z zamknięciem sesji. Ponieważ Safari domyślnie ukrywa adresy lokalne za mDNS do momentu przyznania dostępu do kamery lub mikrofonu, najlepszą ochronę daje kontrola uprawnień w Safari > Ustawienia > Witryny oraz systemowy VPN.
iPhone oraz iPad
Wszystkie przeglądarki na iOS bazują na silniku WebKit. Chrome i Firefox na iPhone nie posiadają about:config ani rozszerzeń; blokery treści nie potrafią filtrować WebRTC. Aby zapobiec wyciekowi na iOS, używaj profilu VPN w Ustawienia > VPN tunelującego cały ruch UDP i ponów test w Safari.
Android
Chrome na Androida nie posiada flag ani rozszerzeń dla WebRTC. Brave na Androida udostępnia te same zasady obsługi IP w ustawieniach prywatności. W Firefoksie na Androida about:config jest dostępne tylko w wersjach Beta i Nightly. Najpewniejszym rozwiązaniem systemowym jest włączenie opcji Zawsze włączony VPN wraz z Blokuj połączenia bez VPN.
Czego ten test wycieku nie jest w stanie wykryć
Ta strona rejestruje wyłącznie to, co przeglądarka przekazuje skryptom wykonywanym w tej domenie. Nie wykrywa wycieków poniżej poziomu przeglądarki — takich jak błędne trasowanie na poziomie systemu operacyjnego czy ruch IPv6 nieobsługiwany przez VPN — i nie testuje zapytań DNS. Jeśli zapora sieciowa blokuje STUN, pojawi się komunikat „Brak publicznego IP”, co oznacza po prostu brak odpowiedzi. Poza tym adres IP to tylko jeden z identyfikatorów: rozdzielczość ekranu, czcionki i nagłówki widoczne na stronie Jakiej przeglądarki używam mogą zidentyfikować Twoje urządzenie nawet przy czystym adresie VPN.
Często zadawane pytania (FAQ)
Czy WebRTC może ujawnić mój prawdziwy adres IP mimo połączenia z VPN?
Tak, może się tak zdarzyć. WebRTC wysyła własne pakiety UDP do serwerów STUN. W przypadku dzielonego tunelowania lub prostych rozszerzeń VPN do przeglądarek pakiety te wędrują poza tunelem przez zwykłe łącze. Serwer STUN odczytuje wówczas prawdziwy adres od dostawcy internetu, a dowolna strona może go pobrać przez JavaScript. Pełny klient VPN instalowany w systemie rozwiązuje ten problem.
Czy istnieje sposób na całkowite wyłączenie WebRTC w Edge?
Nie w zwykłych ustawieniach: Edge nie posiada prostego przełącznika, a dawną flagę w about:flags usunięto. W systemie Windows można jednak skonfigurować zasadę WebRtcLocalhostIpHandling z wartością AllowPublicInterfaceOnly lub DisableNonProxiedUdp w rejestrze pod kluczem SOFTWARE\Policies\Microsoft\Edge. Wymaga to restartu; weryfikacja na edge://policy.
Gdzie mogę wyłączyć WebRTC i PeerConnection w Firefoksie?
W about:config: wyszukaj media.peerconnection.enabled i kliknij dwukrotnie, ustawiając wartość na false. Całkowicie wyłącza to WebRTC bez restartu, lecz wideorozmowy w przeglądarce przestaną działać. Jeśli chcesz nadal prowadzić rozmowy, pozostaw tę wartość i zmień zamiast tego media.peerconnection.ice.default_address_only na true.
Jak mogę trwale wyłączyć WebRTC w przeglądarce Safari?
W obecnych wersjach Safari nie jest to możliwe na stałe. Dawne menu eksperymentalne zostało usunięte, a opcje deweloperskie resetują się po zamknięciu programu. Ponieważ Safari chroni adresy LAN za pomocą mDNS, najskuteczniejszym działaniem jest kontrola uprawnień witryn w Safari > Ustawienia > Witryny oraz korzystanie z systemowego klienta VPN.
Jakie są najlepsze ustawienia przeciwko wyciekom WebRTC w Brave?
W brave://settings/privacy ustaw opcję WebRTC IP handling policy na „Disable Non-Proxied UDP”, gdy korzystasz z VPN lub proxy. WebRTC skieruje wtedy ruch TCP przez proxy, a STUN nie pozna Twojego adresu. Tryb „Default Public Interface Only” to kompromis pozwalający na swobodne korzystanie z połączeń głosowych.
Którą politykę obsługi IP w WebRTC powinienem wybrać?
Dla większości użytkowników najlepsza jest „Default Public Interface Only”: ukrywa lokalne karty sieciowe, zachowuje obsługę UDP i nie psuje działania wideorozmów. Opcję „Disable Non-Proxied UDP” wybieraj tylko wtedy, gdy wymagasz bezwzględnej prywatności pod proxy lub VPN. Opcje domyślne wciąż ujawniają adresy lokalne.
Dlaczego mój prywatny adres IP staje się publiczny przez WebRTC?
We współczesnych przeglądarkach już się tak nie dzieje. Chrome, Edge, Brave, Firefox i Safari zastępują surowy adres LAN losową nazwą mDNS z końcówką .local. Strona internetowa widzi tylko tę nazwę zamiast adresu 192.168.1.14. Jeżeli nasz test pokazuje czysty adres IP z sieci lokalnej, oznacza to brak aktywnej ochrony mDNS.