DNS 유출이란?
웹사이트를 열 때마다 기기는 먼저 DNS 서버에 이름(example.com)을 IP 주소로 바꿔 달라고 요청합니다. 그 서버를 운영하는 쪽은 내가 조회하는 모든 도메인을 볼 수 있습니다.
VPN은 이런 조회를 암호화된 터널을 통해 자신이 관리하는 DNS 서버로 보내야 합니다. DNS 유출은 조회가 다른 곳, 대개 내 인터넷 서비스 제공업체(ISP)로 곧장 전달될 때 발생합니다. 트래픽은 숨겨져도 ISP는 내가 방문하는 모든 사이트 목록을 그대로 받게 되고, VPN이 약속한 개인정보 보호는 소리 없이 무너집니다.

DNS 유출 테스트 작동 방식
테스트는 브라우저가 3-k2v9x0m4q7r1t8zw.leak.dnsrobot.net 같은 이름을 불러오게 합니다. 아무도 조회한 적 없는 이름이라 어떤 캐시도 응답할 수 없으므로, 내 DNS 서버가 저희 네임서버에 직접 물어봐야 합니다.
leak.dnsrobot.net의 네임서버는 저희가 운영합니다. 각 조회는 실제로 내 브라우징 조회를 처리하는 DNS 서버에서 들어오므로, 그 서버의 IP 주소를 기록합니다.
각 서버의 IP를 네트워크(ASN), 운영 주체, 국가와 연결한 뒤 내 IP 주소의 네트워크와 비교합니다.
서버가 VPN이나 내가 선택한 DNS 서비스에 속한다면 유출이 아닙니다. VPN을 켠 상태에서 내 인터넷 서비스 제공업체가 나타난다면 DNS가 유출되고 있는 것입니다.
Advertisement
테스트 결과의 의미
모든 DNS 서버가 내 IP 주소와 같은 네트워크에 속합니다. VPN을 쓰고 있다면 조회가 터널을 통해 전달되고 있습니다. VPN이 없다면 예상대로 ISP로 전달됩니다.
조회가 Cloudflare, Google, Quad9 등 공개 DNS 서비스로 전달됩니다. 내가 또는 VPN이 선택한 것이라면 문제없습니다. 그렇지 않다면 브라우저 설정이나 앱이 VPN의 DNS를 우회하고 있을 수 있습니다.
적어도 한 서버가 내 IP와 관련 없는 네트워크에 있습니다. VPN을 쓰고 있다면 목록에서 내 ISP 이름을 찾아보세요. 있다면 VPN이 DNS를 유출하고 있는 것입니다.
브라우저가 테스트 이름을 조회하지 않았습니다. 대개 광고 차단기, 방화벽 또는 필터링 DNS가 알 수 없는 도메인을 차단하기 때문입니다. 이 페이지를 허용하고 다시 테스트하세요.
표준 테스트와 확장 DNS 유출 테스트, 무엇을 쓸까요?
표준 테스트는 조회 6회를 보내며 몇 초면 끝납니다. 어떤 제공업체가 내 DNS를 처리하는지 확인하기에 충분합니다.
확장 테스트는 6라운드에 걸쳐 조회 36회를 보냅니다. 대형 제공업체는 수많은 서버로 이루어진 풀에서 응답하고, 어떤 유출은 가끔씩만 나타납니다. Windows가 같은 질의를 모든 네트워크 어댑터에 동시에 보낼 때가 대표적입니다. 민감한 작업에 VPN을 믿고 맡기기 전에 확장 테스트를 실행하세요.
Advertisement
DNS 유출의 원인
VPN이 DNS를 처리하지 않음. 일부 VPN 앱과 수동으로 설정한 OpenVPN·WireGuard 연결 상당수는 터널만 연결하고, 시스템 DNS 설정은 공유기나 ISP를 그대로 가리키게 둡니다.
Windows가 모든 어댑터에 질의. Windows 8부터는 스마트 멀티홈 이름 확인(smart multi-homed name resolution)이 각 조회를 모든 네트워크 어댑터의 DNS 서버에 동시에 보내고 가장 빠른 응답을 사용합니다. 그 응답이 ISP의 것일 수 있습니다.
터널 밖의 IPv6. VPN이 IPv4만 터널로 보내면 IPv6로 보낸 조회가 ISP의 리졸버에 바로 도달할 수 있습니다. VPN을 연결한 상태에서 IPv6 테스트로 확인하세요.
브라우저의 보안 DNS. Chrome, Edge, Firefox는 VPN의 DNS 서버를 무시하고 DNS over HTTPS로 Cloudflare, Google 등 다른 제공업체에 조회를 보낼 수 있습니다.
공유기 또는 수동으로 지정한 DNS. 공유기나 네트워크 설정에 고정해 둔 DNS 서버는 VPN 앱의 동작 방식에 따라 VPN보다 우선할 수 있습니다.
투명 DNS 프록시. 일부 ISP는 포트 53으로 가는 모든 DNS 요청을 가로채 직접 응답합니다. 다른 DNS 서버를 지정해 두어도 마찬가지입니다.
DNS 유출 해결 방법
VPN의 DNS 유출 방지 기능과 킬 스위치를 켜세요. 괜찮은 VPN 앱은 대부분 두 기능을 모두 제공합니다. 앱이 자체 DNS 서버를 사용하는지 확인한 뒤 다시 테스트하세요.
Windows Pro·Enterprise:
gpedit.msc를 열고 컴퓨터 구성 → 관리 템플릿 → 네트워크 → DNS 클라이언트에서 "Turn off smart multi-homed name resolution" 정책을 사용으로 설정하세요. Windows Home에서는HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient아래에 DWORD 값DisableSmartNameResolution을 만들고1로 설정하세요.필요 없다면 Teredo를 비활성화하세요. 관리자 권한 명령 프롬프트에서
netsh interface teredo set state disabled를 실행합니다.IPv6 문제 해결: IPv6도 터널로 보내는 VPN을 사용하거나, VPN에 연결된 동안 네트워크 어댑터에서 IPv6를 끄세요.
브라우저의 보안 DNS 확인: Chrome에서는 설정 → 개인정보 보호 및 보안 → 보안 → 보안 DNS 사용, Firefox에서는 설정 → 개인 정보 및 보안 → DNS over HTTPS로 이동하세요. VPN이 DNS를 처리하게 하려면 이 기능을 끄거나 VPN의 리졸버를 지정하세요.
설정을 바꾼 뒤에는 DNS 캐시를 삭제해 이전 응답이 남지 않게 하세요. Windows, macOS, Linux, 브라우저별 방법은 DNS 캐시 삭제 방법을 참고하세요.
Advertisement
명령줄에서 DNS 서버 테스트하기
브라우저 없이도 컴퓨터가 어떤 DNS 서버를 사용하는지 확인할 수 있습니다. 저희 네임서버는 특수 이름 whoami.leak.dnsrobot.net을 요청한 서버의 IP 주소로 응답합니다.
dig +short TXT whoami.leak.dnsrobot.netnslookup -type=TXT whoami.leak.dnsrobot.net낯선 서버가 보이는 이유는 무엇인가요?
저희에게 보이는 것은 저희 네임서버에 접속한 서버, 즉 체인의 마지막 서버입니다. 공유기나 로컬 리졸버가 조회를 상위 서버로 전달한다면 결과에는 공유기가 아닌 상위 제공업체가 표시됩니다.
대형 공개 리졸버는 애니캐스트(anycast)를 사용합니다. Cloudflare, Google, Quad9는 가까운 데이터 센터에서 응답하며, 한 번의 조회를 이웃 국가의 서버가 처리할 수도 있습니다. 예상치 못한 국가의 서버가 보인다고 해서 그 자체로 유출은 아닙니다. 중요한 것은 누가 운영하는가입니다.
Advertisement
DNS 유출, WebRTC 유출, IPv6 유출
VPN이 신원을 드러내는 주요 경로는 세 가지이며, 각각 따로 테스트해야 합니다.
조회가 VPN 밖의 DNS 서버, 대개 ISP의 서버로 전달되어 방문하는 모든 도메인이 드러납니다.
브라우저가 WebRTC를 통해 실제 IP를 드러냅니다. WebRTC 유출 테스트로 확인하세요.
IPv4만 터널로 보내는 VPN을 IPv6 트래픽이 우회합니다. VPN을 연결한 상태에서 IPv6 테스트로 확인하세요.
더 많은 개인정보·DNS 도구
내 연결이 무엇을 드러내는지, DNS 성능은 어떤지 확인하는 무료 도구를 더 이용해 보세요.