
Dig(Domain Information Groper)は、DNSネームサーバーにクエリを実行するための強力なコマンドラインツールです。
dig
コマンドを使用すると、ホストアドレス、メール交換、ネームサーバーなどのさまざまなDNSレコードに関する情報を照会できます。柔軟性と使いやすさから、DNSの問題をトラブルシューティングするためにシステム管理者の間で最も一般的に使用されるツールです。
このチュートリアルでは、dig
の使用方法について説明します 最も一般的なdig
の実用的な例と詳細な説明によるユーティリティ オプション。
dig
のインストール #
dig
かどうかを確認するには コマンドはシステムタイプで使用できます:
dig -v
出力は次のようになります。
DiG 9.11.3-1ubuntu1.1-Ubuntu
dig
の場合 システムにが存在しない場合、上記のコマンドは「dig:コマンドが見つかりません」と出力します。 dig
ツールは、ディストリビューションのパッケージマネージャーを使用してインストールできます。
dig
をインストールします UbuntuとDebianで#
sudo apt update && sudo apt install dnsutils
dig
をインストールします CentOSとFedoraで#
sudo yum install bind-utils
dig
Arch Linuxの場合# sudo pacman -S bind-tools
dig
を理解する 出力#
最も単純な形式では、追加のオプションなしで単一のホスト(ドメイン)をクエリするために使用される場合、dig
コマンドはかなり冗長です。
次の例では、linux.org
で実行しています。 ドメイン:
dig linux.org
出力は次のようになります。

