【完全版】digコマンドとは?基本から応用まで実例付きで丁寧に解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年5月)

✔このような方へ向けて書かれた記事となります

「digコマンドの使い方が知りたい」

「digコマンドが役立つ場面を教えて」

「digコマンドの実例が見てみたい」

✔当記事を通じてお伝えすること

  • digコマンドとは?
  • digコマンドの書き方やオプションの一覧
  • digコマンドの実例

当記事では、digコマンドについての基本的な使い方はもちろん、オプション一覧や応用した方法を具体例付きで詳しく解説していきます。

ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

digコマンドについて知っておくべき基礎事項4選

digコマンドを扱う上での基本的なことをまずは見ていきます。

digコマンドを使いこなすためには、必ず理解しておくことが必要です。

  • digコマンドとは
  • 基本的な構文
  • クエリとは?
  • なぜdigコマンドを知るべきか

digコマンドとは

digコマンドは、DNS(ドメインネームシステム)サーバーに問い合わせをおこない、さまざまな情報を取得するためのネットワーク関連のコマンドラインツールです。

digコマンドを使用することで、ドメイン名やIPアドレスの情報を調べたり、DNSサーバーの応答時間を測定したりすることができます。

digとは、Domain Information Groper(ドメイン情報グローパー)の略称です。

基本的な構文

基本的なdigコマンドの構文は以下のようになります。

dig [オプション] [ドメイン名] [クエリタイプ]

簡易的な例としては、「dig + ドメイン名」で、以下のようになります。

$ dig itc.tokyo
; <<>> DiG 9.16.1-Ubuntu <<>> itc.tokyo
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41726
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

digコマンドのクエリとは?

digコマンドのクエリとは、DNSサーバーへの問い合わせ種類を指定するもの。

なぜならDNSサーバーには、さまざまな情報がDNSレコードと呼ばれる形式で格納されており、個別に問い合わせをする必要があるからです。

以下は、いくつかの一般的なクエリタイプの例です。

  • A: IPv4アドレス
  • AAAA: IPv6アドレス
  • MX: メール交換サーバーの情報
  • CNAME: キャノニカル名(別名)
  • NS: ドメインのネームサーバー
  • PTR: IPアドレスからドメイン名(逆引き)
  • TXT: テキスト情報(SPFレコードやDKIMレコードなど)
  • SOA: Start of Authority(権威データの開始)

特定のクエリタイプを指定して問い合わせる場合は、以下のようにコマンドを実行します。

dig example.com MX

クエリタイプを指定せずにdigコマンドを実行すると、デフォルトでAレコードが問い合わせられます。

なぜdigコマンドを知るべきか

digコマンドは、ネットワーク管理者やシステム管理者にとって重要なツールです。

DNSの問題をトラブルシューティングする際や、ネットワークのパフォーマンスを調べる際に役立ちます。

ウェブ開発者やサイト運営者にとっても、digコマンドはドメイン設定やサーバー管理に役立ちます。

digコマンドを理解しておくことで、効率的に問題を解決するスキルを身につけることができます。

digコマンドのオプション一覧

digコマンドにはさまざまなオプションが存在します。

参考にしていろいろと試してみてください。

オプション名説明
+short結果を簡潔な形式で表示する。dig example.com A +short
+traceDNSのルートサーバーからのトレース結果を表示する。dig example.com A +trace
+time=秒数タイムアウトまでの秒数を指定する。dig example.com A +time=5
@DNSサーバー問い合わせるDNSサーバーを指定する。dig @8.8.8.8 example.com A
+recurse再帰的な問い合わせを行う。dig example.com A +recurse
+norecurse非再帰的な問い合わせを行う。dig example.com A +norecurse
+aaonlyAuthoritative Answerのみ表示する。dig example.com A +aaonly
+noallすべてのデフォルトのフラグをオフにする。dig example.com A +noall
+answerANSWERセクションのみ表示する。dig example.com A +noall +answer
+stats統計情報を表示する。dig example.com A +stats
+multiline複数行の形式で結果を表示する。dig example.com A +multiline

digコマンドのインストール

もしdigコマンドのインストールが済んでいないなら、以下の方法で準備しましょう。

OSにより、インストール方法は異なります。

  • Windowsでのインストール方法
  • macOSでのインストール方法
  • Linuxでのインストール方法

Windowsでのインストール方法

Windowsにはデフォルトでdigコマンドがインストールされていません。

