DNS 유출이란 — Mac에서 왜 따로 신경 써야 하나
웹사이트 주소를 열 때 브라우저는 먼저 도메인을 IP로 바꾸는 DNS 조회를 합니다. VPN이 IP 트래픽은 터널로 내도, DNS만 기존 Wi-Fi·이더넷 인터페이스의 서버(통신사·카페 공유기)로 나가면 「VPN DNS 유출」 또는 「DNS leak」이라 부릅니다. 상대는 전체 패킷 내용을 항상 볼 수 있는 것은 아니어도, 어떤 호스트 이름을 언제 조회했는지라는 메타데이터가 남을 수 있어, 프라이버시·회사망 정책 측면에서 문제가 됩니다.
macOS는 Apple Silicon·Intel 모두 네트워크 서비스 순서, IPv4·IPv6 병행, iCloud 프라이빗 릴레이, 수동으로 넣은 IKEv2 프로필이 겹치기 쉽습니다. 「연결됨」 표시만으로 DNS가 터널을 탔다고 단정하지 말고, 설정과 검사 도구로 한 번 확인하는 습관이 필요합니다. VPN이 완전한 익명을 보장한다는 식의 표현은 쓰지 않으며, 이 글도 「누출 가능성을 줄이는 설정」에 초점을 둡니다.
① 연결 상태에서 DNS가 어디로 가는지 확인하기
VPN을 연결한 뒤, 신뢰할 수 있는 DNS leak 테스트 페이지(공개 문서로 알려진 서비스)에서 결과를 봅니다. 보고되는 DNS 서버 IP가 본인 ISP나 가정용 공유기 관리 주소와 같다면 유출을 의심합니다. 반대로 VPN 제공자가 안내한 리졸버나, 앱에서 지정한 주소가 보이면 설정이 대체로 맞는 편입니다. 테스트는 Wi-Fi와 유선을 각각, 필요하면 노드를 바꾼 직후에도 반복하는 것이 좋습니다.
터미널에서 scutil --dns를 실행하면 macOS가 실제로 쓰는 DNS 서버 목록과 인터페이스 우선순위를 볼 수 있습니다. VPN 연결 전·후 출력을 비교해, utun 같은 터널 인터페이스 쪽 리졸버가 상단에 오는지 확인하세요. dig example.com만으로는 경로 전체를 대신하기 어렵고, 브라우저의 DNS over HTTPS(DoH)가 별도로 동작하면 웹만 다른 결과가 나올 수 있습니다.
- VPN ON → leak 테스트 → 표시 DNS가 ISP/공유기가 아닌지 확인
scutil --dns로 인터페이스별 리졸버 순서 비교- Safari·Chrome 각각에서 DoH 사용 여부를 설정에서 확인
② macOS 시스템 DNS: 맥북 VPN DNS 설정의 기본층
macOS Ventura 이후는 시스템 설정 → 네트워크 → 사용 중인 Wi-Fi 또는 이더넷 → 세부사항 → DNS에서 서버 목록을 봅니다. 여기에 통신사 DNS가 고정되어 있고 VPN 앱이 덮어쓰지 못하면, 일부 앱만 터널을 타고 DNS는 그대로일 수 있습니다. VPN 사용 중에는 앱이 권장하는 대로 「자동」 또는 앱이 주입한 서버를 쓰게 두고, 수동으로 8.8.8.8 등을 넣어 두었다면 충돌 원인이 되기 쉽습니다.
「네트워크 위치」를 여러 개 만들어 두었다면, 카페용·집용 위치마다 DNS 목록이 달라 VPN 전환 시 예상과 다른 동작이 날 수 있습니다. 위치를 하나로 통일하거나, VPN 연결 시마다 동일 프로필을 쓰는 편이 진단에 유리합니다. 회사 MDM이 DNS 프로필을 밀어 넣는 MacBook은 개인 VPN과 정책이 겹칠 수 있으니, 업무 단말에서는 IT 규정을 먼저 확인하세요.
IPv6가 켜져 있으면 AAAA 조회가 IPv6 경로로 나가 DNS 유출처럼 보이는 경우가 있습니다. 문제 재현 시 시스템 설정에서 해당 인터페이스의 IPv6를 끄고 비교해 보는 방법이 있으나, 가정망 전체 설정이므로 테스트 후 원래대로 되돌리는 것이 좋습니다. 스트리밍·웹 접속이 IPv6에만 의존하는 서비스는 드물지만, ChatGPT 접속 불안정 점검 가이드에서 다루는 것처럼 경로가 꼬일 때는 IPv4 우선으로 잠시 맞춰 보는 것도 한 방법입니다.
③ VPN 클라이언트 DNS 옵션: 유출 방지의 실질 스위치
전용 Mac 클라이언트에는 보통 「DNS 보호」「DNS leak protection」「터널 DNS 사용」 같은 토글이 있습니다. 켜 두면 연결 시 macOS DNS 슬롯을 앱이 관리하는 리졸버로 바꾸려 합니다. 「분할 터널」 또는 「로컬 LAN 허용」을 켜 두면, 사설 IP 대역은 로컬로 두고 DNS만 외부로 나가는 예외가 생길 수 있으니, 프라이버시가 목적이면 분할 범위를 좁히거나 끄고 다시 테스트하세요.
Kill Switch(연결 끊김 시 트래픽 차단)는 IP 유출 방지에 가깝지만, DNS 요청이 잠깐 평문 인터페이스로 튀는 순간을 줄이는 데도 도움이 됩니다. 앱마다 이름은 다르지만 「네트워크 잠금」「연결 해제 시 인터넷 차단」류 옵션을 함께 켜 두는 사용자가 많습니다. 반대로 「신뢰할 수 있는 Wi-Fi에서는 Kill Switch 끔」이면 카페에서 유출이 다시 보일 수 있습니다.
커스텀 DNS(1.1.1.1, 9.9.9.9 등)를 앱에 직접 넣는 기능이 있다면, VPN 업체 문서에 맞는 주소를 쓰는 것이 안전합니다. 임의 공개 리졸버를 넣었다가 필터링 정책이 달라 특정 사이트만 실패하는 경우도 있습니다. macOS에 수동 DNS와 앱 DNS를 동시에 이중으로 넣으면 우선순위 싸움이 나기 쉬우므로, 한 계층만 담당하게 두는 편이 낫습니다.
④ iCloud 프라이빗 릴레이·한글 입력기와의 겹침
iCloud+의 프라이빗 릴레이는 Apple이 제공하는 릴레이 경로로 일부 트래픽을 보냅니다. 서드파티 VPN과 동시에 켜 두면, Safari만 다른 경로를 타거나 DNS 해석 순서가 꼬여 「VPN은 켰는데 leak 테스트는 이상하다」는 혼선이 생깁니다. DNS 유출만 집중해서 점검할 때는 설정 → Apple ID → iCloud → 프라이빗 릴레이를 잠시 끄고, VPN만 단독으로 테스트해 보세요.
Little Snitch, AdGuard, NextDNS 데스크톱 앱, 회사용 ZTNA 에이전트처럼 네트워크 필터를 거는 소프트웨어가 DNS를 가로채면, VPN 앱 화면의 「보호 중」과 실제 조회 경로가 어긋날 수 있습니다. 최근에 설치한 보안·광고 차단 도구가 있다면 일시 비활성화 후 leak 테스트를 반복합니다. 브라우저 확장 프로그램의 Secure DNS도 동일 계열입니다.
⑤ 설정 앱의 수동 VPN 프로필과 앱 VPN — Mac에서 하나만
시스템 설정 → VPN(또는 일반 → VPN 및 기기 관리)에 IKEv2·L2TP 프로필이 남아 있고, 메뉴 막대에서 다른 클라이언트를 켜 두면, DNS가 마지막으로 활성화된 프로필 기준으로 움직입니다. 테스트 시에는 사용하지 않는 프로필 연결을 끄거나 삭제하고, ClashVPN 등 현재 쓰는 앱 하나만 연결하세요. 회사 VPN과 개인 VPN을 동시에 켜 두는 환경에서는 개인 쪽 DNS 설정이 무시되는 일이 흔합니다.
Mac에서 노드·국가를 자주 바꾸는 패턴은 아이폰 VPN 서버 전환 가이드와 같은 계정·목록을 iOS와 공유하는 경우가 많습니다. MacBook만 DNS가 이상하면, iPhone에서는 정상인지 비교하면 앱 문제인지 macOS 네트워크 스택 문제인지 가르기 쉽습니다. PC가 주력이면 윈도우 11 VPN 설치 가이드의 방화벽·어댑터 순서도 참고할 만합니다.
⑥ 브라우저 DoH·DoT와 「맥 VPN DNS 설정」이 어긋날 때
Safari는 iCloud 설정과 연동되는 경우가 있고, Chrome·Firefox·Edge는 각각 「보안 DNS」「DNS over HTTPS」 메뉴가 있습니다. 브라우저가 Cloudflare·Google DoH로 직접 조회하면, 시스템 leak 테스트와 브라우저 내부 결과가 다를 수 있습니다. 「VPN DNS로 통일」이 목표라면 브라우저 보안 DNS를 끄거나 「현재 서비스 제공자」로 두고, VPN 앱 DNS 보호가 켜진 상태에서 다시 측정하세요.
macOS 자체는 설정 앱에서 DoH를 켜는 UI가 제한적이지만, 프로필·서드파티 앱이 DoT(853 포트)를 쓰면 방화벽 로그에 별도 흔적이 남습니다. 회사망에서 853이 막혀 있으면 DNS만 실패하고 웹은 되는 것처럼 보일 수 있으니, 실패 시 일반 DNS(53)로 우회되는지도 함께 봅니다.
⑦ 권장 작업 순서 — macOS DNS 누출 줄이기 체크리스트
아래 순서대로 진행하면 불필요한 설정 변경을 줄일 수 있습니다. 각 단계 뒤에 leak 테스트를 한 번씩 넣으세요.
- 다른 VPN·프라이빗 릴레이·ZTNA를 끄고, 사용할 Mac 클라이언트만 설치·로그인
- 시스템 설정 DNS 목록에서 중복·구 ISP 주소 제거(또는 네트워크 위치 통일)
- 앱에서 DNS 보호·Kill Switch 켠 뒤 연결 → leak 테스트
- 분할 터널·LAN 허용을 켰다면 끄고 재측정
- 브라우저 DoH 끄거나 기본값으로 → 재측정
- 여전히 ISP DNS가 보이면
scutil --dns캡처 후 앱 재설치·macOS 재부팅
재부팅은 utun 인터페이스와 DNS 캐시를 초기화해, 「어제까지 됐는데 오늘만 유출」류 증상에 자주 통합니다. 그래도 동일하면 macOS 소 버전 업데이트와 클라이언트 최신 빌드인지 확인하세요.
⑧ 공유기·게스트 Wi-Fi·핫스팟에서의 DNS
가정용 공유기 관리 화면(192.168.x.x)에서 DNS를 ISP 자동으로 두면, Mac이 DHCP로 받은 리졸버가 VPN보다 먼저 잡히는 경우가 있습니다. 공유기에서 수동 DNS를 빼 두거나, VPN 연결 후 Mac 쪽에서만 리졸버가 바뀌는지 테스트합니다. iPhone 핫스팟을 Mac에 붙일 때도 셀룰러 DNS 정책이 영향을 줄 수 있습니다. 모바일 쪽 기본 설정은 안드로이드 VPN 설치 가이드의 DNS·권한 절과 대조해 보면 이해가 빨라집니다.
캡티브 포털(호텔·공항 로그인 페이지)은 DNS를 로컬로 붙잡는 경우가 많습니다. 포털 통과 전에 VPN을 켜면 로그인 화면이 안 뜨고, 포털 통과 후 VPN을 켜도 잠깐 ISP DNS가 보였다가 사라지는 식으로 테스트 결과가 흔들릴 수 있습니다. 포털 인증 → VPN 연결 → leak 테스트 순서를 지키세요.
⑨ 설정을 맞췄는데도 DNS가 새 보일 때
sleep·lid close 이후 VPN이 끊겼는데 메뉴 막대 아이콘만 남은 것처럼 보이는 경우, DNS는 이미 평문 경로로 돌아갔을 수 있습니다. 앱에서 연결 해제 후 재연결하거나, Wi-Fi를 끄고 10초 뒤 다시 켜 보세요. Ethernet과 Wi-Fi를 동시에 쓰면 서비스 순서에 따라 DNS가 Wi-Fi 쪽으로 고정되기도 합니다. 사용하지 않는 인터페이스는 끄고 단일 경로로 테스트합니다.
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder는 로컬 DNS 캐시만 비우며, 유출 자체를 막지는 않습니다. 캐시 초기화 뒤에도 ISP 서버가 leak 테스트에 나오면 설정 계층을 다시 봐야 합니다. 방화벽 앱이 VPN 프로세스의 DNS 패킷을 차단하면 앱이 폴백 DNS를 쓰기도 하므로, 공식 문서의 예외 규칙이 있다면 그 순서를 따르세요.
⑩ 습관 정리: Mac VPN DNS를 안정적으로 유지하기
요약하면, macOS 시스템 DNS·VPN 클라이언트 DNS 보호·브라우저 DoH·iCloud 프라이빗 릴레이·중복 VPN 프로필을 한 번에 정리하고, 연결할 때마다 짧은 leak 테스트로 확인하는 패턴이 가장 유지보수 비용이 낮습니다. 노드만 바꾸고 DNS 옵션은 건드리지 않아도, 앱 업데이트 후 토글이 초기화되는 경우가 있으니 분기별로 한 번씩 재확인하면 좋습니다.
출처 불명 「무료 Mac VPN」은 DNS를 자체 서버로 돌려 광고·추적 목적으로 쓰는 사례가 보고되어 왔습니다. 공식 클라이언트는 DNS 처리 방식·로그 정책·업데이트 채널이 문서로 열려 있어, 맥북에서 장기적으로 설정을 맞춰 두기에 유리합니다. 문서가 없거나 설치 파일만 돌아다니는 배포 경로는 피하는 것이 좋습니다.
ClashVPN은 macOS·Windows·iOS·Android 등에서 동일 계정으로 노드와 DNS 보호 옵션을 맞추기 쉽게 구성되어 있으며, 신규 가입 후 안내된 범위의 무료 트래픽으로 연결 직후 leak 테스트까지 바로 시험해 볼 수 있습니다. 신용카드 등록 없이 기본 체험을 시작할 수 있고, 유료는 트래픽·기간만 늘리는 구조로 노드·기능을 나누지 않습니다. Mac용 앱이 필요하면 클라이언트 다운로드에서 macOS 안내를 확인하고, 계정이 없다면 로그인·회원가입 후 이 글의 체크리스트대로 DNS 보호를 켠 뒤 테스트해 보세요.