はじめに

ホームページにアクセスしたい、でもIPアドレスがわからない…そんな時ってありますよね。nslookupコマンドはドメイン名とIPアドレスを調べるツールです。ネットワークトラブルの調査やDNス設定の確認にめっちゃ役立ちます。

nslookupコマンドとは

nslookupは「Name Server Lookup」の略で、DNS(ドメイン・ネーム・システム)サーバーにクエリを送信してドメイン情報を取得するコマンドです。

ドメイン名からIPアドレスを調べたり、その逆にIPアドレスからドメイン名を調べたり、メールサーバーやネームサーバーの情報を確認できます。ネットワーク管理やトラブルシューティングには欠かせないコマンドですね。

基本構文

1
nslookup [オプション] [ドメイン名またはIPアドレス] [DNSサーバー]

オプションなしで実行するとインタラクティブモードに入ります。単発で調べたい場合はコマンドラインで直接指定するのが便利です。

主なオプション

オプション 説明
-type=A Aレコード(IPv4アドレス)を取得
-type=AAAA AAAAレコード(IPv6アドレス)を取得
-type=MX メールサーバー(MXレコード)を取得
-type=NS ネームサーバー(NSレコード)を取得
-type=CNAME エイリアス(CNAMEレコード)を取得
-type=TXT テキストレコード(TXTレコード)を取得
-type=SOA SOAレコードを取得
-query= 同上(オプション形式)

使用例

例1: ドメイン名からIPアドレスを調べる

1
nslookup google.com

実行結果:

1
2
3
4
5
6
7
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 142.251.41.14
Address: 2607:f8b0:4004:80d::200e

最もよく使う基本的な使い方です。ドメイン名のIPアドレスを調べられます。IPv4とIPv6両方が表示されます。

例2: IPアドレスからドメイン名を調べる(逆引き)

1
nslookup 142.251.41.14

実行結果:

1
2
3
4
5
6
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
14.41.251.142.in-addr.arpa name = nrt13s28-in-f14.1e100.net.
Authoritative answers can be found from:

IPアドレスを指定するとドメイン名を逆引きできます。すべてのIPアドレスが逆引き対応しているわけではないことに注意。

例3: メールサーバー(MXレコード)を調べる

1
nslookup -type=MX google.com

実行結果:

1
2
3
4
5
6
7
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
google.com mail exchanger = 10 smtp.google.com.

Authoritative answers can be found from:

そのドメインのメールサーバーを調べられます。優先度も表示されます。

例4: ネームサーバー(NSレコード)を調べる

1
nslookup -type=NS google.com

実行結果:

1
2
3
4
5
6
7
8
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
google.com nameserver = ns1.google.com.
google.com nameserver = ns2.google.com.
google.com nameserver = ns3.google.com.
google.com nameserver = ns4.google.com.

そのドメインを管理しているネームサーバーの一覧が表示されます。

例5: 別のDNSサーバーを指定して調べる

1
nslookup google.com 1.1.1.1

実行結果:

1
2
3
4
5
6
Server:         1.1.1.1
Address:        1.1.1.1#53

Non-authoritative answer:
Name:   google.com
Address: 142.251.41.14

デフォルトのDNSサーバーではなく、指定したDNSサーバーで調べます。Cloudflare(1.1.1.1)やGoogle DNS(8.8.8.8)など試すときに便利。

例6: CNAMEレコード(エイリアス)を調べる

1
nslookup -type=CNAME www.google.com

実行結果:

1
2
3
4
5
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
www.google.com canonical name = www-dir.google.com.

ドメインのエイリアス(別名)を調べられます。複数ドメイン構成で便利。

例7: TXTレコードを調べる

1
nslookup -type=TXT google.com

実行結果:

1
2
3
4
5
6
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
google.com text = "v=spf1 include:_spf.google.com ~all"
google.com text = "google-site-verification=xxxxx"

SPF設定やドメイン認証情報などのテキストレコードが表示されます。

例8: SOAレコードを調べる

1
nslookup -type=SOA google.com