以下の手順でインストールしましょう。

  1. BINDの公式サイト(https://www.isc.org/bind/)からWindows用のBINDインストーラーをダウンロード
  2. ダウンロードしたインストーラーを実行し、BINDをインストール
  3. インストールが完了したら、コマンドプロンプトを開いて「dig」と入力し、正常にインストールされたことを確認

macOSでのインストール方法

macOSにはデフォルトでdigコマンドがインストールされています。

そのため、追加のインストールは不要です。

Linuxでのインストール方法

Linuxの場合、ディストリビューションによってインストール方法が異なります。

以下に、主要なディストリビューションごとのインストール方法を示します。

Ubuntu/Debian系

sudo apt install dnsutils

Fedora

sudo dnf install bind-utils

CentOS/RHEL

sudo yum install bind-utils

digコマンドの実践的な使い方

digコマンドを実際に使ってみましょう。

以下がいくつかの具体例です。

  • ドメイン名からIPアドレスを調べる方法
  • IPアドレスからドメイン名を調べる方法
  • メールサーバー情報を調べる方法
  • DNSサーバーの応答時間を測定する方法

ドメイン名からIPアドレスを調べる方法

クエリ「A」は、Aレコードを意味します。

指定しなくとも、デフォルトがAレコードです。

dig example.com A

IPアドレスからドメイン名を調べる方法

逆引きのクエリ「PTR」を使います。

dig -x 192.0.2.1 PTR

メールサーバー情報を調べる方法

メールサーバーは「MX」クエリが該当します。

dig example.com MX

DNSサーバーの応答時間を測定する方法

+statsオプションで、統計情報を表示。

dig example.com +stats

digコマンドの応用的な使い方

応用した使い方も見ていきましょう。

具体的な方法を知れば、実践で即使えます

  • 特定のDNSサーバーに問い合わせる方法
  • DNSレコードの種類を指定して問い合わせる方法

特定のDNSサーバーに問い合わせる方法

DNSサーバーを指定したうえで、ドメイン情報を取得します。

dig @8.8.8.8 example.com A

DNSサーバー内のキャッシュ情報などを調べるときに有効です。

DNSレコードの種類を指定して問い合わせる方法

レコード種類を指定するのは、クエリの役割です。

dig example.com TXT

トラブルシューティングと実例

よくあるトラブルとその対処方法を見ていきましょう。

なぜなら事前に知っておけば、回避できるものもあるからです。

  • よくあるエラーメッセージと対処法
  • digコマンドを使ったトラブルシューティング例

よくあるエラーメッセージと対処法

よくあるエラーメッセージとその対処法をご紹介します。

connection timed out; no servers could be reached

DNSサーバーに到達できなかった場合のエラー。

ネットワーク接続や指定したDNSサーバーの状態を確認してください。

NXDOMAIN

指定したドメインが存在しない場合のエラー。

ドメイン名のスペルミスや存在しないドメインを指定していないか確認してください。

digコマンドを使ったトラブルシューティング例

例えば、メールが送信できない問題が発生した場合、digコマンドを使ってMXレコードを調べ、設定が正しいか確認することができます。

dig example.com MX

DNSによる問題を調べられるのです。

他のDNSツールとの比較

ネットワーク関連のツールと比較してみましょう。

使い分けることでより効率よく作業できるようになります。

  • nslookupとの違い
  • hostコマンドとの違い
  • それぞれのツールの適用シーン

nslookupとの違い

nslookupは、DNS情報を調べるためのコマンドラインツールです。

digコマンドに比べて機能が限定的で、出力のカスタマイズが難しい点がデメリットといえます。

digコマンドはより詳細な情報を取得でき、柔軟なオプションが利用できるため、多くのシステム管理者に好まれています。

hostコマンドとの違い

hostコマンドもDNS情報を調べるためのコマンドラインツールです。

digコマンドに比べて出力結果がシンプルで、簡単な検索に適しています

digコマンドは、より詳細な情報やカスタマイズが必要な場合に適しているといえるでしょう。

それぞれのツールの適用シーン

上記のコマンドをまとめて、それぞれの適用シーンをまとめました。

  • digコマンド: 詳細なDNS情報が必要な場合や、トラブルシューティングに適している
  • nslookup: シンプルなDNS情報の調査や、初心者にとって使いやすいインターフェイスが必要な場合に適している
  • hostコマンド: 簡単なドメイン名やIPアドレスの検索に適している

まとめ:digコマンドを使ってネットワーク管理をマスターしよう

当記事の内容をまとめます。

  • digコマンドは、DNS情報を調べる際に非常に便利なツール
  • digコマンドでは、レコード種類別に問い合わせが可能
  • digコマンドには、ほかのコマンドと比べてより詳細が見られるメリットがある

digコマンドの使い方を理解したら、実際に手元の環境で試してみましょう。

ほかのいろいろなコマンドと合わせて使用することで、さらなる知識を身につけられます。

タイトルとURLをコピーしました