DNS 유출이란?
웹사이트에 접속할 때마다 example.com 같은 이름을 IP 주소로 바꾸는 DNS 조회가 먼저 일어납니다. 평소에는 통신사의 DNS 서버가 응답합니다. VPN을 쓰면 이 조회도 암호화된 터널을 거쳐 VPN의 DNS 서버로 가야 합니다.
DNS 유출은 조회가 터널 밖에서 통신사의 DNS 서버로 가는 상태입니다. 웹사이트에는 여전히 VPN의 IP가 보이지만, 통신사는 내가 방문한 모든 도메인을 볼 수 있고 통신사의 DNS 필터링이나 차단도 그대로 적용됩니다.
DNS 유출 테스트의 원리
브라우저는 어떤 DNS 서버를 쓰는지 알려 줄 수 없습니다. 그래서 유출 테스트는 테스트 측이 DNS 서버를 운영하는 도메인의 고유한 무작위 호스트 이름 몇 개를 브라우저가 조회하게 합니다. 그 서버가 요청한 리졸버의 IP 주소를 기록합니다. VPN에 연결된 상태인데 그 리졸버가 통신사 소속이라면 DNS가 새고 있는 것입니다.
위 테스트가 바로 이렇게 작동합니다. 각 리졸버의 업체, 네트워크, 국가를 보여 주고 웹사이트에 보이는 IP와 비교합니다. 테스트 이름과 리졸버 IP는 10분 후 삭제됩니다.
DNS 서버 직접 확인하기
터미널(macOS, Linux)이나 명령 프롬프트(Windows, nslookup만 가능)에서 아래 명령 중 하나를 실행하세요. 모두 공개 서비스에 요청해, 그 서비스에 접속한 DNS 리졸버의 IP 주소를 알려 줍니다.
nslookup -type=txt o-o.myaddr.l.google.com
dig +short TXT o-o.myaddr.l.google.com
dig +short whoami.akamai.net결과 읽는 법
- 돌아온 주소의 소유자를 WHOIS나 IP 조회 서비스로 확인하세요.
- VPN에 연결된 상태인데 통신사 소속이라면 DNS가 새고 있습니다.
- VPN 업체나 직접 고른 리졸버(Cloudflare 1.1.1.1, Google 8.8.8.8 등) 소속이면 통신사로의 유출은 없습니다.
- 이 명령은 운영체제의 DNS를 테스트합니다. 브라우저에서 ‘보안 DNS’(DNS over HTTPS)를 켰다면 브라우저는 그 업체로 조회를 보냅니다.
DNS 유출 해결 방법
- VPN 앱의 DNS 유출 방지(‘VPN DNS 사용’이라고도 함)와 킬 스위치를 켜세요.
- VPN이 IPv6도 처리하는지 확인하거나 네트워크 어댑터에서 IPv6를 끄세요. IPv6 조회는 IPv4 전용 VPN을 우회할 수 있습니다.
- 암호화된 DNS를 켜세요. Chrome, Edge, Brave에서는 ‘보안 DNS’, Firefox에서는 ‘DNS over HTTPS’를 켜고 VPN의 리졸버나 신뢰하는 업체를 고르세요.
- 공유기나 수동으로 설정한 DNS가 VPN 설정을 덮어쓰지 않는지 확인한 뒤 다시 테스트하세요.