【Windows】「nslookup」コマンドでDNSサーバーがドメインを正しく解決しているかテストする手順

【Windows】「nslookup」コマンドでDNSサーバーがドメインを正しく解決しているかテストする手順
🛡️ 超解決

Webサイトにアクセスできない、特定のネットワークサービスが利用できないといった状況で、DNS名前解決の問題が原因のことがあります。

「nslookup」コマンドは、DNSサーバーがドメイン名を正しくIPアドレスに変換しているかを確認するための強力なツールです。

この記事では、Windows 11を基準に「nslookup」コマンドの基本的な使い方を解説し、DNS関連のトラブル解決を支援します。

【要点】nslookupコマンドでDNS解決の状況を把握する

  • 非対話モードでのドメイン解決: 特定のドメイン名がどのIPアドレスに解決されるかを素早く確認できます。
  • 特定のDNSサーバーでの解決テスト: 使用しているDNSサーバー以外のサーバーで名前解決ができるかをテストし、DNSサーバー自体の問題を切り分けます。
  • 対話モードでの詳細な情報取得: MXレコードやNSレコードなど、DNSに関するより詳細な情報を取得し、メールやサブドメインの設定問題を診断できます。

ADVERTISEMENT

「nslookup」コマンドの概要と役割

nslookupコマンドは、DNS Domain Name Systemサーバーに問い合わせを行い、ドメイン名とIPアドレスの対応関係を調査するツールです。DNSはインターネット上の住所録のようなもので、人間が覚えやすいドメイン名をコンピューターが理解できるIPアドレスに変換する役割を担っています。

このコマンドを利用すると、Webサイトに接続できない、メールが送受信できないなどのネットワークトラブルが発生した際に、その原因がDNSの名前解決にあるのかどうかを診断できます。特に、DNSサーバーが正しく設定されているか、目的のドメイン名が正しいIPアドレスに解決されているかを確認する際に非常に有効です。

nslookupは、大きく分けて「非対話モード」と「対話モード」の2つの利用方法があります。非対話モードは単一の問い合わせに、対話モードは複数の問い合わせや詳細な設定変更を伴う調査に適しています。

「nslookup」コマンドの基本的な使い方

ここでは、Windows 11を対象にnslookupコマンドの基本的な操作手順を解説します。Windows 10でも同様の手順で実行できます。

コマンドプロンプトを起動する

  1. スタートメニューを開く
    タスクバー中央、または左端にあるWindowsロゴのスタートボタンをクリックします。
  2. 検索ボックスに「cmd」と入力する
    スタートメニューが開いたら、そのままキーボードで「cmd」と入力します。検索結果に「コマンドプロンプト」が表示されます。
  3. コマンドプロンプトを起動する
    表示された「コマンドプロンプト」を右クリックし、「管理者として実行」を選択します。ユーザーアカウント制御のダイアログが表示された場合は、「はい」をクリックして許可します。

非対話モードでドメイン名を解決する

非対話モードは、一度のコマンド実行で特定のドメイン名の情報を取得する場合に利用します。

  1. 基本的なドメイン解決を実行する
    コマンドプロンプトで以下の形式でコマンドを入力し、Enterキーを押します。
    nslookup 解決したいドメイン名
    例:nslookup example.com
    これにより、既定のDNSサーバーが「example.com」を解決したIPアドレスが表示されます。
  2. 特定のDNSサーバーを指定して解決する
    既定のDNSサーバー以外で名前解決を試したい場合は、以下の形式でコマンドを入力します。
    nslookup 解決したいドメイン名 指定するDNSサーバーのIPアドレス
    例:nslookup example.com 8.8.8.8
    この例では、Google Public DNSの「8.8.8.8」を使用して「example.com」の名前解決を試します。
  3. メールサーバーの情報を取得する
    ドメインのメールサーバー Mail Exchangerレコード情報を取得するには、タイプ typeを指定します。
    nslookup -type=mx 解決したいドメイン名
    例:nslookup -type=mx example.com
    これにより、そのドメインのメールの配送を担うサーバーの情報が表示されます。

対話モードで詳細な情報を取得する

