WebRTC 유출 검사
유출 검사를 실행하는 중...
IPv4 (HTTP) 확인 중...
IPv6 (HTTP) 확인 중...
수집된 ICE 후보
수집된 ICE 후보가 없습니다.
대략적인 위치
네트워크 위치를 찾는 중…

마커는 통신사가 서비스하는 지역의 대략적인 중심을 나타내며, 여러분의 집·거리·기기가 아닙니다. 수십 킬로미터 차이는 정상입니다.

WebRTC 유출을 막는 방법
Chrome / Edge — WebRTC를 차단하는 확장 프로그램(예: "WebRTC Leak Prevent")을 설치하거나, WebRTC 트래픽을 명시적으로 차단하는 VPN 클라이언트를 사용하세요. 최신 Chrome에는 이를 위한 기본 설정이 더 이상 없습니다.
Firefox — about:config를 열고 media.peerconnection.enabled를 찾아 false로 설정하면 WebRTC를 완전히 끌 수 있습니다.
Safari — WebRTC는 전역으로 끌 수 없습니다. Safari > 설정 > 웹사이트에서 사이트별로 카메라/마이크 접근을 해제하거나, 네트워크 수준에서 WebRTC를 차단하는 VPN을 이용하세요.
Brave — Shields 패널을 열고 WebRTC 네트워크 제한을 가장 엄격한 "Proxied" 모드로 설정해 로컬 IP 유출을 막으세요.
WebRTC 유출 검사 소개

WebRTC는 실시간 영상 통화와 P2P 파일 전송을 위해 만들어진 브라우저 기술입니다. 두 컴퓨터를 직접 연결하려면 양쪽에 도달할 수 있는 모든 네트워크 주소를 찾아야 하므로, 공개 STUN 서버에 "이 연결은 밖에서 어떤 IP로 보이는가"를 묻고 그 답을 ICE 후보로 수집합니다. 이 후보 교환은 보통 통화 중인 두 당사자 사이에서 눈에 띄지 않게 일어나지만, 어떤 웹사이트든 배경에서 조용히 같은 과정을 실행해 후보를 읽고 여러분의 주소를 뽑아낼 수 있습니다.

이것이 특히 프라이버시 문제가 되는 대상은 VPN 사용자입니다. VPN은 일반 HTTP 트래픽을 자체 터널로 우회시키므로 웹사이트에는 여러분이 아닌 VPN의 IP가 보입니다. 하지만 WebRTC는 자체 연결로 STUN 서버와 통신하고, 일부 환경에서는 그 연결이 VPN 터널을 완전히 우회합니다. 주소 표시줄이 "보호 중"이라고 해도 실제 인터넷 IP가 새어 나가는 것입니다. 최신 브라우저는 192.168.1.5 같은 원시 IP 대신 .local로 끝나는 무작위 일회용 mDNS 호스트 이름으로 바꿔 로컬 네트워크 주소도 숨기려 합니다. 이 대체는 진짜 프라이버시 개선이지 고장의 징후가 아닙니다.

이 도구는 악성 페이지가 실행할 수 있는 것과 똑같은 ICE 수집 과정을, 신뢰성을 위해 독립된 STUN 서버 두 개를 써서 실행하고, 수집한 모든 공인 후보를 실제 HTTP IP 주소와 비교합니다. 일치한다면 WebRTC는 모든 웹사이트가 이미 보는 것 이상으로 노출을 더하지 않는 것입니다. VPN을 쓰고 있다고 생각하는데 다르다면, 그 불일치가 바로 유출이며 위의 해결 방법이 사용하는 브라우저에서 막는 방법을 설명합니다.

이 검사는 여러분의 브라우저가 WebRTC의 ICE 수집을 통해 노출하는 내용만 보여 줍니다. 운영체제나 공유기 수준에서 일어나는 유출은 감지할 수 없습니다.

WebRTC 유출 테스트: VPN이 실제 IP 주소를 유출하고 있나요?

이 WebRTC 유출 테스트는 추적 스크립트가 활용하는 동일한 P2P 연결 방식을 실행하여 수집된 주소 중 VPN이 감추어야 할 원래의 네트워크 정보가 포함되어 있는지 진단합니다. 카메라나 마이크 권한 요청 없이 빈 데이터 채널로 RTCPeerConnection 을 열고, 두 곳의 공개 STUN 서버에 외부 접속 주소를 질의한 후 일반 HTTPS 요청이 도달하는 IP와 실시간으로 대조합니다.

검사 결과에 표시된 ICE 후보 주소 확인법

