digコマンドの使い方|DNSの名前解決・トラブル調査

digコマンドの使い方|DNSの名前解決・トラブル調査

PR Amazonのアソシエイトとして、ITナレッジライフは適格販売により収入を得ています。

記事の文字数:3,471 / 総アクセス数:1 views

DNSの名前解決やトラブルシューティングに必須のdigコマンドの使い方を初心者向けに解説。基本的な正引き・逆引きから、+shortや+traceオプション、特定のDNSサーバーへの問い合わせ方法まで網羅的に紹介します。

Linuxユーザにお勧めの本 ↗

最新版

ゼロからはじめるLinuxサーバー構築・運用ガイド 第2版 動かしながら学ぶWebサーバーの作り方

難易度
実用性
最新度

Rocky Linux対応。実際にWebサーバーを公開するまでのプロセスを体験できる、最も確実で実践的なガイドブックです。

初心者向け

わかばちゃんと学ぶ サーバー監視

難易度
実用性
読みやすさ

マンガと図解が中心で圧倒的に読みやすい。負荷調査の手法がスッと理解できるようになります。

新しいLinuxの教科書 第2版

難易度
実用性
読みやすさ

一生モノの基礎知識が身につく定番書です。

ゼロからわかる Linuxコマンド200本ノック―基礎知識と頻出コマンドを無理なく記憶に焼きつけよう!

難易度
実用性
習得度

アウトプット重視で記憶に定着しやすい。反復練習でLinux操作が自由自在になります。

エンジニア1年生のための世界一わかりやすいLinuxコマンドの教科書

難易度
実用性
読みやすさ

Webサイトにアクセスできない、メールが届かない、ドメインを移管したのに新しいサーバーに繋がらない…。 ネットワークやサーバーの運用をしていると、このような「DNSDNS [ディーエヌエス]Domain Name System。インターネット上のドメイン名とIPアドレスを紐付けて管理・変換するシステム(ドメインネームシステム)に関連するトラブル」に遭遇することがよくあります。

そんな時に原因究明の強力な武器となるのが、DNSサーバーに対して直接問い合わせを行い、詳細な応答結果を取得できる「dig(Domain Information Groper)コマンド」 です。

本記事では、ネットワークトラブルシューティングに欠かせない dig コマンドの基本的な使い方から、出力結果の読み解き方、現場で役立つ実践的な活用例までをわかりやすく解説します。

記事のポイント

  • digは、DNSサーバーに問い合わせを行い、DNSレコードや応答内容を詳しく確認できる代表的なコマンド。
  • 古くからある nslookup よりも詳細な情報が得られ、スクリプトへの組み込みもしやすい。
  • 問い合わせ先のDNSサーバーを直接指定できるため、ドメイン移管時などの確認に便利。
  • +short で結果のみをシンプルに表示したり、+trace でDNSの反復的な問い合わせ(非再帰問い合わせ)経路を追跡したりできる。

digとは?何ができるコマンドなのか

dig コマンドは、DNSサーバーに様々な問い合わせ(クエリ)を送信し、その応答結果を表示するためのツールです。

インターネット上の住所である「IPIP [アイピー]Internet Protocol。インターネット通信の基本プロトコルアドレス」と、人間が覚えやすい「ドメイン名(例: example.com)」を変換する仕組みがDNSです。dig を使うことで、「このドメインのIPアドレスは何ですか?」「このドメインのメールサーバーはどこですか?」といった質問をDNSサーバーに直接投げかけることができます。

nslookupとの違い

同じような目的のコマンドとして nslookup が有名ですが、DNSの詳細なトラブルシューティングでは dig がよく利用されます。 その理由は以下の通りです。

  • DNS応答を詳しく確認できる: どちらもデフォルトではシステムに設定されたDNSリゾルバに問い合わせますが、dig はDNS応答のHEADER、ANSWER、AUTHORITY、ADDITIONALなどを確認できるため、詳細なトラブル調査に向いています。
  • 出力のパースしやすさ: オプション(+shortなど)を活用することで出力をシンプルにでき、シェルスクリプトなどで結果を再利用しやすい設計になっています。

digの基本構文と主要なオプション

digの基本構文

Terminal window
dig [@DNSサーバー] [ドメイン名] [レコードタイプ] [オプション]

頻出のオプション

オプション内容使用例
+short余分な情報を省き、問い合わせ結果をシンプルに出力します。dig google.com +short
+traceルートDNSサーバーから目的のDNSサーバーまで、順を追って問い合わせる過程(反復問い合わせ / 非再帰問い合わせ)をすべて表示します。dig google.com +trace
+noall +answerデフォルトの冗長な出力から、ANSWER SECTION(実際の回答部分)だけを抽出して表示します。dig google.com +noall +answer
-x [IPアドレス]逆引き(IPアドレスからドメイン名を調べる)を行います。dig -x 8.8.8.8

digの出力情報の見方

オプションなしで dig を実行すると、少し見慣れない形式で出力が表示されます。主要なセクションの意味を理解しておきましょう。

Terminal window
$ dig example.com
; <<>> DiG 9.16.1-Ubuntu <<>> 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
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 86400 IN A 93.184.216.34
;; Query time: 10 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Fri Aug 14 12:00:00 JST 2026
;; MSG SIZE rcvd: 56

