nslookupって何?DNSを調べるコマンド

インターネットを使っていて、「このドメインのIPアドレスは?」「メールサーバーはどこ?」と調べたくなることがありますよね。
nslookup(name server lookup:ネームサーバールックアップ)は、DNS(Domain Name System)の情報を調べるためのコマンドラインツールです。
DNSって何?インターネットの住所録
まずは、DNSの基本を理解しましょう。
DNSの役割:
- ドメイン名(example.com)をIPアドレス(192.0.2.1)に変換
- 人間が覚えやすい名前をコンピュータが理解できる番号に翻訳
- インターネットの「電話帳」のような存在
身近な例:
あなた:「google.com にアクセスしたい」
↓
DNS:「google.com = 142.250.196.78 です」
↓
ブラウザ:「142.250.196.78 に接続します」
nslookupはこのDNSに質問を投げかけるツールなんです。
nslookupができること
ドメイン名からIPアドレスを調べる
- example.com → 192.0.2.1
- 正引き(Forward Lookup)
IPアドレスからドメイン名を調べる
- 192.0.2.1 → example.com
- 逆引き(Reverse Lookup)
メールサーバーを調べる
- どのサーバーがメールを受け取るか
- MXレコードの確認
ネームサーバーを調べる
- ドメインを管理しているサーバー
- NSレコードの確認
その他のDNS情報
- テキストレコード(TXT)
- エイリアス(CNAME)
- IPv6アドレス(AAAA)
nslookupが使われる場面
ウェブサイトが見られない時
- DNSの名前解決に問題がないか確認
- 正しいIPアドレスが返ってくるか検証
メールが届かない時
- メールサーバーの設定を確認
- MXレコードが正しいかチェック
ドメイン移転時
- DNSの切り替えが完了したか確認
- 新しいサーバーを参照しているか検証
セキュリティ診断
- DNSの設定ミスを発見
- 不正なDNSサーバーを検出
システム管理
- ネットワークのトラブルシューティング
- DNS設定の動作確認
nslookupの基本的な使い方
それでは、実際にnslookupを使ってみましょう。
最もシンプルな使い方
ドメイン名からIPアドレスを調べる:
nslookup example.com
実行結果の例:
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: example.com
Address: 93.184.216.34
表示される情報:
- Server:問い合わせ先のDNSサーバー
- Address:DNSサーバーのIPアドレスとポート番号(#53)
- Non-authoritative answer:キャッシュからの回答
- Name:ドメイン名
- Address:IPアドレス
IPアドレスからドメイン名を調べる(逆引き)
nslookup 8.8.8.8
実行結果の例:
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
8.8.8.8.in-addr.arpa name = dns.google.
GoogleのパブリックDNSサーバーのアドレスだと分かりますね。
特定のDNSサーバーに問い合わせる
デフォルトではなく、特定のDNSサーバーに問い合わせたい場合:
nslookup example.com 8.8.8.8
構文:
nslookup [調べたいドメイン/IP] [使用するDNSサーバー]
よく使うパブリックDNSサーバー:
- 8.8.8.8:Google Public DNS
- 1.1.1.1:Cloudflare DNS
- 208.67.222.222:OpenDNS
WindowsとLinux/macOSの違い
基本的な使い方は同じですが、出力形式が少し異なります。
Windows:
サーバー: UnKnown
Address: 192.168.1.1
権限のない回答:
名前: example.com
Address: 93.184.216.34
日本語で表示されます。
Linux/macOS:
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: example.com
Address: 93.184.216.34
英語で表示されます。
nslookupの2つのモード
nslookupには、2種類の使い方があります。
非対話モード(Non-Interactive Mode)
特徴:
- コマンドを1回実行して終了
- 1つの情報だけ調べたい時に便利
- シンプルで分かりやすい
使い方:
nslookup example.com
実行すると結果が表示されて、すぐにプロンプトに戻ります。
対話モード(Interactive Mode)
特徴:
- nslookupを起動したまま複数の問い合わせができる
- 詳細な調査をする時に便利
- 様々な設定を変更できる
起動方法:
nslookup
プロンプトが変わります:
>
使用例:
> example.com
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: example.com
Address: 93.184.216.34
> google.com
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: google.com
Address: 142.250.196.78
> exit
終了方法:
exitと入力- または
Ctrl + C
DNSレコードタイプの指定
DNSには様々な種類の情報(レコード)があります。
nslookupで特定のレコードタイプを指定して調べられます。
Aレコード(IPv4アドレス)
最も基本的なレコード:
nslookup -type=A example.com
または対話モードで:
> set type=A
> example.com
実行結果:
Non-authoritative answer:
Name: example.com
Address: 93.184.216.34
AAAAレコード(IPv6アドレス)
IPv6アドレスを調べる:
nslookup -type=AAAA example.com
実行結果:
Non-authoritative answer:
example.com AAAA IPv6 address = 2606:2800:220:1:248:1893:25c8:1946
MXレコード(メールサーバー)
メールサーバーを調べる:
nslookup -type=MX example.com
実行結果:
Non-authoritative answer:
example.com mail exchanger = 10 mail.example.com.
表示される情報:
- 10:優先度(数字が小さいほど優先)
- mail.example.com:メールサーバーのホスト名
複数のMXレコードがある場合:
example.com mail exchanger = 10 mail1.example.com.
example.com mail exchanger = 20 mail2.example.com.
example.com mail exchanger = 30 mail3.example.com.
優先度10のサーバーが最初に使われ、障害時には20、30の順で使われます。
NSレコード(ネームサーバー)
ドメインを管理しているネームサーバーを調べる:
nslookup -type=NS example.com
実行結果:
Non-authoritative answer:
example.com nameserver = a.iana-servers.net.
example.com nameserver = b.iana-servers.net.
CNAMEレコード(エイリアス)
別名(エイリアス)を調べる:
nslookup -type=CNAME www.example.com
実行結果:
www.example.com canonical name = example.com.
Name: example.com
Address: 93.184.216.34
www.example.comはexample.comの別名だと分かります。
TXTレコード(テキスト情報)
テキスト形式の情報を調べる:
nslookup -type=TXT example.com
実行結果:
example.com text = "v=spf1 include:_spf.example.com ~all"
example.com text = "google-site-verification=abc123def456"
TXTレコードの用途:
- SPFレコード(メール送信認証)
- DKIM(メール署名)
- ドメイン所有者の証明
- その他の設定情報
SOAレコード(ゾーン情報)
ドメインの管理情報を調べる:
nslookup -type=SOA example.com
実行結果:
example.com
origin = ns.icann.org
mail addr = noc.dns.icann.org
serial = 2024110401
refresh = 7200
retry = 3600
expire = 1209600
minimum = 3600
各項目の意味:
- origin:プライマリネームサーバー
- mail addr:管理者のメールアドレス
- serial:ゾーンファイルのバージョン番号
- refresh:セカンダリサーバーの更新間隔
- retry:再試行間隔
- expire:失効までの時間
- minimum:ネガティブキャッシュの有効期間
ANYレコード(すべて)
すべての情報を取得:
nslookup -type=ANY example.com
利用可能なすべてのレコードタイプが表示されます。
注意:
一部のDNSサーバーは、セキュリティやパフォーマンスの理由でANYクエリを制限しています。
対話モードの便利なコマンド
対話モードでは、様々な設定ができます。
レコードタイプの設定
> set type=MX
> example.com
(MXレコードが表示される)
> set type=A
> example.com
(Aレコードが表示される)
使用するDNSサーバーの変更
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
> example.com
(8.8.8.8に問い合わせた結果)
デバッグモードの有効化
詳細な情報を表示:
> set debug
> example.com
または、より詳細な情報:
> set d2
> example.com
大量の情報が表示されます。トラブルシューティングに便利です。
タイムアウトの設定
> set timeout=10
10秒でタイムアウトします。
再試行回数の設定
> set retry=5
失敗時に5回まで再試行します。
クエリクラスの設定
通常は使いませんが、特殊な場合に:
> set class=CHAOS
主なクラス:
- IN:インターネット(デフォルト)
- CHAOS:Chaosnet
- HESIOD:Hesiod
すべての設定を表示
> set all
現在の設定がすべて表示されます。
実践的な使用例

実際の場面での使い方を見ていきましょう。
Webサイトが見られない時の診断
問題: example.comにアクセスできない
診断手順:
ステップ1:名前解決ができるか確認
nslookup example.com
結果が返ってくる場合:
- DNS自体は正常
- サーバーやネットワークの問題の可能性
結果が返ってこない場合:
- DNSの問題
- ドメインが存在しない可能性
ステップ2:複数のDNSサーバーで確認
# 自分のDNSサーバー
nslookup example.com
# GoogleのDNS
nslookup example.com 8.8.8.8
# CloudflareのDNS
nslookup example.com 1.1.1.1
結果が異なる場合、DNSキャッシュや設定に問題があるかもしれません。
ステップ3:権威サーバーに直接問い合わせ
# ネームサーバーを調べる
nslookup -type=NS example.com
# 権威サーバーに直接問い合わせ
nslookup example.com ns1.example.com
メール送信できない時の診断
問題: example.comにメールが届かない
診断手順:
# MXレコードを確認
nslookup -type=MX example.com
確認ポイント:
- MXレコードが存在するか
- メールサーバーのホスト名が正しいか
- 優先度が設定されているか
メールサーバーのIPアドレスも確認:
nslookup mail.example.com
ドメイン移転後の確認
問題: ドメインを新しいサーバーに移転した
確認手順:
# 現在のIPアドレスを確認
nslookup example.com
# 複数のDNSサーバーで確認
nslookup example.com 8.8.8.8
nslookup example.com 1.1.1.1
# ネームサーバーの変更を確認
nslookup -type=NS example.com
# SOAレコードでシリアル番号を確認
nslookup -type=SOA example.com
DNSの浸透(伝播)には時間がかかります:
- 通常24~48時間
- TTL(Time To Live)の設定による
- 世界中のDNSサーバーに広がるまで待つ必要がある
サブドメインの確認
# wwwサブドメイン
nslookup www.example.com
# メールサブドメイン
nslookup mail.example.com
# FTPサブドメイン
nslookup ftp.example.com
SPFレコードの確認(メールセキュリティ)
nslookup -type=TXT example.com
SPFレコードの例:
"v=spf1 include:_spf.google.com ~all"
これは、Google Workspaceからのメール送信を許可する設定です。
CDNの設定確認
nslookup www.example.com
結果がCDNのIPアドレスを指している場合:
www.example.com canonical name = example.cdn.cloudflare.net.
Name: example.cdn.cloudflare.net
Address: 104.16.123.45
CDNが正しく設定されていることが分かります。
nslookupとdigコマンドの違い
nslookup以外にも、digというDNS調査ツールがあります。
digとは
dig(Domain Information Groper)
- より詳細な情報を表示
- BIND(Berkeley Internet Name Domain)の一部
- システム管理者やエンジニアに人気
主な違い
nslookup:
- シンプルで使いやすい
- Windowsに標準搭載
- 基本的な情報を手軽に確認
dig:
- 詳細で正確な情報
- Linuxに標準搭載
- プロフェッショナル向け
同じ調査をする例
nslookup:
nslookup example.com
dig:
dig example.com
digの出力の方が詳細:
; <<>> DiG 9.18.1 <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 86400 IN A 93.184.216.34
;; Query time: 20 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Mon Nov 04 10:30:00 JST 2024
;; MSG SIZE rcvd: 56
どちらを使うべき?
nslookupがおすすめの人:
- Windowsユーザー
- 簡単な確認だけしたい
- コマンドに慣れていない
digがおすすめの人:
- Linuxユーザー
- 詳細な情報が必要
- DNS設定の深い調査をしたい
両方使えるのがベスト:
状況に応じて使い分けましょう。
nslookupのトラブルシューティング
nslookupで問題が起きた時の対処法です。
「Non-authoritative answer」とは
表示される理由:
- キャッシュされた情報を返している
- 権威サーバーからの直接の回答ではない
問題ではありません:
これは正常な動作です。DNSはキャッシュを使って高速化しています。
権威サーバーから直接回答を得たい場合:
# ネームサーバーを調べる
nslookup -type=NS example.com
# 権威サーバーに直接問い合わせ
nslookup example.com ns1.example.com
「Server failed」エラー
原因:
- DNSサーバーが応答しない
- ネットワーク接続の問題
- ファイアウォールでブロック
解決方法:
1. 別のDNSサーバーを試す:
nslookup example.com 8.8.8.8
2. ネットワーク接続を確認:
# Windows
ping 8.8.8.8
# Linux/macOS
ping 8.8.8.8
3. DNSサーバーの設定を確認:
Windows:
ipconfig /all
Linux/macOS:
cat /etc/resolv.conf
「No response from server」
原因:
- DNSサーバーがダウンしている
- ファイアウォールがポート53をブロック
- タイムアウト
解決方法:
# タイムアウトを延長
nslookup -timeout=10 example.com
または対話モードで:
> set timeout=10
> example.com
「NXDOMAIN」エラー
表示例:
** server can't find example.invalid: NXDOMAIN
意味:
- ドメインが存在しない
- スペルミスの可能性
- ドメインが削除された
確認:
- ドメイン名のスペルを確認
- 別のDNSサーバーで試す
- Webブラウザで直接アクセスしてみる
「SERVFAIL」エラー
原因:
- DNSサーバー側の問題
- 設定エラー
- DNSSEC検証の失敗
解決方法:
# 別のDNSサーバーで確認
nslookup example.com 1.1.1.1
一時的な問題の可能性もあるので、時間をおいて再試行しましょう。
古い情報が表示される
原因:
- DNSキャッシュ
解決方法:
Windows:
ipconfig /flushdns
Linux:
# systemd-resolved
sudo systemd-resolve --flush-caches
# nscd
sudo /etc/init.d/nscd restart
macOS:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
nslookupの代替コマンド

nslookup以外のDNS調査ツールも知っておきましょう。
dig(推奨)
特徴:
- より詳細な情報
- 柔軟なクエリ
- スクリプトに適している
基本的な使い方:
dig example.com
host
特徴:
- シンプルな出力
- 人間が読みやすい
- 短い結果
基本的な使い方:
host example.com
実行結果:
example.com has address 93.184.216.34
example.com has IPv6 address 2606:2800:220:1:248:1893:25c8:1946
example.com mail is handled by 10 mail.example.com.
drill
特徴:
- digに似た機能
- DNSSEC対応
- ldnsパッケージに含まれる
基本的な使い方:
drill example.com
WindowsのResolve-DnsName(PowerShell)
特徴:
- PowerShellのコマンドレット
- オブジェクト指向
- スクリプトに適している
基本的な使い方:
Resolve-DnsName example.com
実行結果:
Name Type TTL Section IPAddress
---- ---- --- ------- ---------
example.com A 86400 Answer 93.184.216.34
nslookupを使ったセキュリティチェック
DNS設定のセキュリティを確認する方法です。
オープンリゾルバーの確認
危険性:
自分のDNSサーバーが誰でも使える状態になっていると、DDoS攻撃に悪用される可能性があります。
確認方法:
外部から自分のDNSサーバーに問い合わせ:
nslookup example.com あなたのDNSサーバーのIP
外部からアクセスできる場合は、設定を見直しましょう。
DNSキャッシュポイズニングの検出
複数のDNSサーバーで結果を比較:
nslookup example.com 8.8.8.8
nslookup example.com 1.1.1.1
nslookup example.com あなたのISPのDNS
結果が異なる場合、キャッシュポイズニングの可能性があります。
DNSSEC対応の確認
残念ながら、nslookupはDNSSECの検証機能が限定的です。
DNSSECを確認するには、digを使う方が適しています。
dig example.com +dnssec
コマンドのチートシート
よく使うnslookupコマンドをまとめました。
基本的なコマンド
# ドメイン名からIPアドレス
nslookup example.com
# IPアドレスからドメイン名(逆引き)
nslookup 8.8.8.8
# 特定のDNSサーバーを使用
nslookup example.com 8.8.8.8
# 対話モードの起動
nslookup
レコードタイプ別
# Aレコード(IPv4)
nslookup -type=A example.com
# AAAAレコード(IPv6)
nslookup -type=AAAA example.com
# MXレコード(メールサーバー)
nslookup -type=MX example.com
# NSレコード(ネームサーバー)
nslookup -type=NS example.com
# CNAMEレコード(別名)
nslookup -type=CNAME www.example.com
# TXTレコード(テキスト)
nslookup -type=TXT example.com
# SOAレコード(ゾーン情報)
nslookup -type=SOA example.com
# すべてのレコード
nslookup -type=ANY example.com
対話モードのコマンド
# レコードタイプの設定
set type=MX
# DNSサーバーの変更
server 8.8.8.8
# デバッグモード
set debug
set d2
# タイムアウト設定
set timeout=10
# 再試行回数
set retry=5
# すべての設定を表示
set all
# 終了
exit
トラブルシューティング
# DNSキャッシュのクリア(Windows)
ipconfig /flushdns
# DNSキャッシュのクリア(Linux)
sudo systemd-resolve --flush-caches
# DNSキャッシュのクリア(macOS)
sudo dscacheutil -flushcache
# DNS設定の確認(Windows)
ipconfig /all
# DNS設定の確認(Linux)
cat /etc/resolv.conf
# 接続確認
ping 8.8.8.8
まとめ:nslookupでDNSをマスターしよう
この記事では、nslookupコマンドの基礎から実践的な使い方まで解説してきました。
重要なポイントのおさらい:
- nslookupはDNS情報を調べるコマンドラインツール
- ドメイン名とIPアドレスの相互変換ができる
- 様々なDNSレコードタイプを調査可能
- 非対話モードと対話モードの2つの使い方がある
- トラブルシューティングに非常に有効
- Windows、Linux、macOSすべてで使える
- digやhostなどの代替ツールも存在
nslookupが活躍する場面:
- Webサイトにアクセスできない時
- メールが送信/受信できない時
- ドメイン移転後の確認
- DNS設定の動作確認
- セキュリティ診断
基本的な使い方:
# 最もシンプル
nslookup example.com
# メールサーバーの確認
nslookup -type=MX example.com
# 特定のDNSサーバーを使用
nslookup example.com 8.8.8.8
# 対話モード
nslookup
> set type=MX
> example.com
> exit
覚えておきたいDNSサーバー:
- 8.8.8.8:Google Public DNS
- 1.1.1.1:Cloudflare DNS
- 208.67.222.222:OpenDNS
次のステップ:
- 実際に自分のドメインで試してみる
- メールサーバーの設定を確認する
- 問題が起きた時の診断手順を覚える
- digコマンドも学んでみる
nslookupは、ネットワーク管理やトラブルシューティングに欠かせない基本ツールです。
まずは簡単なドメイン検索から始めて、徐々に様々なレコードタイプの調査に挑戦してみましょう。
何度か使っているうちに、自然と使い方が身につきますよ!

コメント