WebRTC는 상대방 기기가 사용자와 직접 연결될 수 있는 모든 유효 네트워크 경로를 파악하기 위해 ICE 후보(ICE candidates) 목록을 수집합니다. 본 페이지는 감지된 원본 목록을 유형 및 전송 프로토콜과 함께 표기하며 5초 후 수집을 종료합니다.

그 위쪽에는 HTTP 통신을 통해 확인된 일반 IPv4 및 IPv6 주소가 나열됩니다 — 이는 내 IP 주소 확인 페이지와 일치하는 기본값입니다. 이 값들이 비교 기준점이 되며 판정은 양측의 일치 여부로 결정됩니다.

host, srflx 및 relay — 각 레이블의 의미

  • 로컬(host) — 내 네트워크 카드 자체의 주소: 192.168.1.14 같은 사설 LAN IP 또는 난독화된 .local 이름.
  • 공용(STUN 경유) — srflx 후보로, STUN 서버가 패킷 수신 시 확인한 외부 공용 주소입니다. VPN 사용 시 가장 중요한 지표입니다.
  • 릴레이(TURN) — 중계 서버를 경유한 트래픽입니다. 본 도구는 STUN 전용이므로 relay 항목은 거의 나타나지 않습니다.

판정 결과별 의미

  • 유출 감지됨 — STUN 공용 후보가 HTTP IP와 일치하지 않습니다. VPN 사용 중이라면 WebRTC 패킷이 암호화 터널을 우회한 것입니다.
  • 유출 없음 — 양쪽 주소가 완벽하게 일치합니다.
  • 로컬 IP 노출됨 — 난독화된 mDNS 호스트명 대신 내부 사설망 LAN 주소가 그대로 노출되었습니다.
  • 보호됨 — 로컬 주소가 무작위 .local 호스트명 뒤로 안전하게 숨겨졌습니다.
  • 공용 IP 없음 / WebRTC 차단됨 — STUN 서버에 연결할 수 없거나 브라우저에서 WebRTC가 비활성화되었습니다.

VPN 사용 중에도 WebRTC가 실제 IP를 유출하는 이유

WebRTC는 브라우저 간 영상 통화, 음성 채팅 및 파일 P2P 전송을 위해 탄생했습니다. 서로 다른 공유기 뒤에 있는 두 기기를 연결하려면 NAT 트래버설 기술이 필요하며, 외부에서 보았을 때 이 연결이 어떤 공용 IP에서 출발했는지를 STUN 서버가 확인해 줍니다. 웹사이트는 JavaScript를 통해 이 절차를 백그라운드에서 실행할 수 있습니다.

원래 IP를 숨기고자 할 때 이것이 치명적인 취약점이 됩니다. VPN은 일반 HTTP 웹 트래픽을 터널로 우회시키지만, WebRTC는 자체 UDP 패킷을 STUN 서버로 직접 발송하며 분할 터널링 환경에서는 통신사 기본 경로를 타게 됩니다. 브라우저 확장 프로그램형 VPN이 대표적입니다. 이들은 웹 요청만 프록시할 뿐 운영체제의 UDP 스택을 터널링하지 못하므로, HTTP 기반 VPN 검사 결과와 상충될 수 있습니다.

임의의 .local 호스트명은 유출이 아닙니다

호스트 후보 항목에 192.168.1.14 대신 7b3f9c21-4d0a-48e7.local 같은 문자열이 표시된다면 보안 기능이 정상 작동하는 것입니다. 이는 mDNS 난독화 기술로, 브라우저가 로컬 네트워크 카드용 임시 멀티캐스트 DNS 이름을 생성하여 실제 사설 IP 대신 제공합니다. Chrome, Edge, Brave, Firefox, Safari 모두 기본 적용되어 있습니다. 주의할 점은 이것이 내부망 사설 IP만 보호할 뿐 VPN 공용 IP 유출을 막아주지는 못하며, 카메라나 마이크 권한을 승인한 사이트는 실제 로컬 IP를 열람할 수 있다는 것입니다.

Chrome 및 Edge에서 WebRTC 유출을 차단하는 방법

