DNS_PROBE_FINISHED_NXDOMAIN:原因と対処法
· 読了目安 1 分
エラーの意味
ブラウザーがウェブサイトに接続する前に、ドメインネームシステム(DNS)に、その名前の背後にあるアドレスを問い合わせます。NXDOMAIN は、DNS からの「この名前は存在しません」という応答です。Chrome は DNS_PROBE_FINISHED_NXDOMAIN(「このサイトにアクセスできません」)、Firefox は「お探しのサイトが見つかりません」、Safari は「Safari がサーバを見つけられません」と表示します。接続は試みられておらず、ブラウザーは接続先のアドレスを得られませんでした。
この点では、良い知らせです。ウェブサーバーはまったく関係していません。問題は DNS にあり、訪問者側(入力ミス、古いキャッシュ、誤ったリゾルバー)か、運営者側(ドメインやそのレコードがなくなった)のどちらかです。
よくある原因
訪問者側
- アドレスの入力ミス、またはすでに存在しないドメインへのリンク。
- パソコン、ブラウザー、ルーターの DNS キャッシュに、古い「存在しません」という応答が残っている。
- インターネットに到達できないリゾルバー、ドメインをブロックしている VPN や社内ネットワーク、ペアレンタルフィルター。
- DNS を横取りするウイルス対策ソフトや「ウェブ保護」ソフト。
運営者側
- ドメインが期限切れです。 レジストラは、期限切れの時点でネームサーバーを削除し、その瞬間から名前は存在しなくなります。昨日まで動いていたサイトの、最も多い原因です。
- A レコードまたは AAAA レコードがありません。 新しいホスティングや新しい DNS プロバイダーへの移行後、
wwwまたはドメイン本体のレコードが作成されていません。 - ネームサーバーを変更したが、ゾーンが空です。 ドメインを Cloudflare や新しいホスティングに向けたものの、先にレコードをコピーしていません。
- 設定していないサブドメインです。
shop.example.comは、shopのレコードがないため 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 日)中であれば、支払いの数分後にドメインを復元します。その後の償還期間には、復元手数料がかかり、時間もかかります。ドメインを自動更新に設定し、登録されているカードが有効であることを確認してください。ドメインが期限切れになると、メール、ウェブサイト、すべてのサブドメインが同時にダウンします。
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 モニターは、レコードを期待する値と比較し、1 つでも消えたり変わったりした瞬間にアラートを出します。外部からのウェブサイトのチェックは、名前が名前解決されなくなった瞬間を検知します。どちらもウェブサイト監視に含まれ、最初の 50 件のモニターは無料です。レコードがご自身のサーバー上にある場合は、Deep Fix が復元します。
次のステップ
ダウンしても、すぐ対応します。
ご自身のサーバー、または SSH アクセスのあるウェブスペースが対象です。一般的な原因には定額の Quick Fix、それ以外には 15 分単位で請求する Deep Fix を、24 時間体制でご用意しています。ご依頼の前に料金が表示されます。
修復を依頼する