1. HEADER (ヘッダ)

status: NOERROR の部分が最も重要です。ここを見ることで、問い合わせが成功したかどうかがわかります。

  • NOERROR: DNS問い合わせ自体はエラーなく処理された。
  • NXDOMAIN: 問い合わせた名前がDNS上に存在しないことを示します。
  • SERVFAIL: DNSサーバーが問い合わせを正常に処理できなかった。原因はDNSサーバーの設定ミスや上位DNSサーバーへの問い合わせ失敗など、さまざま。

2. QUESTION SECTION (質問セクション)

自分がDNSサーバーに何を問い合わせたかが表示されます。 上記の例では「example.comIN (Internet) の A レコードを教えて」と質問しています。

3. ANSWER SECTION (回答セクション)

最も確認すべき、問い合わせに対する実際の回答です。

example.com. 86400 IN A 93.184.216.34

左から順に「ドメイン名」「TTL(DNSキャッシュに保持できる時間を秒数で表したもの)」「クラス(IN)」「レコードタイプ(A)」「結果(IPアドレス)」を表しています。

4. AUTHORITY SECTION / ADDITIONAL SECTION (権威・追加セクション)

AUTHORITY SECTION: 問い合わせに関連する権威情報(NSやSOAなど)が表示されます。 ADDITIONAL SECTION: ANSWERやAUTHORITYなどに関連する追加情報が表示されます。単純な名前解決の確認であれば無視して構いません。

現場で使える!digの活用例

1. 基本的な正引きと逆引き

正引き(ドメイン名からIPアドレス) 結果だけが欲しい場合は +short を使います。

Terminal window
dig google.com +short

逆引き(IPアドレスからドメイン名) アクセスログに残っている不審なIPアドレスの正体を調べるときなどに使います。

Terminal window
dig -x 8.8.8.8 +short

2. 特定のレコード(MX, TXTなど)を確認する

メールが届かないトラブルの際は MX レコードを、SPF(迷惑メール対策)の設定を確認する際は TXT レコードを調べます。

Terminal window
# メールサーバーの確認
dig gmail.com MX +short
# TXTレコード(SPFなど)の確認
dig google.com TXT +short

3. 特定のDNSサーバーに直接問い合わせる(ドメイン移管時に便利)

ドメインの引っ越し(ネームサーバーの変更)を行った直後は、各DNSキャッシュサーバーがTTLに従って以前の情報を保持するため、問い合わせるDNSサーバーによって一時的に異なる結果が返ることがあります。

特定のDNSサーバーを指定して dig を実行すれば、「新しいサーバーには正しくレコードが設定されているか」「GoogleのパブリックDNS(8.8.8.8)ではもう新しいIPアドレスが返ってくるか」などをピンポイントで確認できます。

Terminal window
# Google Public DNS (8.8.8.8) に対して問い合わせる
dig @8.8.8.8 example.com
# 新しく設定した権威DNSサーバー(ns1.new-server.com)に対して直接問い合わせる
dig @ns1.new-server.com example.com

4. DNSの経路を追跡する(+trace)

DNSの名前解決は、ルートサーバー(インターネットの頂点)から .com のサーバー、そして目的のドメインを管理するサーバーへと、バケツリレーのように反復的に問い合わせ(非再帰問い合わせ)を行って完了します。

どこで設定がおかしくなっているのかわからない場合、+trace オプションを使うとその過程をすべて可視化できます。

Terminal window
dig example.com +trace

出力結果を上から追っていくことで、「親のDNSサーバーは正しいネームサーバーを教えているか」「子のネームサーバーは正しくAレコードを返しているか」など、障害の切り分けが可能になります。

まとめ:digを使いこなすために

  • dig はDNSのトラブルシューティングに不可欠な強力なコマンド。
  • 結果だけを知りたいときは +short、整理された情報が見たいときは +noall +answer を活用する。
  • @ を使って問い合わせ先のDNSサーバーを指定することで、特定のDNSリゾルバから見た名前解決結果を確認できる。
  • 複雑なDNSトラブルの際は +trace を使って名前解決のプロセス全体を追跡する。

ネットワークトラブルに遭遇した際は、まず dig を使って「DNSの名前解決は正常に行われているか?」を疑う癖をつけると、原因究明がスムーズになります。ぜひ使い方をマスターしてください。


以上で本記事の解説を終わります。
よいITライフを!
ITナレッジライフ 運営者
この記事を書いた人

Z (ITナレッジライフ)

現役のITエンジニア。Linux、プログラミング、IT用語など、日々の業務で得た「痒いところに手が届く」技術情報を発信しています。

プロフィールと編集ポリシーを見る

Linuxユーザにお勧めの本 ↗

最新版

ゼロからはじめるLinuxサーバー構築・運用ガイド 第2版 動かしながら学ぶWebサーバーの作り方

難易度
実用性
最新度

Rocky Linux対応。実際にWebサーバーを公開するまでのプロセスを体験できる、最も確実で実践的なガイドブックです。

人気記事


記事を評価

Thanks!
目次
Scroll to Top