두 브라우저 모두 일반 설정 메뉴에 단순 끄기 스위치가 없으며, chrome://flags 나 edge://flags 의 비활성화 플래그도 삭제되었습니다. 실무적으로 적용 가능한 세 가지 해결책은 다음과 같습니다:

  • 브라우저 확장 대신 시스템 전체를 지원하는 풀터널 VPN 클라이언트를 사용하십시오. 모든 UDP 패킷이 암호화 터널을 통과하면 STUN 역시 VPN IP만 확인하게 됩니다.
  • 확장 프로그램을 통해 IP 처리 정책을 강제하십시오. WebRTC Leak Prevent 같은 도구로 chrome.privacy.network.webRTCIPHandlingPolicy 값을 default_public_interface_only 나 disable_non_proxied_udp 로 설정하면 로컬 노출을 원천 차단합니다.
  • 운영체제 정책(GPO/레지스트리)을 적용하십시오. Windows의 SOFTWARE\Policies\Microsoft\Edge 경로에서 WebRtcLocalhostIpHandling(Chrome은 WebRtcIPHandling) 값을 AllowPublicInterfaceOnly 나 DisableNonProxiedUdp 로 지정합니다. 브라우저 재시작 후 edge://policy 에서 적용 여부를 확인하십시오.

Firefox에서 WebRTC를 완전히 비활성화하는 방법

Firefox는 메이저 데스크톱 브라우저 중 유일하게 완전한 끄기 스위치를 제공합니다. 주소창에 about:config 를 입력하고 경고를 수락한 뒤, media.peerconnection.enabled 항목을 검색하여 더블클릭으로 false 로 변경합니다. 브라우저 재시작 없이 즉시 전역 비활성화되며 본 테스트는 차단 상태로 표시됩니다.

단, 이는 웹 기반 Google Meet, Teams, Discord, Zoom 등의 연결을 중단시키는 강력한 조치입니다. 화상 회의를 유지하면서 안전을 도모하려면 위 설정을 true로 유지하고 media.peerconnection.ice.default_address_only 항목을 true 로 변경하십시오. Firefox가 기본 경로(VPN 터널) 주소만 외부에 노출합니다.

Brave 브라우저에서 WebRTC 유출을 방지하는 설정

Brave는 Chrome이 숨겨둔 제어 권한을 사용자가 직접 설정할 수 있도록 제공합니다. brave://settings/privacy 로 이동하여 WebRTC IP handling policy 를 찾으십시오. VPN 사용 시 적합한 옵션은 다음과 같습니다:

  • Default — 모든 어댑터를 검색하여 내부 사설 IP가 노출될 수 있습니다.
  • Default Public and Private Interfaces — 기본 경로를 사용하지만 내부 사설 IP는 여전히 노출됩니다.
  • Default Public Interface Only — 기본 경로만 사용하고 로컬 주소를 숨깁니다. 통화 기능이 정상 유지되므로 일상 용도로 가장 적합합니다.
  • Disable Non-Proxied UDP — 프록시가 UDP를 지원하지 않으면 TCP를 강제합니다. 가장 엄격한 수준(Tor 창의 기본값)이지만 P2P 연결이 원활하지 않을 수 있습니다.

Safari, iPhone 및 Android 환경의 주의점

모바일 및 WebKit 환경에서는 데스크톱 기준의 일반적인 가이드가 적용되지 않습니다.

macOS Safari

최신 Safari에는 영구적인 전역 끄기 스위치가 없습니다. 개발자용 메뉴의 설정도 브라우저를 닫으면 초기화됩니다. Safari는 카메라 허용 전까지 로컬 IP를 mDNS로 보호하므로, Safari > 설정 > 웹 사이트 에서 권한을 제한하고 시스템 전체 VPN을 사용하는 것이 가장 현실적인 대안입니다.

iPhone 및 iPad (iOS/iPadOS)

iOS의 모든 브라우저는 의무적으로 WebKit 엔진을 사용합니다. iPhone용 Chrome이나 Firefox에는 about:config 나 확장 기능이 지원되지 않으며 콘텐츠 차단기도 WebRTC를 필터링하지 못합니다. 유출을 막으려면 설정 > VPN 에서 모든 UDP 패킷을 터널링하는 시스템 VPN을 활성화하고 Safari에서 다시 확인하십시오.

Android 환경

안드로이드용 Chrome은 플래그나 확장 기능을 지원하지 않습니다. 안드로이드용 Brave는 동일한 IP 처리 정책 메뉴를 제공합니다. Firefox 모바일은 Beta 및 Nightly 버전에서만 about:config 에 접근할 수 있습니다. 시스템 단위 대책으로는 안드로이드 설정에서 상시 가동 VPN 과 VPN 미사용 연결 차단 을 활성화하는 것입니다.

본 유출 테스트가 감지하지 못하는 범위

