nslookupコマンドの使い方|正引き・逆引き・レコード指定と結果の見方(digとの対応つき)

nslookupコマンドの使い方

nslookupコマンドは、DNSサーバーに直接問い合わせて、ドメイン名とIPアドレスの対応や、MX・TXTなどのレコードを調べるコマンドです。「nslookup 名前 DNSサーバー」の形で問い合わせ先を選べ、-type=MXのようにレコードの種類も指定できます。hostsファイルやPCのキャッシュを通らない点が、ブラウザとの違いです。

この記事でわかること

  • 正引き・逆引き・DNSサーバーを指定した問い合わせの書き方
  • -typeで指定するレコードの種類と、調べる場面の対応
  • 「権限のない回答」「UnKnown」など結果の読み方とエラーの意味
  • nslookupとブラウザで結果が食い違う理由
  • Resolve-DnsName(PowerShell)とdig(Linux)との対応

一次情報: Microsoft Learn「nslookup」(参照)/Microsoft Learn「DNS クライアントの名前解決に関する問題のトラブルシューティング」(参照)/BIND 9「dig」(参照)※2026年9月時点

DNSのようにサーバー側まで見られるようになると、任される範囲が変わってきます。ネットワークエンジニアの年収が経験や資格でどう変わるかは、別の記事で整理しました。

目次

nslookupコマンドとは?DNSサーバーに直接問い合わせるコマンド

nslookupコマンドとは、DNSサーバーに問い合わせて、名前とIPアドレスの対応などを表示するコマンドです。Microsoftの資料では、DNSのインフラの診断に使うツールと位置づけられています。

ドメイン名からIPアドレスを調べるのが「正引き」、IPアドレスから名前を調べるのが「逆引き」です。nslookupはどちらにも使え、メールの配送先(MX)やドメインの設定(TXT)など、ほかのレコードも引けます。

nslookup www.example.com
nslookup 203.0.113.80
nslookup www.example.com 8.8.8.8

1行目が正引き、2行目が逆引きです。3行目のように2つ目に書いたアドレスが、問い合わせ先のDNSサーバーになります。省略した場合の問い合わせ先は、PCに設定された既定のDNSサーバーです。

結果の見方|「権限のない回答」と「UnKnown」

下は日本語版Windowsの出力例で、アドレスは説明用の値にしています。上の2行が「どのDNSサーバーが答えたか」、下が「答えの中身」です。

サーバー:  UnKnown
Address:  192.168.10.1

権限のない回答:
名前:    www.example.com
Addresses:  2001:db8::80
          203.0.113.80
出力の各項目の意味
表示意味気にするべきか
サーバー:/Address:答えたDNSサーバーの名前とIP想定したDNSサーバーかを確かめる
UnKnownDNSサーバー自身の名前を逆引きできなかった答えの中身には影響しない
権限のない回答そのドメインを管理するサーバー以外が、キャッシュなどから答えた普通の状態。異常ではない
名前:/Addresses:問い合わせた名前と、対応するIPアドレスIPv6とIPv4の両方が出ることがある
Aliases:別名(CNAME)がある場合の本来の名前CDNなどを使うサイトでよく出る

「権限のない回答」は、エラーではありません。社内や回線業者のDNSサーバーは、ほかのサーバーから聞いた答えを覚えておき、それを返します。その答えが、そのドメインの持ち主のサーバーから直接来たものではない、という意味の表示です。

nslookupの出力は上下2つに分けて読む

上の2行|答えたDNSサーバー
サーバー
サーバー名。逆引きできなければUnKnown
Address
問い合わせ先のIP。想定したサーバーか確かめる
下の行|答えの中身
権限のない回答
キャッシュなどからの答え。普通の状態
名前・Addresses
問い合わせた名前と対応するIP
Aliases
CNAMEがあるときの別名

図:上は「誰が答えたか」、下は「答えの中身」。UnKnownと権限のない回答は異常ではない