実行結果:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
google.com
 origin = ns1.google.com
 mail addr = dns-admin.google.com
 serial = 2024010301
 refresh = 900
 retry = 900
 expire = 1800
 minimum = 60

そのゾーン情報(SOAレコード)を確認できます。

例9: すべてのレコード情報を調べる

1
nslookup -type=ANY google.com

実行結果:

1
2
3
4
5
6
7
8
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
google.com nameserver = ns1.google.com.
google.com mail exchanger = 10 smtp.google.com.
google.com text = "v=spf1 include:_spf.google.com ~all"
...

そのドメインのすべてのレコード情報が一覧で表示されます。

例10: インタラクティブモードで複数調査

1
2
3
4
5
nslookup
> google.com
> www.amazon.com
> yahoo.com
> exit

実行結果:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Server:         8.8.8.8
Address:        8.8.8.8#53

Name:   google.com
Address: 142.251.41.14

Name:   www.amazon.com
Address: 205.251.242.103

Name:   yahoo.com
Address: 74.6.143.25

nslookupだけで実行するとインタラクティブモードに入ります。複数のドメインを連続で調べたい場合に便利。exitで終了。

Tips・注意点

nslookupは古いコマンド

nslookupは古いコマンドで、最新のLinuxやmacOSではdighostコマンドの使用が推奨されています。ただし互換性のため多くの環境に残っています。

1
2
# digコマンドでの代替例
dig google.com

DNSキャッシュに注意

ローカルマシンのDNSキャッシュが古い情報を保持していることがあります。別のDNSサーバーを指定して確認するとより正確です。

1
2
nslookup example.com 8.8.8.8  # Google DNS
nslookup example.com 1.1.1.1  # Cloudflare DNS

権威ある回答と非権威の回答

結果に「Authoritative answer」と「Non-authoritative answer」の2種類があります。権威ある回答がより信頼できます。

1
2
Non-authoritative answer:  # キャッシュされた情報
Authoritative answers can be found from:  # 正式なサーバー情報

macOSとLinuxで若干動作が異なる

オプション指定の形式が異なる場合があります。

1
2
3
4
5
# Linux/macOS
nslookup -type=A google.com

# 古い環境
nslookup -type A google.com  # スペース区切り

タイムアウト時の対処

DNSサーバーが応答しない場合、タイムアウトが発生します。別のDNSサーバーを試してみましょう。

実践的な使い方

ドメインが正しく設定されているか確認

新しく取得したドメインがDNSで正しく登録されているか確認できます。

1
nslookup mydomain.com

レコードが見つかればDNS設定は成功。見つからなければ設定待機中または設定ミス。

メールサーバーの確認

メール配信ができない場合、MXレコードが正しく設定されているか確認。

1
nslookup -type=MX example.com

MXレコードがなければメール受信ができません。

ドメイン移行時の動作確認

ドメイン移行時に新しいサーバーのIPが返ってくるか確認。

1
2
3
4
5
# 移行前のIP
nslookup oldserver.com

# 移行後のIP
nslookup oldserver.com 8.8.8.8  # Google DNSで確認(キャッシュを回避)

ネットワークトラブルの診断

通信できない場合、DNS解決がうまくいっているか確認。

1
nslookup google.com

ドメイン名がIPアドレスに解決されないなら、DNS設定に問題がある可能性があります。

SPF・DKIM・DMARCの確認

メール認証設定を確認。

1
nslookup -type=TXT example.com

SPF設定がなければスパムメール認定される可能性があります。

まとめ

nslookupコマンドのポイント:

  • 基本用途: ドメイン名 ⇔ IPアドレスの相互変換
  • -type=MX: メールサーバーを確認
  • -type=NS: ネームサーバーを確認
  • -type=CNAME: エイリアスを確認
  • -type=TXT: SPF設定など認証情報を確認
  • 別DNSサーバー指定: キャッシュを回避した確認が可能
  • よく使う組み合わせ: nslookup domain.com 8.8.8.8

ネットワークトラブルの調査やドメイン設定の確認に超便利なコマンドです。digコマンドより古いですが、簡単な調査ならnslookupで十分。ドメイン周りで困ったら、まずはnslookupで情報を確認してみましょう!