이 페이지는 브라우저 내부 스크립트가 정상적인 API 호출을 통해 수집할 수 있는 정보만 분석합니다. 운영체제 레벨의 잘못된 라우팅이나 VPN이 처리하지 않는 IPv6 트래픽 등 브라우저 하위 계층의 누수는 진단하지 못하며, DNS 질의 유출 역시 별도입니다. 방화벽이 STUN을 차단하면 „공용 IP 없음“으로 표시되지만 이는 응답이 없음을 의미할 뿐 안전을 보장하지 않습니다. 또한 IP는 식별 요소 중 하나일 뿐이며, 내 브라우저 정보 확인 에서 열람 가능한 화면 해상도, 글꼴 및 헤더 지문은 깨끗한 VPN IP 뒤에서도 사용자를 특정할 수 있습니다.

자주 묻는 질문 (FAQ)

VPN에 연결되어 있어도 WebRTC로 인해 실제 IP가 유출될 수 있나요?

네, 실제로 빈번하게 발생합니다. WebRTC는 STUN 서버로 자체 UDP 패킷을 직발송합니다. 분할 터널링이나 단순 브라우저 확장형 VPN을 사용할 경우 이 UDP 패킷이 터널을 타지 않고 일반 통신사 회선으로 나가버립니다. STUN 서버는 실제 통신사 IP를 기록하고 웹페이지는 JS로 이를 읽어냅니다. 시스템 전체 풀터널 VPN이 이를 완벽히 차단합니다.

Edge 브라우저에서 WebRTC를 완전히 끄는 방법이 있나요?

일반 메뉴 설정으로는 불가능합니다. Edge에는 토글 스위치가 없으며 이전 about:flags 플래그도 삭제되었습니다. Windows 환경이라면 레지스트리 SOFTWARE\Policies\Microsoft\Edge 경로에서 WebRtcLocalhostIpHandling 정책을 AllowPublicInterfaceOnly 나 DisableNonProxiedUdp 로 지정하여 해결할 수 있습니다. 브라우저 재시작 후 edge://policy 에서 확인하십시오.

Firefox에서 WebRTC와 PeerConnection을 끄는 경로는 어디인가요?

주소창에 about:config 를 입력하고 media.peerconnection.enabled 항목을 더블클릭하여 false 로 변경합니다. 재시작 없이 즉시 WebRTC가 비활성화되지만 웹 화상 통화가 작동하지 않게 됩니다. 음성/화상 통화를 유지하려면 위 항목을 true로 두고 media.peerconnection.ice.default_address_only 를 true 로 설정하십시오.

Safari에서 WebRTC를 영구적으로 비활성화할 수 있나요?

최신 Safari에서는 영구적인 비활성화가 불가능합니다. 과거 실험적 기능 메뉴는 제거되었으며 개발자용 설정도 세션 종료 시 리셋됩니다. Safari는 기본적으로 내부 IP를 mDNS로 보호하므로, 'Safari > 설정 > 웹 사이트'에서 사이트 권한을 철저히 제한하고 시스템 전체 VPN을 적용하는 것이 최선입니다.

Brave에서 WebRTC 유출을 막는 가장 좋은 설정은 무엇인가요?

brave://settings/privacy 에서 VPN이나 프록시를 켤 때 WebRTC IP handling policy 를 "Disable Non-Proxied UDP" 로 설정하십시오. WebRTC가 프록시를 통한 TCP 통신만 사용하여 STUN이 실제 IP를 알 수 없게 됩니다. 통화 기능 유지가 필요하다면 "Default Public Interface Only" 가 최적의 절충안입니다.

어떤 WebRTC IP 처리 정책을 선택해야 하나요?

대부분의 사용자에게는 "Default Public Interface Only" 가 권장됩니다. 로컬 네트워크 카드를 숨기면서 UDP를 유지하여 화상 회의를 정상적으로 지원합니다. 프록시나 VPN 뒤에서 극한의 익명성이 필요한 경우에만 "Disable Non-Proxied UDP" 를 선택하십시오. 기본값 설정들은 내부 사설망 주소를 지속적으로 노출합니다.

사설 IP 주소가 WebRTC를 통해 외부에 노출되는 이유는 무엇인가요?

최신 브라우저에서는 더 이상 원시 IP가 그대로 노출되지 않습니다. Chrome, Edge, Brave, Firefox, Safari는 내부 사설 IP를 .local 로 끝나는 일회용 임의 mDNS 이름으로 대체합니다. 웹페이지는 192.168.1.14 대신 이 난독화된 이름을 받게 됩니다. 원시 IP가 노출된다면 mDNS 보호 기능이 꺼져 있는 상태입니다.