nslookupでレコードの種類を指定する|-typeの使い方

何も指定しないと、nslookupは名前に対応するアドレスを返します。メールやドメインの設定を調べたいときは、「-type=」でレコードの種類を指定してください。

nslookup -type=MX example.com
nslookup -type=TXT example.com
nslookup -type=NS example.com

Microsoftの資料には、「-type=A+AAAA」のように組み合わせる例も載っています。「-debug」を付ければ、送受信したパケットの詳細まで出せます。

-type で指定する主なレコードと調べる場面
レコード中身こんなときに引く
A名前に対応するIPv4アドレスWebサーバーの引っ越し後の確認
AAAA名前に対応するIPv6アドレスIPv6でだけつながらない
CNAME別名の転送先CDNやクラウドの名前に向いているか
MXメールの配送先サーバーと優先度メールが届かない、届き先を変えた
TXT任意の文字列(送信ドメイン認証など)なりすまし対策の設定を確かめる
NSそのドメインを管理するDNSサーバードメインの管理先を移した
SOAゾーンの管理情報(更新番号など)ゾーンの更新が反映されたか
PTRIPアドレスに対応する名前逆引きの設定を確かめる

表のレコード名は、PowerShellのResolve-DnsNameの資料にある種類の一覧と同じです。1つの問い合わせで全部を引く「ANY」もあります。ただ、ANYには最小限しか答えないDNSサーバーもあるので、必要な種類を1つずつ指定する方が確実です。

対話モードで続けて調べる

引数を付けずに「nslookup」とだけ打つと、プロンプトが「>」に変わる対話モードになります。同じDNSサーバーに、条件を変えながら何度も問い合わせるときに便利です。

対話モードでよく使うサブコマンド
入力できること
server 8.8.8.8問い合わせ先のDNSサーバーを切り替える
set type=MX以降の問い合わせのレコードの種類を変える
set debug応答の詳細(TTLなど)を表示する
set all今の設定をまとめて表示する
exit対話モードを終える

対話モードで名前を打ち間違えると、サブコマンドのつもりが問い合わせとして扱われることもあるので要注意です。Microsoftの資料でも、認識できないコマンドはコンピューター名として解釈される、とされています。

nslookupのエラーの読み方

問い合わせが失敗したときの表示は、Microsoftの資料に一覧があります。どの表示が出たかで、原因が「名前の側」か「DNSサーバーの側」かに分かれます。

nslookupの主なエラーと意味
表示意味次の一手
Non-existent domainその名前やドメインが存在しないつづり・ドメインの登録状況を確かめる
No records名前はあるが、指定した種類のレコードが無い-typeの指定が正しいか確かめる
timed out一定時間・一定回数の再試行でも応答が無いDNSサーバーまでの経路・53番ポートの通信
No response from serverDNSサーバーのサービスが動いていない別のDNSサーバーを指定して比べる
Server failureDNSサーバー内部の不整合で答えられないサーバー側の管理者に確認する
RefusedDNSサーバーが問い合わせを断った問い合わせを許可された相手か確かめる

「Non-existent domain」と「No records」は、名前の側の問題です。「timed out」や「No response from server」は、DNSサーバーまで届いていないか、サーバーが動いていない状態を示します。

複数のDNSサーバーがあるときの落とし穴

PCに複数のDNSサーバーが設定されている場合、nslookupは1つ目(プライマリ)にしか問い合わせません。Microsoftのトラブルシューティング資料にも、そう明記されています。

一方、Windowsの通常の名前解決は、応答が無ければ2つ目以降のDNSサーバーにも問い合わせます。1つ目のDNSサーバーが止まっていると、ブラウザは開けるのにnslookupだけ失敗するのは、このためです。ipconfig /allで「DNS サーバー」の並び順を見て、2つ目のアドレスを指定して打ち直せば切り分けは簡単です。

nslookupとブラウザで結果が違う理由

