DNS_PROBE_FINISHED_NXDOMAIN: 원인과 해결 방법
· 읽는 데 1분
오류의 의미
브라우저가 웹사이트에 연결하려면 먼저 도메인 네임 시스템(DNS)에 그 이름에 해당하는 주소를 물어봅니다. NXDOMAIN은 “이 이름은 존재하지 않는다”는 DNS의 응답입니다. Chrome은 이를 DNS_PROBE_FINISHED_NXDOMAIN(“이 사이트에 연결할 수 없음”)으로, Firefox는 “Hmm. We're having trouble finding that site”로, Safari는 “Safari에서 서버를 찾을 수 없음”으로 표시합니다. 연결 시도 자체가 없었습니다. 브라우저가 연결할 주소를 받지 못한 것입니다.
한 가지 면에서는 좋은 소식입니다. 웹 서버는 전혀 관여하지 않습니다. 문제는 DNS에 있으며, 방문자 쪽(오타, 오래된 캐시, 잘못된 리졸버)이거나 소유자 쪽(도메인 또는 레코드가 사라짐)입니다.
흔한 원인
방문자 쪽
- 주소의 오타, 또는 더 이상 존재하지 않는 도메인으로 연결되는 링크.
- 컴퓨터, 브라우저, 공유기의 DNS 캐시에 예전의 “존재하지 않음” 응답이 남아 있는 경우.
- 인터넷에 연결할 수 없는 리졸버, 도메인을 차단하는 VPN이나 회사 네트워크, 자녀 보호 필터.
- DNS를 가로채는 백신 또는 “웹 보호” 소프트웨어.
소유자 쪽
- 도메인이 만료되었습니다. 등록 기관은 만료 시점에 네임서버를 제거하며, 그 순간부터 이름이 존재하지 않게 됩니다. 어제까지 작동하던 사이트에서 가장 흔한 원인입니다.
- A 또는 AAAA 레코드가 없습니다. 새 호스트나 새 DNS 제공업체로 옮긴 후
www또는 루트 도메인의 레코드를 만들지 않은 경우입니다. - 네임서버를 바꿨지만 영역(zone)이 비어 있습니다. 도메인을 Cloudflare나 새 호스트로 연결했는데 먼저 레코드를 복사하지 않은 경우입니다.
- 설정한 적 없는 서브도메인.
shop에 대한 레코드가 없어서shop.example.com은 NXDOMAIN을 반환하지만example.com은 작동합니다. - DNSSEC 오류. 제공업체를 바꾼 후 등록 기관에 잘못된 DS 레코드가 있으면 검증하는 리졸버(요즘은 대부분)가 실패를 반환하며, 브라우저는 이를 NXDOMAIN 또는 비슷한 오류로 표시합니다.
- 전파. 방금 네임서버를 변경했고, 일부 리졸버에는 아직 이전의 비어 있는 영역이 보입니다. TTL까지 걸리며, 최악의 경우 24~48시간입니다.
방문자인 경우
- 주소의 철자를 확인하고
www를 붙이거나 빼고 시도해 보세요. - DNS 캐시를 비우세요. Windows:
ipconfig /flushdns, macOS:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder, Linux:sudo resolvectl flush-caches. Chrome에서는chrome://net-internals/#dns를 열고 “Clear host cache”를 클릭하세요. - 공유기를 다시 시작하거나, Wi-Fi를 끈 휴대폰에서 사이트를 시도해 보세요. 거기서 작동하면 내 네트워크의 리졸버가 문제입니다.
- 네트워크 설정에서 리졸버를 공개 리졸버(1.1.1.1 또는 9.9.9.9)로 바꾸세요.
- 아무것도 도움이 되지 않는다면 도메인이 정말로 사라졌거나 고장 난 것이며, 소유자만 해결할 수 있습니다.
직접 운영하는 사이트라면: 먼저 확인할 것
웹사이트 다운 확인 도구를 실행하세요. 중립적인 위치에서 도메인이 확인되는지 알려 줍니다. 확인되지 않으면 여기서 계속하세요. 확인된다면 문제는 방문자 쪽에 있으니 위의 목록을 보내 주세요.
그런 다음 도메인 자체를 살펴보세요.
# 이름이 확인되는가, 누가 응답하는가?
dig +short example.com A
dig +short www.example.com A
dig example.com NS +short
# 권한 있는 네임서버에 직접 질의 (모든 캐시 건너뜀)
dig @ns1.your-dns-provider.com example.com A
# 등록 상태와 만료일
whois example.com | grep -iE 'expir|status'
dig의 응답이 비어 있고 전체 출력에 status: NXDOMAIN이 있으면, 권한 있는 서버에 레코드가 존재하지 않는다는 뜻입니다. whois에 clientHold, redemptionPeriod, pendingDelete 같은 상태가 표시되면 문제는 레코드가 아니라 등록입니다.
# DNSSEC: 끊어진 체인은 검증하는 리졸버에서 SERVFAIL로 나타남
dig @1.1.1.1 example.com A +dnssec | grep -E 'status|flags'
사이트 소유자를 위한 해결 방법
1. 만료된 도메인
등록 기관에 로그인해 갱신하세요. 대부분의 등록 기관은 유예 기간(보통 30일) 중에 결제하면 몇 분 안에 도메인을 복원합니다. 그 이후의 상환(redemption) 기간에는 복원 수수료가 들고 시간이 더 걸립니다. 도메인을 자동 갱신으로 설정하고 등록된 카드가 유효한지 확인하세요. 도메인이 만료되면 메일, 웹사이트, 모든 서브도메인이 한꺼번에 중단됩니다.
2. 누락된 레코드
DNS 제공업체에서 누락된 레코드를 추가하세요. 웹사이트라면 보통 다음과 같습니다.
example.com. A 203.0.113.10
www.example.com. CNAME example.com.
웹 서버의 IP(서버에서 hostname -I 또는 호스팅 업체가 알려 준 주소)를 사용하세요. 서버에 IPv6가 있다면 AAAA 레코드도 추가하고, 없다면 잘못된 레코드를 제거하세요. 변경은 레코드의 TTL 안에 적용되며, 보통 5분에서 1시간입니다.
3. 네임서버 변경 후 비어 있는 영역
네임서버를 전환하기 전에 이전 제공업체에서 영역을 내보내고(dig example.com AXFR @old-ns는 거의 작동하지 않으며, 대부분의 제공업체에 내보내기 버튼이 있습니다) 새 제공업체에서 가져오세요. 이미 전환했다면 새 제공업체에서 레코드를 다시 만드세요. 루트 도메인과 www용 A, 메일용 MX와 TXT, 사용하는 모든 서브도메인입니다. 이전 제공업체에서 목록을 계속 볼 수 있는 경우가 많습니다.
4. DNSSEC
권한 있는 서버에 대한 일반 질의는 작동하는데 dig +dnssec가 SERVFAIL을 반환한다면, 등록 기관의 DS 레코드가 DNS 제공업체의 키와 일치하지 않는 것입니다. 양쪽을 함께 설정할 수 있을 때까지 등록 기관에서 DNSSEC을 제거하거나(DS 레코드 제거), DNS 제공업체의 새 DS 레코드를 등록 기관에 복사하세요.
5. 직접 운영하는 서버에서
웹 서버에는 NXDOMAIN을 일으키는 것이 없으므로 재시작할 것도 없습니다. 그래도 서버 자체의 리졸버가 작동하는지는 확인하세요. 이름을 확인하지 못하는 서버는 업데이트, 메일, API 호출에서 실패합니다.
resolvectl status | head -20
dig +short example.com @127.0.0.53
호스팅 업체의 문제인 경우
호스팅 업체가 DNS도 운영하고(공유 호스팅에서 흔함) 제어판에서는 레코드가 올바르게 보이는데도 외부에서 확인되지 않는다면 다음 내용을 보내세요.
안녕하세요. 제 도메인 example.com이 약 11:00 UTC부터 확인되지 않습니다(NXDOMAIN). 제어판의 레코드는 올바르게 보이며 도메인은 2027년까지 등록되어 있습니다. 귀사 네임서버의 DNS 영역과 도메인이 아직 해당 네임서버에 위임되어 있는지 확인해 주시겠습니까?
다음번을 막으려면
내 도메인의 NXDOMAIN은 거의 항상 잊어버린 만료일이거나 복사하지 않은 레코드입니다. DNS 모니터는 레코드를 기대하는 값과 비교해 레코드가 사라지거나 바뀌는 순간 알림을 보내며, 외부에서 하는 웹사이트 확인은 이름이 확인되지 않기 시작하는 순간을 잡아냅니다. 둘 다 웹사이트 모니터링에 포함되며 처음 50개의 모니터는 무료입니다. 그리고 레코드가 직접 운영하는 서버에 있다면 Deep Fix로 복원할 수 있습니다.
다음 단계
다운되었나요? 당사가 대응합니다.
직접 운영하는 서버나 SSH 접근이 가능한 웹 공간에서: 흔한 원인은 고정 가격의 Quick Fix로, 나머지는 15분 단위로 청구되는 Deep Fix로 24시간 처리합니다. 주문 전에 가격을 확인할 수 있습니다.
복구 요청하기