끊긴 터널은 열린 채로 실패한다
VPN 연결이 깨지면 운영체제는 조용히 트래픽을 평소 인터페이스로 보냅니다. 앱은 계속 돌아가고 아무 경고도 없습니다. 킬 스위치는 '열린 실패'를 '닫힌 실패'로 바꿉니다. 터널이 없으면, 트래픽도 없습니다.
가이드
킬 스위치는 VPN 터널이 끊기는 순간 모든 인터넷 트래픽을 차단해서, 앱들이 평소 회선으로 슬쩍 돌아가지 못하게 합니다. 이게 없으면 2초짜리 끊김에도 내 진짜 IP가 노출됩니다. 터널이 살아 있는 동안에도 DNS 요청, 브라우저의 WebRTC, IPv6 트래픽은 터널을 비껴 샐 수 있습니다. 어느 누출이든 간단한 테스트와 해결책이 있습니다.
VPN 연결이 깨지면 운영체제는 조용히 트래픽을 평소 인터페이스로 보냅니다. 앱은 계속 돌아가고 아무 경고도 없습니다. 킬 스위치는 '열린 실패'를 '닫힌 실패'로 바꿉니다. 터널이 없으면, 트래픽도 없습니다.
DNS 조회는 터널 밖 통신사 리졸버로 갈 수 있고, WebRTC는 웹사이트에 내 주소들을 건넬 수 있으며, IPv6는 IPv4 전용 터널을 그냥 우회할 수 있습니다 — VPN 아이콘이 '연결됨'이라고 말하는 동안에도요.
설정 화면을 믿을 필요가 없습니다. 누출 테스트는 웹사이트에 실제로 보이는 주소와 리졸버를 보여 주고, 일부러 터널을 끊어 보면 킬 스위치가 버티는지 드러납니다.
연결은 열린 채로 실패합니다. VPN은 트래픽을 가상 네트워크 인터페이스로 몰아넣는 경로들을 추가하는데, 터널 프로세스가 죽거나 타임아웃되면 그 경로들은 사라지고 와이파이나 이더넷을 지나는 기본 경로는 남습니다 — 그래서 시스템은 패킷을 계속 배달하되, 이제는 통신사를 통해 직접 보냅니다. 앱들은 몇 초 안에 소켓을 다시 연결해 내 진짜 IP로 트래픽을 보내고, 어디에도 오류 창 하나 뜨지 않습니다.
끊김은 일상입니다. 와이파이에서 모바일 데이터로 전환, 잠자기에서 깨어나는 노트북, 상태가 오락가락하는 호텔 네트워크, VPN 서버 재시작 — 전부 터널을 잠깐씩 끊습니다. 그 잠깐이 얼마나 비싼지는, 터널이 죽어 있는 동안 기기에서 무언가가 나가도록 허용되느냐에 달렸습니다.
킬 스위치는 마법이 아니라 방화벽 규칙 묶음입니다. 엄격한 버전은 두 종류의 아웃바운드 트래픽만 허용합니다. 터널 인터페이스로 들어가는 패킷, 그리고 VPN 클라이언트 자신이 서버로 보내는 암호화 패킷. 터널이 내려가면 애플리케이션 트래픽은 터널이 돌아올 때까지 갈 곳이 없어질 뿐입니다.
이건 실패를 막는 게 아니라 실패의 양상을 바꾸는 것입니다. 킬 스위치가 있으면 끊김은 내가 알아차리는 '멈춘 연결'이 되고, 없으면 내가 알아차리지 못하는 '진짜 주소로 나가는 트래픽'이 됩니다. 네트워크는 완벽하지 않고 터널은 앞으로도 끊길 것입니다 — 닫힌 실패는 그 순간들을 무해하게 만듭니다.
차이는 앱 자체가 죽었을 때 드러납니다. 앱 내 킬 스위치는 VPN 클라이언트 안에서 터널을 감시하다 끊기면 트래픽을 막는 코드입니다. 클라이언트가 돌아가는 동안에만 작동합니다. 클라이언트가 크래시하거나 배터리 최적화에 죽으면 보호도 함께 죽습니다 — 하필 터널이 사라지는 바로 그 순간에요.
시스템 수준 킬 스위치는 운영체제 자체의 방화벽에 규칙을 심어, 어떤 앱이 돌아가든 모든 아웃바운드 패킷을 검사합니다. Android에는 이게 내장돼 있습니다. '상시 VPN'에 'VPN 없이 연결 차단'을 더하면, 재부팅 후 앱이 뜨기도 전에 OS 스스로 터널 밖 트래픽을 거부합니다. 둘을 구별하는 무식하지만 확실한 방법: 웹 서핑 중에 VPN 앱을 강제 종료해 보세요 — 페이지가 계속 뜬다면 스위치는 앱 안에 사는 겁니다.
DNS 누출이란 트래픽 자체는 터널을 타는데, 이름 조회는 로컬 네트워크가 할당한 리졸버 — 보통 통신사의 것 — 로 가는 상황입니다. 웹사이트에는 VPN 주소가 보여도 리졸버는 내가 여는 모든 사이트의 이름을 받아 갑니다. 사실상 방문 기록이죠. 고전적인 말썽꾼은 Windows입니다. 활성 인터페이스가 여러 개면 전부에 동시에 물어보고 먼저 답한 쪽을 씁니다.
해결책은 두 부분이고, 좋은 클라이언트는 둘 다 합니다. 시스템이 터널 안의 리졸버를 바라보게 하고, 다른 모든 인터페이스에서 DNS를 막아 길 잃은 조회가 갈 곳을 없애는 것. 그다음 검증하세요. 누출 테스트를 돌려 나열된 리졸버를 확인하고 — 그중 하나라도 통신사 것이라면 조회가 새고 있는 겁니다.
WebRTC는 영상 통화를 떠받치는 브라우저 기술이고, 어떤 웹사이트든 JavaScript 몇 줄로 호출할 수 있습니다. 직접 연결을 만들기 위해 내 기기에 닿을 수 있는 모든 주소를 수집합니다. 로컬 주소들, 그리고 STUN 서버에 물어서 얻는 공인 주소까지. 페이지는 내 개입 없이 그 후보들을 읽을 수 있습니다.
기기 전체 터널이라면 STUN 요청도 터널 안을 타므로 VPN의 주소를 찾아냅니다. 위험한 건 부분적인 구성입니다. 브라우저 전용 프록시나, 브라우저를 밖에 남겨 두는 스플릿 터널링 — 거기서는 WebRTC의 UDP 패킷이 직접 나가서 내 진짜 IP를 드러냅니다.
머리로 추론하지 말고 테스트하세요. 무료 검사 도구 /webrtc-leak-test/ 가 지금 이 순간 브라우저가 드러내는 주소들을 보여 줍니다. 진짜 주소가 나타나면 기기 전체 터널로 옮기거나 브라우저 설정에서 WebRTC를 끄세요.
많은 VPN 구성이 IPv4만 실어 나릅니다. 통신사가 IPv6도 제공한다면 — 모바일 네트워크는 대부분 그렇습니다 — 시스템에는 터널 밖의 살아 있는 IPv6 경로가 남고, 요즘 시스템은 사이트가 둘 다 지원하면 IPv6를 선호합니다. 결과는 선택적 노출입니다. IPv6가 없는 사이트에는 VPN 주소가, 있는 사이트에는 내 진짜 주소가 보이는데, IPv4만 보는 테스트는 모든 게 정상이라고 보고합니다.
깔끔한 해결책은 둘입니다. 더 나은 쪽은 IPv6를 제대로 다루는 VPN입니다 — IPv4와 나란히 터널로 실어 나르거나, 차단 경로를 심어 IPv6 패킷이 직접 나가는 대신 버려지게 하는 것. 무딘 대안은 기기나 라우터에서 IPv6를 끄는 것입니다. 어느 쪽이든 검증하세요. 누출 테스트에 VPN 것이 아닌 IPv6 주소가 보이면 안 됩니다.
실제로 쓰는 환경에서 검사를 돌리세요 — 집 와이파이, 모바일 데이터의 폰, 카페 네트워크. 누출은 각 네트워크의 DNS 구성과 IPv6 제공 여부에 따라 달라지니까요. 루틴은 5분 정도면 됩니다.
VPN 터널을 라우터에 올리면 네트워크의 모든 기기가 한꺼번에 보호됩니다 — 앱을 설치할 수 없는 TV, 게임 콘솔, 스마트 스피커까지요. 대가도 실재합니다. 처리량이 라우터 CPU에 묶이고, 온 집이 한 나라로만 나가며, 문제 해결이 어려워집니다. 이 가이드는 구성 방법들과 판단 기준을 설명합니다.
여행길에서 VPN은 호텔·공항 와이파이의 트래픽을 암호화하고, 내 계정들이 낯익은 나라에서 접속하는 것처럼 보이게 하고, 해외에서 다르게 굴어지는 서비스에 닿게 해 줍니다. 만능은 아닙니다. 스트리밍 플랫폼은 서버 주소를 탐지하고, 현지 규정은 나라마다 다릅니다. 가장 중요한 규칙 하나 — 떠나기 전에 전부 설정하고 테스트하세요.
VPN(가상 사설망)은 내 기기와 원격 서버 사이에 암호화된 터널을 만들고, 트래픽은 그 서버를 거쳐 인터넷으로 나갑니다. 통신사는 내가 어떤 사이트를 방문하는지 더 이상 볼 수 없고, 웹사이트에는 내 IP 대신 서버의 IP 주소가 보입니다. 다만 VPN은 프라이버시 도구이지, 투명 망토가 아닙니다.