어떤 걸 골라야 하나요?
맨 위에 있는 DNS를 고르면 대개 무난해요. 상위권 차이가 몇 ms 정도라면 다른 기준으로 고르세요.
악성코드·피싱 사이트도 막고 싶다면: Quad9 또는 OpenDNS.
개인정보가 중요하다면: Mullvad, Quad9, Wikimedia는 누가 무엇을 조회했는지 기록하지 않는다고 밝히고 있어요.
위조된 응답을 막고 싶다면: ✓ 표시가 있는 DNS. DNSSEC(도메인 서명)를 검증해요.
공유기나 오래된 시스템처럼 일반 DNS 서버 주소만 넣을 수 있다면 UDP 열을 보세요. 일반 DNS 중 가장 빠른 곳이 1위와 다르면 1위 아래 줄에 따로 나와요.
통신사나 지금 쓰는 네트워크에 어떤 사이트를 조회했는지 보이고 싶지 않다면 DoT나 DoH 주소를 쓰세요. 일반 DNS는 암호화되지 않아 지나가는 네트워크에서 볼 수 있어요.
DNS는 어떻게 바꾸나요?
Android 9 이상: 설정 → 네트워크 → 개인 DNS에서 DoT 호스트 이름(예: one.one.one.one)을 입력해요. 모든 네트워크에 적용되고 암호화돼요.
iPhone과 Mac: Wi-Fi 네트워크마다 DNS 서버를 입력해요. 암호화 DNS를 쓰려면 DNS 공식 사이트에서 구성 프로파일을 받아 설치해요.
Windows 11: 설정 → 네트워크 → 사용 중인 연결 → DNS 서버 할당 → 수동에서 주소를 입력하고 DNS over HTTPS를 켜요.
공유기: DHCP 또는 WAN 설정에 DNS 서버를 넣으면 집의 모든 기기가 사용해요.
브라우저만: Chrome, Edge, Firefox의 '보안 DNS' 설정에서 서비스를 고르거나 DoH 주소를 붙여 넣어요.
각 DNS의 개별 페이지에 단계별 설정 방법이 있어요. 이 페이지의 주소는 클릭하면 복사돼요.
프록시를 쓰고 있어요. 그래도 내 인터넷 결과인가요?
기본적으로는 아니에요. 프록시나 VPN을 켜 두면 브라우저가 그것을 거쳐 각 DNS에 연결하므로 프록시 경로를 재게 되고, 해외 DNS는 모두 프록시 서버와 비슷한 속도로 보여요. 기기나 공유기에 설정한 DNS에는 보통 직접 연결하기 때문에, 실제로 쓸 때의 속도와는 달라요.
내 인터넷을 재려면 직접 연결 규칙(진행 표시줄 옆 버튼)을 추가하세요. 이 테스트에 쓰는 주소만 정확한 호스트 이름과 단일 IP로 직접 연결하고, 다른 트래픽에는 영향을 주지 않아요. Clash/Mihomo, Surge, Shadowrocket, Quantumult X, Loon, sing-box, Xray를 지원하고, 대부분은 이 사이트에서 규칙을 불러와 자동으로 최신 상태를 유지할 수 있어요.
테스트는 어떻게 하나요?
브라우저가 각 DNS에 직접 조회해요. 이 사이트를 거치지 않아요.
먼저 각 DNS와 연결하고 인기 도메인 세 개를 한 번씩 조회해 그 DNS의 캐시에 올려 둬요. 이 단계는 점수에 넣지 않아요. 그다음 10라운드를 재요. 라운드마다 모든 DNS에 한 번씩, 순서를 매번 섞어서 몇 곳씩 동시에 조회해요. 그래서 인터넷이 잠깐 끊겨도 마침 재던 한 곳만 손해 보지 않고 모두에게 똑같이 영향을 줘요. 한 라운드 걸러 한 번은 어디에도 없는 무작위 이름도 조회해요.
결과는 중앙값이라 한 번 느렸다고 점수가 떨어지지 않아요. 시간은 브라우저가 직접 기록한 통신 시간이라 페이지 스크립트가 늦출 수 없어요. 요청마다 새 주소를 쓰고 모든 캐시를 건너뛰므로 DNS 서버 자신만 답할 수 있어요.
UDP와 DoT는 왜 추정값인가요?
브라우저로는 잴 수 없기 때문이에요. 웹페이지는 HTTPS 요청만 보낼 수 있어서, 일반 DNS가 쓰는 UDP(53번 포트), 암호화된 DoT(853번 포트), DoQ는 모두 쓸 수 없어요. 내 인터넷에서 이것들을 잴 수 있는 웹사이트는 없고, 이런 수치를 보여 주는 사이트는 자기 서버에서 쟀거나 짐작한 거예요.
그래서 이 페이지는 UDP와 DoT에 응답하는 바로 그 서버로 DoH(HTTPS로 암호화한 DNS 조회)를 보내요(예: https://1.1.1.1/dns-query). 연결이 열려 있으면 조회 한 번에 드는 시간은 그 서버까지 한 번 왕복하는 시간과 처리 시간뿐이에요. UDP나 DoT 조회도 딱 그만큼 걸리고, HTTPS 때문에 늘어나는 시간은 1ms도 안 돼요. 그래서 ≈를 붙였어요. 일반 DNS 서버가 HTTPS를 지원하지 않는 곳은 억지로 숫자를 만들지 않고 –로 표시해요.
추정으로 알 수 없는 것: HTTPS는 건드리지 않고 53번이나 853번 포트만 막거나 느리게 하거나 변조하는 네트워크.
UDP, DoT, DoQ를 실측하려면 표 위의 명령줄 칸에 있는 명령(진행 막대 옆 '명령줄' 버튼으로도 열 수 있어요)을 서버, Linux 기기, 공유기에서 실행하세요. 모든 프로토콜을 지원하고 같은 DNS 목록을 측정해요.
결과는 얼마나 믿을 만한가요?
측정 방식은 '테스트는 어떻게 하나요?'에 있어요. 그 밖에도 목록은 코드 저장소의 scripts/verify.mjs로 여러 대륙에서 확인했어요. 모든 주소가 이런 조회에 진짜 DNS 응답을 돌려줘야 하고, DNSSEC 지원 여부는 각 서비스의 설명이 아니라 직접 테스트한 결과예요.
Cloudflare, Google, Quad9, Control D, DNS.SB, DNS4EU, IIJ는 웹페이지가 응답 내용을 읽을 수 있게 해 줘서, 페이지가 하나하나 확인하고 진짜 응답만 셉니다. 나머지는 브라우저가 시간만 잴 수 있고 내용은 읽을 수 없어요.
몇 번, 가능하면 시간대를 바꿔서 테스트해 보세요. 밤에 가장 빠른 곳이 사람이 몰리는 시간에도 가장 빠르다는 보장은 없어요.
'첫 조회'는 무슨 뜻인가요?
인기 도메인은 모든 대형 DNS의 캐시에 이미 있어서 어디서나 빠르게 답해요. 한동안 아무도 조회하지 않은 이름은 달라요. DNS 서버가 먼저 그 사이트의 DNS 서버에 물어본 뒤 답을 전해 줘야 하죠. 이게 '첫 조회'예요.
테스트에는 Cloudflare에서 관리하는 무작위 이름을 써요. Cloudflare의 DNS 서버는 중국 본토를 빼고 거의 전 세계에 있어요. 이 시간은 사이트마다 DNS 서버가 어디 있느냐에 따라 달라서, 보여 주기만 하고 순위에는 넣지 않아요. 중국 본토의 DNS가 이 열에서 느려 보이는 건 이 이름들의 서버가 해외에 있기 때문이고, 중국 사이트라면 빠르게 답해요.
DNSSEC는 무엇인가요?
한마디로, 도메인이 자기 DNS 정보에 서명해서 위조할 수 없게 하는 기술이에요. DNSSEC를 검증하는 DNS는 서명을 확인하고 맞지 않는 응답을 거부하므로, 중간에서 누군가 가짜 주소를 끼워 넣을 수 없어요. ✓ 표시는 검증하는 DNS예요. 일부러 서명을 망가뜨린 도메인 dnssec-failed.org를 거부하는지로 테스트해요. 서명된 도메인에만 효과가 있지만 단점은 없어요.
ECS는 무엇이고, 왜 표에 없나요?
ECS(EDNS Client Subnet)는 DNS 서버가 내 IP 주소의 일부를 사이트의 DNS 서버에 전달하는 기능이에요. CDN이 DNS 서버가 아니라 내 근처의 서버를 고를 수 있어서 다운로드나 동영상이 빨라질 수 있지만, 그 대신 내 위치가 조금 더 알려져요.
표에 넣지 않은 건 고정된 특성이 아니기 때문이에요. 확인해 보니 같은 DNS라도 장소나 프로토콜에 따라 전달하기도 하고 안 하기도 했어요. '예'나 '아니요' 한마디로는 오해를 낳아요.
114DNS나 Baidu DNS는 왜 없나요?
일반 DNS만 제공하고 서버가 HTTPS에 전혀 응답하지 않아서, 브라우저로는 연결할 방법이 없어요. 중국 대만의 Quad101도 확인 당시 DoH가 다른 지역에서 응답하지 않아 넣지 않았어요.
내 데이터를 수집하나요?
테스트 결과도, 나에 관한 정보도 저장하지 않아요. 테스트 조회는 브라우저에서 각 DNS로 바로 가고, 인기 공개 사이트와 무작위 이름을 묻기 때문에 나에 관한 정보는 들어 있지 않아요. 결과는 브라우저에만 남고, '공유'를 누를 때만 공유 링크에 적혀요(DNS별 시간만, IP 주소 없음. 국가나 지역을 넣을지는 직접 고를 수 있어요).
한 가지는 1ms.dog의 자체 서버(도쿄)를 거쳐요. 기기가 실제로 쓰는 DNS를 보여 주려고 페이지가 l.1ms.dog 아래의 무작위 이름을 조회하는데, 이 이름의 DNS 서버가 저희 것이에요. 테스트가 끝나면 각 DNS를 통해서도 이런 이름을 하나씩 조회해, 어느 서버가 나에게 응답하는지 봐요. 이 서버에는 조회해 온 DNS의 주소와, 그 DNS가 넘겨준 경우 내 네트워크 대역(ECS: IP 주소의 앞부분, 예: 203.0.113.0/24)이 보여요. 페이지가 api.l.1ms.dog에서 가져갈 수 있도록 메모리에 2분 동안만 두고 그 뒤에는 지워요. 디스크나 로그에는 쓰지 않아요. 이 정보는 나에게만 보이고, 공유 링크나 공유 카드에는 들어가지 않아요.
모든 DNS 조회와 마찬가지로 각 DNS는 내 IP 주소를 보게 되며, 각자의 개인정보 처리방침이 적용돼요. 코드는 GitHub에 공개되어 있어요.