안드로이드 비공개 DNS vs DoH 앱
Android 비공개 DNS는 앱 없이 DNS over TLS로 조회를 암호화합니다. DoH 앱이 더 나은 경우, 둘의 충돌, 그리고 둘 다 해결하지 못하는 것.
"안드로이드 암호화 DNS"를 검색해 봤다면 아마 두 가지 답을 만났을 것입니다. 하나는 앱은 필요 없고 비공개 DNS만 켜면 된다고 말합니다. 다른 하나는 DNS over HTTPS 앱을 설치하라고 말합니다. 둘 다 일리가 있습니다. 같은 문제를 다른 방식으로 해결하고, 서로 다른 곳에서 실패합니다. 이 가이드는 각각의 동작 방식, 약한 부분, 고르는 방법을 설명합니다. 저희는 DoH 클라이언트가 포함된 GreenTunnel을 만드는 회사이니 그 점을 염두에 두고 읽어 주세요.
비공개 DNS란 정확히 무엇인가요
Google은 Android 9에 비공개 DNS를 추가했습니다. 보통 설정 → 네트워크 및 인터넷 → 비공개 DNS에 있지만, 정확한 경로는 제조사마다 다릅니다. 선택지는 세 가지입니다.
- 사용 안함: 조회가 현재 네트워크가 지정한 DNS 서버로 평문으로 전송됩니다.
- 자동: 기본값입니다. Android는 네트워크 자체 DNS 서버로 DNS over TLS를 시도하고, 그 서버가 지원하면 사용합니다. 지원하지 않으면 조회는 평문으로 남습니다. 흔히 기회주의 모드라고 부르며, 대부분의 가정 및 모바일 네트워크에서는 사실상 암호화가 전혀 없다는 뜻입니다.
- 비공개 DNS 제공업체 호스트 이름: 제공업체의 호스트 이름을 입력합니다. 예를 들어 Google Public DNS는
dns.google입니다. 그러면 Android는 반드시 그 서버를 씁니다. 연결할 수 없어도 조용히 평문 DNS로 돌아가지 않습니다. Google의 발표에 따르면 대신 해당 네트워크를 인터넷에 연결되지 않은 것으로 표시합니다.
DNS over TLS는 RFC 7858로 표준화되어 있으며 전용 포트 853을 씁니다. 이 전용 포트는 장점이자 약점입니다. 깔끔하고 가볍지만, 네트워크가 알아보고 차단하기도 쉽습니다.
Android의 DNS over HTTPS는요?
많은 가이드가 놓치는 미묘한 점이 있습니다. 2022년 7월 Google은 Google Play 시스템 업데이트를 통해 Android 11 이상 기기가 이를 지원하는 잘 알려진 DNS 서버에 대해 DNS over TLS 대신 DNS over HTTP/3를 쓴다고 발표했습니다. 출시 당시 대상 제공업체는 Google과 Cloudflare였습니다. Google의 글은 사용하는 DNS 서비스는 바뀌지 않고 전송 방식만 바뀐다고 강조합니다. 호스트 이름은 여전히 같은 비공개 DNS 칸에 입력합니다. 임의의 DoH 주소를 넣는 칸은 없으며, 다른 제공업체의 경우 비공개 DNS는 DNS over TLS로 남습니다.
DoH 앱은 무엇이 다른가요
DoH 앱, 또는 DoH 클라이언트가 있는 VPN 앱은 Android의 VPN 슬롯을 통해 기기 전체의 DNS를 맡습니다. 각 조회는 RFC 8484에 정의된 https://cloudflare-dns.com/dns-query 같은 DoH 서버로 HTTPS 안에 담겨 전달됩니다.
- 포트 443을 씁니다. 네트워크에서 보면 다른 HTTPS 연결과 거의 같습니다. DNS over TLS를 막으려고 포트 853을 차단하는 네트워크도 대개 이것은 건드리지 않습니다.
- 서버와 프로토콜을 고를 수 있습니다. 앱은 DoH와 DoT 제공업체를 함께 제공하고 서로 전환할 수 있습니다.
- 네트워크의 리졸버를 완전히 피할 수 있습니다. 좋은 클라이언트는 DoH 서버의 고정 부트스트랩 IP 주소로 연결하므로, DNS 서버를 찾는 일조차 네트워크의 DNS에 의존하지 않습니다.
- VPN 슬롯을 차지합니다. Android는 한 번에 하나의 VPN만 허용합니다. DoH 앱은 다른 VPN 앱과 함께 실행할 수 없습니다.
나란히 비교
| 비공개 DNS(호스트 이름) | DoH 앱 | |
|---|---|---|
| 추가 앱 필요 | 아니요 | 예 |
| 프로토콜 | DNS over TLS, 또는 Android 11+에서 일부 잘 알려진 제공업체는 DNS over HTTP/3 | DNS over HTTPS(일부 앱은 DoT도 제공) |
| 포트 | DoT는 853 | 443 |
| 서버가 차단되면 | 설정을 바꿀 때까지 네트워크가 인터넷 없음으로 표시됨 | 앱에 따라 다름. 일부는 다른 제공업체로 전환 |
| VPN 슬롯 사용 | 아니요 | 예 |
| 다른 VPN 앱과 함께 사용 | 예, 아래에서 설명하는 충돌이 있음 | 아니요, VPN은 한 번에 하나만 |
| HTTPS 이름 필터링 대응 | 아니요 | 앱이 그 기능도 제공하는 경우에만 |
비공개 DNS가 약한 부분
- 포트 853을 막는 네트워크. 일부 회사, 학교, 공용 Wi-Fi는 이를 차단합니다. 호스트 이름 모드에서는 네트워크가 고장 난 것처럼 보입니다. 어떻게 나타나는지는 모바일 데이터에서는 열리고 Wi-Fi에서는 안 열리나요?를 참고하세요.
- 네트워크별 특성. 설정은 전체에 적용되지만 네트워크는 그렇지 않습니다. 모바일 데이터에서 잘 되는 호스트 이름이 특정 Wi-Fi에서는 실패할 수 있습니다.
- 공용 Wi-Fi 로그인 페이지. 로그인 페이지가 있는 호텔이나 카페 네트워크는 로그인을 마칠 때까지 고정된 호스트 이름과 잘 맞지 않을 수 있습니다. 잠시 자동으로 바꾸면 대개 해결됩니다.
- 자동은 암호화되지 않는 경우가 많습니다. 대부분 ISP의 DNS 서버는 DNS over TLS를 제공하지 않으므로, 자동은 조용히 평문 DNS로 남습니다.
DoH 앱이 약한 부분
- 계속 실행되어야 합니다. Android가 배터리 절약을 위해 앱을 멈추면 DNS 보호도 멈춥니다. Android에서 VPN이 계속 실행되게 하는 방법을 참고하세요.
- 다른 VPN을 막습니다. 같은 휴대폰에서 회사 VPN과 함께 쓸 수 없습니다.
- 서버가 IP 주소로 차단될 수 있습니다. 네트워크가 DoH 서버의 주소를 차단하면 포트 443도 소용없습니다. 다른 제공업체로 전환할 수 있는 클라이언트가 더 잘 대처합니다.
충돌: 비공개 DNS와 VPN 앱
Android 10부터는 VPN 앱이 실행 중일 때도 비공개 DNS 호스트 이름이 적용됩니다. Google의 Public DNS 안내에는 Android 9에서는 VPN이 비공개 DNS보다 우선했고 이것이 Android 10에서 수정되었다고 적혀 있습니다. 실제로는 호스트 이름을 설정한 다음 자체 DNS가 있는 VPN 앱을 켜면, Android가 조회를 비공개 DNS 제공업체로 대신 보낸다는 뜻입니다. VPN의 암호화 DNS와 차단 목록은 그 이름들을 보지 못합니다. 그 제공업체가 현재 네트워크에서 차단되어 있다면 모든 사이트가 열리지 않습니다.
GreenTunnel을 쓰는 동안에는 비공개 DNS를 사용 안함 또는 자동으로 설정하세요. 이는 사이트가 여전히 차단되나요?에서 가장 먼저 확인하는 항목 중 하나입니다.
GreenTunnel은 DNS를 어떻게 처리하나요
GreenTunnel은 암호화 DNS 클라이언트가 내장된 로컬 VPN입니다. 설정 → DNS에서 세 제공업체 중 하나를 고르거나 자동을 선택합니다.
- Cloudflare, DoH,
https://cloudflare-dns.com/dns-query - Google, DoH,
https://dns.google/dns-query - Quad9, DoT,
dns.quad9.net:853
자동은 Cloudflare, Google, Quad9 순으로 시도하고, 응답한 곳을 계속 사용합니다. 각 제공업체는 내장된 부트스트랩 IP로 연결하므로 ISP의 DNS에는 전혀 묻지 않습니다. DoQ는 지원하지 않습니다. 전체 안내는 DoH와 DoT 설명에 있습니다.
DNS 전용 앱과의 차이는 조회 이후에 일어나는 일입니다. GreenTunnel은 단순한 이름 필터링을 통과하기 위해 HTTPS 연결의 첫 패킷 모양도 바꾸고, Requester에서 앱별 연결을 보여 주며, URL 검사로 사이트를 테스트할 수 있습니다. 저희는 사용자가 조회하는 도메인을 절대 수집하지 않습니다.
암호화 DNS의 솔직한 한계
암호화 DNS는 어떤 방식으로 쓰든 한 종류의 차단, 즉 DNS 응답을 조작하거나 버리는 네트워크만 해결합니다. 네트워크가 HTTPS 핸드셰이크에서 사이트 이름을 읽는 것은 막지 못하며, 이를 위해서는 패킷 변형이나 ECH가 필요합니다. IP 차단도 뚫지 못합니다. IP 주소를 숨기지 않으며, ISP는 여전히 사용자가 어떤 주소에 연결하는지 볼 수 있습니다. 고른 DNS 제공업체가 ISP 대신 조회를 보게 되므로, 정책을 신뢰할 수 있는 곳을 고르세요. GreenTunnel 역시 익명화 도구가 아닙니다.
무엇을 써야 할까요
- 정상적인 네트워크에서 조회만 암호화하고 싶나요? 제공업체 호스트 이름을 설정한 비공개 DNS가 간단하고 앱도 필요 없습니다.
- 네트워크가 포트 853을 막거나, DNS를 조작하거나, 사이트 이름을 필터링하나요? DoH 앱, 가능하면 이름 필터링까지 처리하는 앱이 더 잘 맞습니다. 비공개 DNS는 사용 안함 또는 자동으로 바꾸세요.
- 이미 회사 VPN을 쓰고 있나요? VPN 앱은 하나만 실행할 수 있으니 비공개 DNS를 계속 쓰세요.
GreenTunnel은 Android와 iPhone에서 무료이며, 선택형 Premium이 있습니다. 동작 방식은 홈페이지에서 확인하세요.
자주 묻는 질문
Android 비공개 DNS는 DoH와 DoT 중 무엇을 쓰나요?
포트 853의 DNS over TLS입니다. 2022년 Google Play 시스템 업데이트 이후 Android 11 이상은 이를 지원하는 일부 잘 알려진 제공업체에 대해 대신 DNS over HTTP/3를 쓰며, Google과 Cloudflare부터 시작했습니다. 사용자 지정 DoH 주소는 입력할 수 없습니다.
GreenTunnel을 쓰는 동안 비공개 DNS를 켜 둬야 하나요?
사용 안함 또는 자동으로 설정하세요. 제공업체 호스트 이름을 설정하면 Android가 그 제공업체로 조회를 직접 보내므로, GreenTunnel의 암호화 DNS와 내 차단 목록을 건너뛰게 됩니다.
DoH가 DoT보다 더 개인정보 보호에 좋나요?
둘 다 조회를 똑같이 잘 암호화합니다. 차이는 알아보고 차단하기가 얼마나 쉬운가입니다. DoT는 전용 포트를 쓰고, DoH는 포트 443의 HTTPS에 섞여 듭니다.
암호화 DNS로 모든 사이트의 차단이 풀리나요?
아니요. DNS 기반 차단만 해결합니다. 이름 필터링으로 차단된 사이트는 더 많은 것이 필요하고, IP 주소로 차단된 사이트는 완전히 다른 경로가 필요합니다.
출처
- Android Developers Blog, DNS over TLS support in Android P Developer Preview(2018년 4월).
- Google Security Blog, DNS-over-HTTP/3 in Android(2022년 7월).
- Google Public DNS, Get started(Android 비공개 DNS 설정과 Android 9 VPN 관련 참고), 2026년 11월 확인.
- IETF, RFC 7858: DNS over TLS.
- IETF, RFC 8484: DNS Queries over HTTPS.