dig・nslookup入門:DNS名前解決とレコード確認コマンド
dig・nslookupとは
dig と nslookup はDNS名前解決の結果をコマンドラインで確認するツールです。ドメインのIPアドレス・メールサーバー・ネームサーバーなどを調べるときに使います。
| ツール | 特徴 |
|---|---|
dig |
出力が詳細で柔軟。スクリプトや詳細調査向け |
nslookup |
シンプルな出力。対話モードあり |
インストール
macOSは標準でインストール済みです。
dig -v # バージョン確認 nslookup # 起動確認
Linuxでインストールされていない場合:
# Ubuntu/Debian sudo apt install dnsutils # CentOS/RHEL sudo yum install bind-utils
dig の基本的な使い方
Aレコード(IPv4アドレス)を引く
dig example.com
;; ANSWER SECTION: example.com. 86400 IN A 93.184.216.34
| フィールド | 説明 |
|---|---|
86400 |
TTL(秒)。キャッシュの有効期限 |
IN |
Internetクラス |
A |
レコードタイプ |
93.184.216.34 |
値(IPアドレス) |
短い出力で確認(+short)
dig example.com +short # 93.184.216.34
スクリプトや素早い確認に使えます。
DNSサーバーを指定して引く
# Google Public DNSで確認 dig @8.8.8.8 example.com # Cloudflare DNSで確認 dig @1.1.1.1 example.com
キャッシュの影響を除いた確認や、特定のDNSサーバーで引けるか確認したい場合に使います。
レコードタイプ別の引き方
Aレコード(IPv4)
dig example.com A +short # 93.184.216.34
AAAAレコード(IPv6)
dig example.com AAAA +short # 2606:2800:21f:cb07:6820:80da:af6b:8b2c
CNAMEレコード(別名)
dig www.example.com CNAME +short # example.com.
MXレコード(メールサーバー)
dig example.com MX +short # 10 mail.example.com.
数字はプリファレンス値で、小さいほど優先されます。
NSレコード(ネームサーバー)
dig example.com NS +short # a.iana-servers.net. # b.iana-servers.net.
TXTレコード(SPF・DKIM・ドメイン認証)
dig example.com TXT +short # "v=spf1 -all"
逆引き(IPアドレス → ドメイン)
dig -x 93.184.216.34 +short # 93.184.216.34.in-addr.arpa.
DNS解決経路をトレースする
dig example.com +trace
ルートDNSサーバーから順に解決経路をすべて表示します。「なぜこのDNSサーバーが返答しているのか」を追うときに使います。
nslookup の基本的な使い方
Aレコードを引く
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
レコードタイプを指定する
nslookup -type=MX example.com nslookup -type=NS example.com nslookup -type=TXT example.com nslookup -type=CNAME www.example.com
DNSサーバーを指定する
nslookup example.com 8.8.8.8
対話モードで複数クエリを実行する
nslookup > server 8.8.8.8 # DNSサーバーを変更 > set type=MX # レコードタイプを変更 > example.com # クエリを実行 > exit
dig と nslookup の比較・使い分け
| 用途 | 推奨コマンド |
|---|---|
| 詳細な情報(TTL・フラグなど)を見たい | dig |
| IPアドレスだけ素早く確認したい | dig example.com +short |
| DNS解決経路をトレースしたい | dig example.com +trace |
| スクリプトでDNS結果を処理したい | dig |
| 対話形式で複数レコードをまとめて調べたい | nslookup |
| シンプルにドメインのIPを確認したい | どちらでも可 |
出力形式の違い
# dig:詳細な応答情報を含む dig example.com +short # 93.184.216.34 # nslookup:接続したDNSサーバー情報も表示 nslookup example.com # Server: 192.168.1.1 # Name: example.com # Address: 93.184.216.34
基本的には dig が推奨されます。出力が構造化されていてスクリプト処理しやすく、+short / +trace などのオプションが豊富です。nslookup は対話モードで複数クエリを試したい場面に向いています。
まとめ
| レコード | 用途 | dig | nslookup |
|---|---|---|---|
| A | IPv4アドレス | dig example.com A |
nslookup -type=A example.com |
| AAAA | IPv6アドレス | dig example.com AAAA |
nslookup -type=AAAA example.com |
| CNAME | 別名 | dig example.com CNAME |
nslookup -type=CNAME example.com |
| MX | メールサーバー | dig example.com MX |
nslookup -type=MX example.com |
| NS | ネームサーバー | dig example.com NS |
nslookup -type=NS example.com |
| TXT | SPF・DKIM等 | dig example.com TXT |
nslookup -type=TXT example.com |
dig +shortでIPだけを素早く確認できる@8.8.8.8でDNSサーバーを指定すれば、ローカルキャッシュを除いた確認ができるdig +traceでルートDNSから解決経路を追える- 日常的な確認は
dig +short、詳細調査はdig、対話的な確認はnslookupで使い分ける
コマンド補完を強化したい場合は「fzf入門:zshのhistory検索・ファイル検索を強化する設定」も参照してください。