対話モードは、複数の問い合わせや詳細な設定変更を伴う調査に適しています。モードを切り替えるには「set」コマンドを使用します。

  1. 対話モードを開始する
    コマンドプロンプトで「nslookup」とだけ入力し、Enterキーを押します。
    nslookup
    プロンプトが「>」に変われば、対話モードに入っています。
  2. 問い合わせの種類を設定する
    特定の種類のレコード情報を取得したい場合、「set type」コマンドを使用します。例えば、ネームサーバー Name Serverレコードを取得するには以下のコマンドを入力します。
    set type=ns
    これで、以降の問い合わせはNSレコードを対象とします。他の種類には「mx」メールエクスチェンジャー、「a」アドレス、「ptr」ポインターなどがあります。
  3. 問い合わせ対象のドメイン名を入力する
    設定後、解決したいドメイン名を入力し、Enterキーを押します。
    例:example.com
    先ほど設定したレコードタイプに基づいて、ドメインの情報が表示されます。
  4. DNSサーバーを変更する
    対話モード中に使用するDNSサーバーを変更したい場合は、「server」コマンドを使用します。
    server 指定するDNSサーバーのIPアドレスまたはホスト名
    例:server 8.8.8.8
    これにより、以降の問い合わせは指定したDNSサーバーに対して行われます。
  5. 対話モードを終了する
    調査が完了したら、「exit」と入力してEnterキーを押すと、対話モードを終了し、通常のコマンドプロンプトに戻ります。
    exit

「nslookup」コマンド利用時の注意点とよくある問題

nslookupコマンドを使う際に遭遇しやすい問題とその対処法を説明します。

サーバーが見つからない、またはタイムアウトしてしまう

このメッセージが表示される場合、指定したDNSサーバーが応答していないか、ネットワーク接続に問題がある可能性があります。DNSサーバーのIPアドレスが正しいか、インターネット接続が正常かを確認してください。また、ファイアウォールやセキュリティソフトがDNSクエリをブロックしている可能性も考えられます。

「Non-existent domain」と表示される

これは、問い合わせたドメイン名がDNSサーバー上に存在しないことを意味します。ドメイン名の入力ミスがないか、またはそのドメインが実際に登録されているかを確認してください。新しく登録されたばかりのドメインは、情報がインターネット全体に反映されるまで時間がかかる場合があります。

DNSキャッシュの影響で古い情報が表示される

Windowsは、名前解決の速度を向上させるためにDNSキャッシュを保持しています。古い情報がキャッシュされている場合、nslookupの結果も古くなることがあります。キャッシュをクリアするには、コマンドプロンプトで「ipconfig /flushdns」コマンドを実行します。

  1. コマンドプロンプトを管理者として実行する
    前述の手順でコマンドプロンプトを管理者権限で開きます。
  2. DNSキャッシュをクリアする
    以下のコマンドを入力し、Enterキーを押します。
    ipconfig /flushdns
    「DNS リゾルバー キャッシュが正常にフラッシュされました。」と表示されれば完了です。

ファイアウォールやセキュリティソフトによるブロック

システムに導入されているファイアウォールやセキュリティソフトが、DNSクエリの通信をブロックしている場合があります。一時的にこれらのソフトを無効にしてnslookupを再試行することで、原因を特定できることがあります。ただし、セキュリティリスクが高まるため、テスト後は必ず元の設定に戻してください。

ADVERTISEMENT

Windows 11とWindows 10でのnslookupコマンドの違い

項目 Windows 11 Windows 10
コマンドの機能 nslookupコマンドの基本的な機能やオプションに大きな変更はない nslookupコマンドの基本的な機能やオプションに大きな変更はない
コマンドプロンプトの起動 スタートボタンを右クリックし「ターミナル 管理者」や「コマンドプロンプト 管理者」を選択する スタートボタンを右クリックし「コマンドプロンプト 管理者」を選択する
出力形式の差異 出力される情報の内容や形式にほとんど違いはない 出力される情報の内容や形式にほとんど違いはない

まとめ

「nslookup」コマンドを利用することで、DNSサーバーがドメイン名を正しくIPアドレスに解決しているかを確認し、ネットワークトラブルの原因を特定できるようになります。

非対話モードと対話モードを使い分け、状況に応じた問い合わせを行うことで、より詳細な情報を取得することが可能です。

今回解説した手順と注意点を参考に、DNS関連の問題解決に「nslookup」コマンドを活用してください。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。