nslookupで調べたIPアドレスと、ブラウザが実際につないでいるIPアドレスが違う。これはnslookupでよくある戸惑いです。原因は、名前を引く経路が違うことにあります。

Microsoftの資料によると、Windowsの名前解決(DNSクライアント)は次の順番で名前を引きます。

  1. キャッシュを見る。一度引いた結果を覚えている
  2. hostsファイルを見る。C:\Windows\System32\drivers\etc にある
  3. DNSサーバーへ問い合わせる。ここで初めてネットワークに出る

ブラウザやpingはこの順番に乗りますが、nslookupは3番目だけを直接行います。hostsファイルに書いた行や、PCに残っている古いキャッシュは、nslookupの結果には出てきません。

Windowsの名前解決と同じ経路で確かめたいときは、PowerShellのResolve-DnsNameを使います。Microsoftの資料には、hostsファイルに登録した名前をResolve-DnsNameで引く例があります。このときDNSサーバーへの通信は発生せず、hostsの値がそのまま返っていました。

名前を引くコマンドの違い(Windows)
コマンドキャッシュhostsファイルDNSサーバー
nslookup見ない見ない1つ目のサーバーに直接問い合わせる
Resolve-DnsName見る見る(-NoHostsFile で省ける)設定された順に問い合わせる
ping(名前で指定)見る見る設定された順に問い合わせる

ブラウザとnslookupは名前を引く経路が違う

ブラウザ・ping・Resolve-DnsName
1
PCのキャッシュを見る
2
hostsファイルを見る
3
DNSサーバーへ設定順に問い合わせる
nslookup
1
キャッシュは見ない
2
hostsファイルは見ない
3
1つ目(プライマリ)のDNSサーバーに直接問い合わせる

図:nslookupはキャッシュとhostsを通らず、1つ目のDNSサーバーへ直接聞きに行く

digとResolve-DnsNameとの対応

LinuxやmacOSでDNSを調べるときは、digが定番です。BIND 9の資料によると、digは既定で /etc/resolv.conf に書かれたDNSサーバーに、Aレコードを問い合わせます。Windowsで同じことをするなら、nslookupかResolve-DnsNameです。

同じ目的のコマンド対応表
やりたいことnslookupResolve-DnsNamedig
正引きnslookup example.comResolve-DnsName example.comdig example.com
逆引きnslookup 203.0.113.80Resolve-DnsName 203.0.113.80dig -x 203.0.113.80
DNSサーバーを指定nslookup example.com 8.8.8.8-Server 8.8.8.8dig @8.8.8.8 example.com
レコードを指定-type=MX-Type MXdig example.com MX
答えだけ短く出す──+short
ルートから委任をたどる──+trace

digの「+trace」は、ルートサーバーから順に委任をたどって答えにたどり着く過程を表示します。ドメインの管理先を移したあと、どの段階で古い情報が残っているかを探すときに便利です。

現場での使いどころ|DNSの切り替えが反映されたか確かめる

Webサーバーの引っ越しやメールサービスの乗り換えでは、DNSの登録を書き換えます。そのとき「どこまで新しい値になったか」を確かめるのが、nslookupの代表的な使い方です。

DNSの切り替えが反映されたかを確かめる順番

  • Webサーバーの引っ越しやメールの乗り換えの後に使います。
  • 1nslookup -type=NS ドメインそのドメインを管理するDNSサーバーを調べる
  • 2管理サーバーを指定して引く書き換えた値そのものが返るか。古ければ登録作業を見直す
  • 3普段のDNSサーバーで引く古い値ならキャッシュが残っている段階
  • 4set debug でTTLを見るあと何秒で古い値が消えるかの目安にする

図:管理サーバーの値と普段のDNSサーバーの値を比べると、待つだけか直すべきかが決まる

