Webサイトが表示されないときや、新しくドメインを設定したとき、「設定が本当に反映されているのかな?」と不安になったことはありませんか?
そんなときに大活躍するのが「dig(ディグ)」コマンドです。
今回は、digコマンドの基本的な使い方と、ちょっと難しそうに見える実行結果の読み方を簡単に解説します。
digコマンドってなに?
dig(Domain Information Groper)は、DNSサーバーに問い合わせをして、ドメインに関する情報を取得するためのコマンドです。
簡単に言えば、「このWebサイトのIPアドレスを教えて」と、DNSサーバーに直接問い合わせするためのツールです。
digのインストール
もし手元の環境にdigコマンドが無い場合は、まずインストールを行いましょう。
Ubuntu/Debian系であれば、「dnsutils」パッケージをインストールします。
$ sudo apt update $ sudo apt install dnsutils
RedHat系であれば「bind-utils」パッケージをインストールします。
# dnf install bind-utils
どんなときに使う?
digコマンドは、主に以下のような場面でよく使われます。
- ドメインやホスト名が、正しくサーバーのIPアドレスに紐づいているか確認したいとき
- DNS(AレコードやMXレコードなど)の設定変更が反映されたかチェックしたいとき
- Webサイトにアクセスできない原因が、DNSの設定にあるのか調べたいとき
【基本】まずは一番シンプルな使い方
digコマンドの使い方はとても簡単です。
ターミナルを開いて、以下のように入力するだけです。
dig ホスト名(FQDN)
ホスト名は基本的に、「ホスト名」+「ドメイン名」を組み合わせたFQDN(Fully Qualified Domain Name)形式で指定します。
実際に確認を行う場合は、以下の実行例にあるように調べたいホスト名を入力してください。
ワンポイント解説 「ネイキッドドメイン」「ゾーンAPEX」とは?
「example.com」のように、頭に「www」などのホスト名が付いていない状態のドメインを「ネイキッドドメイン(Naked Domain)」や「ゾーンAPEX(Zone Apex)」などと呼びます。
近年のWebサイトでは、「www.example.com」ではなく、ホスト名を省略して「example.com」のままでWebサイトにアクセスできるように設定されていることが一般的です。
この場合、ドメイン名そのものがホスト名(サーバーの場所)としての役割も兼ねています。
実行例
実際の実行結果を見てみましょう。
ここでは「example.com」を指定して実行してみます。
$ dig example.com ; <<>> DiG 9.18.39-0ubuntu0.24.04.5-Ubuntu <<>> example.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32487 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 135 IN A 104.20.23.154 example.com. 135 IN A 172.66.147.243 ;; Query time: 0 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP) ;; WHEN: Thu Jul 09 13:25:21 JST 2026 ;; MSG SIZE rcvd: 72
実行すると、英語のテキストがズラズラっと表示されますが、まず注目すべきは「;; ANSWER SECTION:」と書かれた部分で、ここが「質問に対する回答」になります。
ANSWER SECTIONの読み方
「ANSWER SECTION」に表示されている、以下の1行を詳しく読んでみましょう。
example.com. 135 IN A 104.20.23.154
- example.com. : 調べた名前(ドメイン名やホスト名)
- 135 : TTL(情報の有効期限。この秒数だけキャッシュされます)
- A :レコードの種類(「A」はIPv4アドレスを意味します)
- 104.20.23.154 :レコードの値(今回判明したIPアドレスです)
まずは、この「ANSWER SECTION」に書かれている 「レコードの種類」と「一番右側の値」を見つけることを意識しましょう。
普段よく使う便利なオプション3選
基本の使い方がわかったら、次はトラブルシューティング等でよく使う便利なオプションを覚えましょう。
結果をシンプルにしたいとき (+short)
デフォルトの出力は情報が多すぎるので、「IPアドレスだけサクッと知りたい!」というときは 「+short」オプションを後ろにつけます。
$ dig example.com +short 172.66.147.243 104.20.23.154
余計な情報がすべて削ぎ落とされ、IPアドレスだけが返ってきます。
画面がとても見やすくなるので、普段使いに一番おすすめのオプションです。
特定のレコードを指定して調べたいとき
DNSには、IPアドレス(Aレコード)以外にも様々な情報が登録されています。
例えば、メールの配送先を指定する「MXレコード」を調べたいときは、ドメイン名の後ろにスペースを空けて「レコード名」を指定します。
$ dig gmail.com mx +short 40 alt4.gmail-smtp-in.l.google.com. 20 alt2.gmail-smtp-in.l.google.com. 5 gmail-smtp-in.l.google.com. 10 alt1.gmail-smtp-in.l.google.com. 30 alt3.gmail-smtp-in.l.google.com.
表示結果から、「gmail.com」では、5つのサーバがメールの配送先(MXレコード)として登録されていることがわかります。
ホスト名の前に表示されている数字(5、10、20…)は優先順位を表していて、数字が小さいものから優先的に選択される仕様になっています。
補足:これだけは押さえたい! よく使うDNSレコード一覧
digコマンドで指定できる主なレコードの種類をまとめました。
どれも重要度の高い基本の6種類です。
A レコード
ドメイン名やホスト名に対応する「IPv4アドレス」です。
レコードの指定を省略した場合、このAレコードがデフォルトで選ばれます。
AAAA(クワッドエー)レコード
ドメイン名やホスト名に対応する「IPv6アドレス」です。
CNAME(シーネーム)レコード
「www.example.com」のようなホスト名(サブドメイン)を、別のドメイン名に関連付ける「別名(エイリアス)」の情報です。
外部のブログサービスやCDN(Cloudflareなど)に自分のドメインを紐付けるときによく使われます。
※仕様上、ドメイン名そのもの(ネイキッドドメイン)には設定できないという制限があります。
MX(エムエックス)レコード
メールの配送先(メールサーバー)を指定する情報です。
「メールが届かない!」といったトラブルの際に、正しいメールサーバーが指定されているかを調べるために使います。
TXT(テキスト)レコード
ドメインやホストに自由な文字列(テキスト)を関連付けるレコードです。
最近は「ドメイン所有権の証明」や、「迷惑メール対策(SPF設定やDKIM設定など)」でよく使われます。
NS(エヌエス)レコード
そのドメインのDNS情報を実際に管理している「ネームサーバー」の情報です。
問い合わせるDNSサーバーを指定したいとき (@DNSサーバ)
ドメインやホスト名の後ろに 「@DNSサーバーのIPアドレス(またはホスト名)」をつけることで、特定のDNSサーバーに直接問い合わせをすることができます。
下記の例では、Googleが提供している無料のパブリックDNSサーバー(8.8.8.8)を指定して問い合わせを行っています。
$ dig example.com @8.8.8.8
; <<>> DiG 9.18.39-0ubuntu0.24.04.5-Ubuntu <<>> example.com @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54165
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 300 IN A 172.66.147.243
example.com. 300 IN A 104.20.23.154
;; Query time: 31 msec
;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP)
;; WHEN: Thu Jul 09 14:43:19 JST 2026
;; MSG SIZE rcvd: 72
表示された結果の下部にある、「SERVER: 8.8.8.8#53(8.8.8.8) (UDP)」という部分から、DNSサーバとして指定した「8.8.8.8」のサーバーが回答してくれたことが分かります。
これを使えば、「ドメインの設定を変更したけれど、GoogleのパブリックDNSにはもう新しい設定が反映されているかな?」といった確認をピンポイントですることができます。
IPアドレスからドメインを調べる「逆引き」
ここまでは「ドメイン名・ホスト名」から「IPアドレス」を調べてきましたが、これを正引きと呼びます。
これとは逆に、「IPアドレス」から「ホスト名」を調べることを「逆引き」と言います。
サーバーのアクセスログに見知らぬIPアドレスがあったとき、「これってどこからのアクセスだろう?」と特定したい場合によく使われます。
逆引きのやり方(-x オプション)
digコマンドで逆引きをするときは、「-x」オプションの後にIPアドレスを指定します。
GoogleのパブリックDNS「8.8.8.8」について、実際に逆引きを行ってみます。
$ dig -x 8.8.8.8 ; <<>> DiG 9.18.39-0ubuntu0.24.04.5-Ubuntu <<>> -x 8.8.8.8 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49270 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;8.8.8.8.in-addr.arpa. IN PTR ;; ANSWER SECTION: 8.8.8.8.in-addr.arpa. 7153 IN PTR dns.google. ;; Query time: 1 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP) ;; WHEN: Thu Jul 09 14:51:37 JST 2026 ;; MSG SIZE rcvd: 73
正引きのときと同じように、「ANSWER SECTION」を探してください。
;; ANSWER SECTION: 8.8.8.8.in-addr.arpa. 7153 IN PTR dns.google.
逆引きに成功すると、レコードの種類のところに「PTR」という文字が表示されます。
これは「PTR(ポインタ)レコード」という、逆引き専用のデータであることを示しています。
一番右側に「dns.google.」と書かれているので、この「8.8.8.8」というIPアドレスは、GoogleのDNSサーバー「dns.google.」のものだということが分かります。
逆引きが設定されていない場合
すべてのIPアドレスに逆引き(PTRレコード)が設定されているわけではないため、設定がない場合の挙動も押さえておきましょう。
試しに、設定がないIPアドレス(104.20.23.154)を調べてみます。
$ dig -x 104.20.23.154
; <<>> DiG 9.18.39-0ubuntu0.24.04.5-Ubuntu <<>> -x 104.20.23.154
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 12806
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;154.23.20.104.in-addr.arpa. IN PTR
;; AUTHORITY SECTION:
20.104.in-addr.arpa. 1800 IN SOA cruz.ns.cloudflare.com. dns.cloudflare.com. 2288625501 10000 2400 604800 3600
;; Query time: 33 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Thu Jul 09 17:56:10 JST 2026
;; MSG SIZE rcvd: 117
設定がない場合は、ヘッダー部分の「status」に「NXDOMAIN」と表示されます。
「NXDOMAIN」は「Non-Existent Domain(存在しないドメイン)」の略で、DNSサーバーから「レコード(IPアドレスの逆引き情報)が見つからなかったよ」と言われている状態を示しています。
また、「ANSWER SECTION」自体も表示されなくなります。
ちなみに「+short」オプションを使用した場合、返すデータが何もないため何も表示されずに終了します。
$ dig -x 104.20.23.154 +short
画面には何も出ませんが、「何も出ない=逆引きが登録されていない」という判断ができるので覚えておくと便利です。


コメント