セクションごとに移動して、dig
の出力について説明しましょう。 コマンド:
-
出力の最初の行には、インストールされている
dig
が出力されます。 バージョン、および照会されたドメイン名。 2行目には、グローバルオプションが表示されます(デフォルトでは、cmdのみ)。; <<>> DiG 9.13.3 <<>> linux.org ;; global options: +cmd
これらの行を出力に含めたくない場合は、
+nocmd
を使用してください オプション。このオプションは、dig
の後の最初のオプションである必要があります コマンド。 -
次のセクションには、要求された機関(DNSサーバー)から受け取った回答に関する技術的な詳細が含まれています。ヘッダーには、オペコード(
dig
によって実行されるアクション)が表示されます )およびアクションのステータス。この例では、ステータスはNOERROR
です。 、これは、要求された機関が問題なくクエリを処理したことを意味します。;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37159 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5
このセクションは、
+nocomments
を使用して削除できます オプション。他のセクションのヘッダーも無効にします。 -
「OPT」疑似セクションは、新しいバージョンの
dig
でのみ表示されます。 効用。 DNS(EDNS)の拡張メカニズムについて詳しくは、こちらをご覧ください。;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096
このセクションを出力から除外するには、
+noedns
を使用します オプション。 -
「質問」セクションで
dig
クエリ(質問)を表示します。デフォルトでは、dig
Aレコードを要求します。;; QUESTION SECTION: ;linux.org. IN A
このセクションは、
+noquestion
を使用して無効にできます オプション。 -
「回答」セクションでは、質問に対する回答を提供します。すでに述べたように、デフォルトでは
dig
Aレコードを要求します。ここでは、ドメインlinux.org
104.18.59.123
を指します IPアドレス。;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123
通常、回答をオフにする必要はありませんが、
+noanswer
を使用して、このセクションを出力から削除できます。 オプション。 -
「権限」セクションは、照会されたドメインに関するDNSクエリに応答するための権限であるサーバーを示します。
;; AUTHORITY SECTION: linux.org. 86379 IN NS lia.ns.cloudflare.com. linux.org. 86379 IN NS mark.ns.cloudflare.com.
+noauthority
を使用して、出力のこのセクションを無効にすることができます オプション。 -
「追加」セクションには、権限セクションに表示される権限のあるDNSサーバーのIPアドレスに関する情報が表示されます。
;; ADDITIONAL SECTION: lia.ns.cloudflare.com. 84354 IN A 173.245.58.185 lia.ns.cloudflare.com. 170762 IN AAAA 2400:cb00:2049:1::adf5:3ab9 mark.ns.cloudflare.com. 170734 IN A 173.245.59.130 mark.ns.cloudflare.com. 170734 IN AAAA 2400:cb00:2049:1::adf5:3b82
+noadditional
オプションは、返信の追加セクションを無効にします。 -
dig
の最後のセクション 出力には、クエリに関する統計が含まれます。;; Query time: 58 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Oct 12 11:46:46 CEST 2018 ;; MSG SIZE rcvd: 212
この部分は
+nostats
で無効にできます オプション。
通常、dig
に対する簡単な回答のみを取得する必要があります。 クエリ。
1。短い回答を得る#
クエリに対する簡単な回答を得るには、+short
を使用します オプション:
dig linux.org +short
104.18.59.123
104.18.58.123
出力には、AレコードのIPアドレスのみが含まれます。
2。詳細な回答を得る#
より詳細な回答については、+noall
を使用してすべての結果をオフにしてください オプションを選択し、+answer
を使用して回答セクションのみをオンにします オプション。
dig linux.org +noall +answer
; <<>> DiG 9.13.3 <<>> linux.org +noall +answer
;; global options: +cmd
linux.org. 67 IN A 104.18.58.123
linux.org. 67 IN A 104.18.59.123
クエリ固有のネームサーバー#
デフォルトでは、ネームサーバーが指定されていない場合、dig
/etc/resolv.conf
にリストされているサーバーを使用します ファイル。
クエリが実行されるネームサーバーを指定するには、@
を使用します (アットマーク)記号の後にネームサーバーのIPアドレスまたはホスト名が続きます。
たとえば、linux.org
に関する情報をGoogleネームサーバー(8.8.8.8)に照会するには 使用するドメイン:
dig linux.org @8.8.8.8
; <<>> DiG 9.13.3 <<>> linux.org @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39110
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;linux.org. IN A
;; ANSWER SECTION:
linux.org. 299 IN A 104.18.58.123
linux.org. 299 IN A 104.18.59.123
;; Query time: 54 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Oct 12 14:28:01 CEST 2018
;; MSG SIZE rcvd: 70
レコードタイプのクエリ#
Digを使用すると、クエリの最後にレコードタイプを追加することで、有効なDNSクエリを実行できます。次のセクションでは、A(IPアドレス)、CNAME(正規名)、TXT(テキストレコード)、MX(メールエクスチェンジャー)、NS(メールエクスチェンジャー)などの最も一般的なレコードを検索する方法の例を示します。ネームサーバー)。
1。 Aレコードのクエリ#
ドメイン名のすべてのアドレスのリストを取得するには、a
を使用します オプション:
dig +nocmd google.com a +noall +answer
google.com. 128 IN A 216.58.206.206
ご存知のとおり、DNSレコードタイプが指定されていない場合は、dig
Aレコードを要求します。 a
を指定せずにAレコードをクエリすることもできます オプション。
2。 CNAMEレコードのクエリ#
エイリアスドメイン名を見つけるには、cname
を使用します オプション:
dig +nocmd mail.google.com cname +noall +answer
mail.google.com. 553482 IN CNAME googlemail.l.google.com.
3。 TXTレコードのクエリ#
txt
を使用する 特定のドメインのすべてのTXTレコードを取得するオプション:
dig +nocmd google.com txt +noall +answer
google.com. 300 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
google.com. 300 IN TXT "v=spf1 include:_spf.google.com ~all"
google.com. 300 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
4。 MXレコードのクエリ#
特定のドメインのすべてのメールサーバーのリストを取得するには、mx
を使用します オプション:
dig +nocmd google.com mx +noall +answer
google.com. 494 IN MX 30 alt2.aspmx.l.google.com.
google.com. 494 IN MX 10 aspmx.l.google.com.
google.com. 494 IN MX 40 alt3.aspmx.l.google.com.
google.com. 494 IN MX 50 alt4.aspmx.l.google.com.
google.com. 494 IN MX 20 alt1.aspmx.l.google.com.
5。 NSレコードのクエリ#
特定のドメインの信頼できるネームサーバーを見つけるには、ns
を使用します オプション:
dig +nocmd google.com ns +noall +answer
google.com. 84527 IN NS ns1.google.com.
google.com. 84527 IN NS ns2.google.com.
google.com. 84527 IN NS ns4.google.com.
google.com. 84527 IN NS ns3.google.com.
6。すべてのレコードのクエリ#
any
を使用する 特定のドメインのすべてのDNSレコードのリストを取得するオプション:
dig +nocmd google.com any +noall +answer
google.com. 299 IN A 216.58.212.14
google.com. 299 IN AAAA 2a00:1450:4017:804::200e
google.com. 21599 IN NS ns2.google.com.
google.com. 21599 IN NS ns1.google.com.
google.com. 599 IN MX 30 alt2.aspmx.l.google.com.
google.com. 21599 IN NS ns4.google.com.
google.com. 599 IN MX 50 alt4.aspmx.l.google.com.
google.com. 599 IN MX 20 alt1.aspmx.l.google.com.
google.com. 299 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
google.com. 21599 IN CAA 0 issue "pki.goog"
google.com. 599 IN MX 40 alt3.aspmx.l.google.com.
google.com. 3599 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
google.com. 21599 IN NS ns3.google.com.
google.com. 599 IN MX 10 aspmx.l.google.com.
google.com. 3599 IN TXT "v=spf1 include:_spf.google.com ~all"
google.com. 59 IN SOA ns1.google.com. dns-admin.google.com. 216967258 900 900 1800 60
特定のIPアドレスに関連付けられているホスト名を照会するには、-x
を使用します オプション。
たとえば、208.118.235.148
で逆引き参照を実行するには 次のように入力します:
dig -x 208.118.235.148 +noall +answer
以下の出力からわかるように、IPアドレス208.118.235.148
ホスト名wildebeest.gnu.org
に関連付けられています 。
; <<>> DiG 9.13.3 <<>> -x 208.118.235.148 +noall +answer
;; global options: +cmd
148.235.118.208.in-addr.arpa. 245 IN PTR wildebeest.gnu.org.
一括クエリ#
多数のドメインをクエリする場合は、それらをファイルに追加して(1行に1つのドメイン)、-f
を使用できます。 オプションの後にファイル名を続けます。
次の例では、domains.txt
にリストされているドメインをクエリしています。 ファイル。
lxer.com
linuxtoday.com
tuxmachines.org
dig -f domains.txt +short
108.166.170.171
70.42.23.121
204.68.122.43
.digrcファイル#
dig
コマンドの動作は、${HOME}/.digrc
でユーザーごとのオプションを設定することで制御できます。 ファイル。
.digrc
の場合 ファイルはユーザーのホームディレクトリにあり、そこで指定されたオプションはコマンドライン引数の前に適用されます。
たとえば、回答セクションのみを表示する場合は、テキストエディタを開いて、次の~/.digrc
を作成します。 ファイル:
+nocmd +noall +answer
結論#
dig
は、DNS情報を照会し、DNS関連の問題をトラブルシューティングするためのコマンドラインツールです。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。