切り替えの確認で押さえること

  • ドメインを管理するサーバーに直接聞く。-type=NSで管理サーバーを調べ、そのサーバーを指定して引くと、書き換えた値そのものを確かめられる
  • 普段使うDNSサーバーにも聞く。古い値が返るなら、キャッシュの保持期間(TTL)が切れるまで待つ段階
  • set debugでTTLを見る。あと何秒で古い値が消えるかの目安になる

管理サーバーでは新しい値、普段のDNSサーバーでは古い値が返るなら、設定は正しく、あとは時間の問題です。管理サーバーでも古い値なら、DNSの登録作業そのものを見直します。

よくある質問

nslookupの「権限のない回答」はエラーですか?

エラーではありません。そのドメインを管理するDNSサーバーではなく、社内や回線業者のDNSサーバーが、以前に聞いた答えを返したという意味です。ふだんの問い合わせでは、この表示が出るのが普通の状態です。

サーバーが「UnKnown」と表示されるのは問題ですか?

問題ありません。答えたDNSサーバー自身のIPアドレスを、名前に逆引きできなかったという表示です。問い合わせた名前の答えは、その下に正しく表示されています。

hostsファイルに書いたのにnslookupに反映されません

nslookupはhostsファイルを見ずに、DNSサーバーへ直接問い合わせるためです。hostsファイルの設定が効いているかは、ping(名前で指定)やPowerShellのResolve-DnsNameで確かめてください。

nslookupとdigはどちらを使えばいいですか?

Windowsではnslookupが標準で入っており、LinuxやmacOSではdigがよく使われます。digは答えだけを短く出す+shortや、委任をたどる+traceが使えるので、DNSの設定を細かく調べるときに向いています。

ブラウザでは開けるのにnslookupだけ失敗するのはなぜですか?

PCに設定された1つ目のDNSサーバーが応答していない可能性があります。nslookupが問い合わせるのは1つ目だけで、ブラウザは2つ目以降にも問い合わせるからです。ipconfig /allでDNSサーバーの並びを確かめ、2つ目を指定して打ち直してみてください。

まとめ

  • nslookupは、DNSサーバーに直接問い合わせて名前とIPの対応やレコードを調べるコマンド
  • 「nslookup 名前 DNSサーバー」で問い合わせ先を選び、-typeでレコードを指定する
  • 「権限のない回答」「UnKnown」は異常ではない
  • hostsファイルとキャッシュを通らないので、ブラウザと結果が違うことがある
  • Windowsの名前解決と同じ経路で見るならResolve-DnsName、Linuxならdig

名前解決の問題は、ネットワークの障害と見分けがつきにくいのが厄介なところです。IPでは届くのに名前では届かない、と切り分けられた時点で、nslookupの出番になります。

DNSやサーバーの側まで調べられるようになると、監視・運用の次の段階が見えてきます。監視オペレーターからインフラエンジニアへ進む道筋を、24か月の段階に分けて整理した記事です。

監視オペレーターからインフラエンジニアへの道筋を見る


免責事項

※本記事はMicrosoftの公式ドキュメント、BIND 9の資料などの公開情報をもとに整理したものです。コマンドの表示や既定値は、OSのバージョンや設定によって変わる場合があります。業務で使う環境では、所属先の手順とベンダーの最新資料をあわせてご確認ください。


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Tanabeです。新卒でSIerに入り、ネットワークの設計から構築、運用保守、クラウド移行まで10年やってきました。その間に転職を3回、CCNPも取りました。

正直に言うと、資格を取っても年収はすぐには上がりませんでした。1回目の転職は失敗、2回目でようやく150万円上がり、3回目で今の事業会社に落ち着いた。動いてみて分かったのは、資格の有無より「現場で何を任されてきたか」で評価が決まる、ということです。

エージェントの言葉を鵜呑みにして、危うく後悔しかけた経験もあります。だからこそ、自分がやらかした失敗をそのまま書いて、同じ回り道をしなくて済むように残しています。転職を考え始めた人が、条件で損をしないための材料にしてもらえたら嬉しいです。

目次