2026년 10월 7일 기준으로 Shifter는 Oxylabs와 Bright Data보다 많은, 가장 큰 규모의 실시간 미국 IP 풀을 보유하고 있으며, 비용은 그 일부에 불과합니다.Shifter는 이제 가장 많은 미국 라이브 IP 풀을 보유하고 있습니다

벤치마크 보기

WebRTC 유출: 실제 IP가 프록시를 빠져나가는 원리와 테스트 및 해결 방법

브라우저가 프록시를 사용 중이어도 WebRTC는 웹사이트에 실제 IP를 보여 줄 수 있습니다. 유출 원리, 2분 테스트, Chrome, Firefox, 자동화 환경별 해결 방법을 설명합니다.

고객 성공 · 2026년 11월 12일에 업데이트됨 · 4분 읽기
브라우저프록시웹사이트STUN 서버웹 트래픽WebRTC, UDP 사용실제 IP 노출프록시 IP 노출
페이지는 프록시를 거칩니다. 호박색 WebRTC 요청은 프록시를 우회합니다.
지식
이 페이지에서
  1. 유출이 일어나는 원리
  2. 2분 안에 테스트하기
  3. Chrome에서 해결하기
  4. Firefox에서 해결하기
  5. 자동화 브라우저에서 해결하기
  6. WebRTC만 유출되는 것은 아닙니다
  7. 결론

프록시를 설정하고 IP 조회 페이지를 열었더니 프록시의 IP가 표시됩니다. 이걸로 끝일까요? 항상 그렇지는 않습니다. 페이지는 여전히 WebRTC를 통해 실제 IP를 알아낼 수 있습니다. WebRTC는 설계상 브라우저의 프록시 설정을 무시하는 브라우저 기능입니다. 레지덴셜 프록시로 현지 방문자처럼 사이트를 보고 있다면, WebRTC 유출은 눈에 띄는 징후 없이 그 효과를 무효로 만들 수 있습니다.

이 가이드에서는 유출이 일어나는 원리, 2분 안에 테스트하는 방법, 그리고 Chrome, Firefox, 자동화 브라우저에서 유출을 막는 방법을 설명합니다.

유출이 일어나는 원리

WebRTC는 브라우저끼리 통화하고 데이터를 직접 주고받게 해 줍니다. 이를 위해 각 브라우저는 자신에게 접속할 수 있는 주소인 “ICE 후보”를 수집합니다. 그 단계 중 하나가 UDP로 STUN 서버에 “내가 어떤 공인 주소에서 접속하는 것으로 보이나요?”라고 묻는 것입니다. 응답은 후보에 담기며, 페이지의 JavaScript가 이를 읽을 수 있습니다.

문제는 이 질문이 지나가는 경로입니다. 일반적인 HTTP 프록시는 웹 요청만 전달하고 UDP는 전달하지 않습니다. 그래서 STUN 요청은 내 회선으로 나가고, 응답은 내 실제 공인 IP입니다. WebRTC 주소 처리에 관한 IETF 표준인 RFC 8828은 이를 분명히 밝힙니다. 직접 인터넷 접속이 허용되면 STUN 확인이 프록시를 우회해 클라이언트의 공인 IP를 드러낼 수 있다는 것입니다. 또한 통화 품질 때문에 WebRTC 트래픽을 기본적으로 프록시로 보내지 않도록 권장합니다.

두 가지 세부 사항이 중요합니다.

  • 로컬 주소는 이제 대부분 숨겨집니다. Chrome과 Firefox는 대부분의 페이지에서 사설 네트워크 주소를 무작위 .local 이름으로 대체합니다. Firefox에서는 media.peerconnection.ice.obfuscate_host_addresses 설정이며 기본으로 켜져 있습니다. 실제 위험은 공인 IP입니다.
  • 페이지에 권한이 필요 없습니다. 후보를 수집하는 데는 카메라나 마이크 접근이 필요하지 않으므로 권한 요청 창이 뜨지 않습니다.

2분 안에 테스트하기

제3자 테스트 사이트는 필요 없습니다. 프록시를 켠 상태에서 확인하려는 페이지, 또는 아무 페이지나 열고 개발자 콘솔(F12)을 연 다음 아래 코드를 붙여 넣습니다.

const pc = new RTCPeerConnection({ iceServers: [{ urls: "stun:stun.l.google.com:19302" }] });
pc.createDataChannel("t");
pc.onicecandidate = (e) => e.candidate && console.log(e.candidate.candidate);
pc.createOffer().then((o) => pc.setLocalDescription(o));

typ srflx가 포함된 줄을 확인하세요. 그 줄의 주소가 STUN 서버가 본 공인 IP입니다.

  • 집이나 사무실 IP와 같다면 WebRTC가 유출되고 있는 것입니다.
  • 프록시의 IP와 같거나 srflx 줄이 전혀 없다면 안전합니다.
  • typ host와 .local 이름이 있는 줄은 숨겨진 로컬 주소이며, 정상입니다.

그런 다음 같은 브라우저에서 IP Info 같은 IP 조회 서비스와 비교합니다. 프록시의 IP와 위치가 표시되어야 합니다. 조회 결과에는 프록시가 나오는데 srflx 줄에는 내 IP가 나온다면, 프록시는 작동하고 있지만 WebRTC가 이를 우회하는 것입니다.

Chrome에서 해결하기

가장 쉬운 방법: 이를 관리해 주는 확장 프로그램을 사용합니다. Shifter 브라우저 확장 프로그램은 연결되어 있는 동안 WebRTC 유출 방지를 기본으로 켭니다. 내부적으로 Chrome 확장 프로그램은 webRTCIPHandlingPolicy 개인정보 설정으로 이를 제어합니다. 다른 확장 프로그램이 이미 WebRTC를 제어하고 있다면 둘 중 하나만 적용될 수 있으며, Shifter 확장 프로그램은 방지 기능이 활성화되지 않았을 때 이를 알려 줍니다. 다른 확장 프로그램을 제거하거나 비활성화하세요.

관리되는 컴퓨터: Chrome에는 네 가지 값을 가진 엔터프라이즈 정책 WebRtcIPHandling이 있습니다.

값WebRTC가 사용하는 것
default사용 가능한 모든 네트워크 인터페이스
default_public_and_private_interfaces외부로 연결된 인터페이스, 사설 주소 허용
default_public_interface_only외부로 연결된 인터페이스만, 사설 주소 없음
disable_non_proxied_udp프록시를 통한 TCP, UDP는 프록시가 지원할 때만

프록시 뒤에서 공인 IP 유출을 막는 것은 disable_non_proxied_udp뿐입니다. 두 개의 “공용 인터페이스” 값은 여전히 내 회선으로 STUN 서버에 질의합니다.

Firefox에서 해결하기

Firefox에서도 Shifter 확장 프로그램이 이를 처리합니다. 직접 설정하려면 about:config를 열고 다음을 설정합니다.

  • media.peerconnection.ice.proxy_only_if_behind_proxy를 true로: WebRTC는 프록시가 설정된 경우에만 프록시를 사용합니다. 이것이 목적에 맞는 해결책입니다.
  • media.peerconnection.ice.default_address_only를 true로: 기본 경로만 사용됩니다. 추가 로컬 주소는 숨겨지지만, 이것만으로는 공인 IP 유출을 막지 못합니다.
  • media.peerconnection.enabled를 false로: WebRTC를 완전히 끕니다. 가장 거친 방법이며 해당 브라우저에서 통화가 되지 않습니다.

그런 다음 콘솔 테스트를 다시 실행하세요. srflx 줄이 사라지거나 프록시의 IP가 표시되어야 합니다.

자동화 브라우저에서 해결하기

Playwright, Puppeteer, Selenium은 실제 브라우저를 실행하므로 똑같이 유출됩니다. Chromium에서는 다음과 같이 시작합니다.

--force-webrtc-ip-handling-policy=disable_non_proxied_udp

Firefox에서는 프레임워크가 실행하는 프로필에 같은 about:config 설정을 지정합니다. 그런 다음 스크립트에서 위의 콘솔 테스트를 실행하고, 설정 점검의 일부로 srflx 결과를 확인하세요. Selenium과 Playwright에서 레지덴셜 프록시 사용하기 가이드에서 이러한 옵션을 넣는 위치를 보여 줍니다.

WebRTC만 유출되는 것은 아닙니다

이 기회에 관련된 다른 허점도 막아 두세요.

  • DNS. 이름 조회가 프록시를 우회해 내 네트워크에서 해석될 수 있습니다. DNS 유출 방지 가이드에서 socks5h와 확인 방법을 다룹니다.
  • IPv6. 프록시 경로가 IPv4 전용인데 브라우저에 IPv6도 있다면, 일부 요청에 IPv6를 사용할 수 있습니다.
  • 시간대와 언어. 이들은 IP를 드러내지는 않지만 프록시의 위치와 모순될 수 있습니다.

결론

WebRTC 유출은 브라우저가 UDP로 STUN 서버에 내 주소를 묻고, 대부분의 프록시는 웹 트래픽만 전달하기 때문에 발생합니다. 콘솔 코드로 테스트하세요. srflx 주소가 내 것이라면 페이지도 그것을 볼 수 있습니다. Shifter 확장 프로그램에서 유출 방지를 켜거나, Chrome에서는 disable_non_proxied_udp, Firefox에서는 proxy_only_if_behind_proxy를 설정한 뒤 다시 테스트하세요.

자주 묻는 질문

WebRTC 유출이란 무엇인가요?

WebRTC는 화상 통화와 피어 투 피어 연결에 쓰이는 브라우저 기능입니다. 연결 경로를 찾기 위해 UDP로 STUN 서버에 내 공인 주소를 물어봅니다. 대부분의 HTTP 프록시는 이 UDP 트래픽을 전달하지 않으므로 요청이 내 회선으로 그대로 나가 실제 IP가 반환되고, 페이지가 이를 읽을 수 있습니다.

VPN에도 WebRTC 유출이 있나요?

VPN이 기기의 모든 트래픽을 라우팅한다면 보통은 없습니다. STUN 요청도 터널을 통과하기 때문입니다. 유출은 주로 브라우저나 특정 앱 하나에 설정한 프록시, 그리고 트래픽을 분할하는 VPN에서 문제가 됩니다.

WebRTC를 완전히 비활성화해야 하나요?

해당 브라우저에서 통화나 영상을 전혀 쓰지 않는 경우에만 그렇게 하세요. WebRTC를 프록시를 거치는 트래픽으로 제한하면 유출이 해결되고 대부분의 사이트도 계속 동작합니다. 이 경우 통화는 프록시나 릴레이 서버가 필요할 수 있으며 더 느려지거나 실패할 수 있습니다.

Shifter 브라우저 확장 프로그램은 WebRTC 유출을 막아 주나요?

네. Chrome과 Firefox용 Shifter 확장 프로그램에서는 WebRTC 유출 방지가 기본으로 켜져 있습니다. 다른 확장 프로그램이나 브라우저 정책이 이미 WebRTC를 제어하고 있다면, 확장 프로그램이 방지 기능이 활성화되지 않았다고 알려 줍니다.

시작할 준비가 되셨나요?

205M개 이상의 IP, 195개 이상의 국가를 지원하는 Shifter의 레지덴셜 프록시를 $0.10/GB부터 이용해보세요.

시작하기