Dig steht für Domain Information Groper.
Mit dem Befehl dig können Sie DNS-Nameserver für Ihre Aufgaben im Zusammenhang mit der DNS-Suche abfragen. Dieser Artikel erklärt 10 Beispiele zur Verwendung des Befehls dig.
1. Einfache Verwendung des dig-Befehls (verstehen Sie die dig-Ausgabe)
Wenn Sie einen Domänennamen an den Befehl dig übergeben, zeigt er standardmäßig den A-Eintrag (die IP-Adresse der abgefragten Site) wie unten gezeigt an.
In diesem Beispiel zeigt er den A Eintrag von redhat.com in der „ANSWER SECTION“ der dig-Befehlsausgabe.
$ dig redhat.com ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62863 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3 ;; QUESTION SECTION: ;redhat.com. IN A ;; ANSWER SECTION: redhat.com. 37 IN A 209.132.183.81 ;; AUTHORITY SECTION: redhat.com. 73 IN NS ns4.redhat.com. redhat.com. 73 IN NS ns3.redhat.com. redhat.com. 73 IN NS ns2.redhat.com. redhat.com. 73 IN NS ns1.redhat.com. ;; ADDITIONAL SECTION: ns1.redhat.com. 73 IN A 209.132.186.218 ns2.redhat.com. 73 IN A 209.132.183.2 ns3.redhat.com. 73 IN A 209.132.176.100 ;; Query time: 13 msec ;; SERVER: 209.144.50.138#53(209.144.50.138) ;; WHEN: Thu Jan 12 10:09:49 2012 ;; MSG SIZE rcvd: 164
Die Ausgabe des dig-Befehls hat die folgenden Abschnitte:
- Header:Dies zeigt die Versionsnummer des dig-Befehls, die vom dig-Befehl verwendeten globalen Optionen und einige zusätzliche Header-Informationen an.
- QUESTION SECTION:Dies zeigt die Frage an, die es dem DNS gestellt hat. d.h. Dies ist Ihre Eingabe. Da wir „dig redhat.com“ gesagt haben und der Standardtyp, den der dig-Befehl verwendet, ein A-Eintrag ist, wird in diesem Abschnitt angegeben, dass wir nach dem A-Eintrag der redhat.com-Website gefragt haben
- ANSWER SECTION:Dies zeigt die Antwort, die es vom DNS erhält. d.h. Dies ist Ihre Ausgabe. Dies zeigt den A-Eintrag von redhat.com an
- AUTHORITY SECTION:Dies zeigt den DNS-Nameserver an, der die Autorität hat, auf diese Anfrage zu antworten. Grundsätzlich zeigt dies verfügbare Nameserver von redhat.com an
- ADDITIONAL SECTION:Dies zeigt die IP-Adresse der Nameserver an, die in der AUTHORITY SECTION aufgeführt sind.
- Der Abschnitt „Statistiken“ am unteren Rand zeigt einige Statistiken zu Dig-Befehlen an, einschließlich der Zeit, die zum Ausführen dieser Abfrage benötigt wurde
2. Nur den ANTWORTABSCHNITT der Dig-Befehlsausgabe anzeigen
Zum größten Teil müssen Sie sich nur den „ANSWER SECTION“ des dig-Befehls ansehen. Daher können wir alle anderen Abschnitte wie unten gezeigt deaktivieren.
- +nocomments – Deaktivieren Sie die Kommentarzeilen
- +noauthority – Schaltet den Autoritätsbereich aus
- +noadditional – Schaltet den zusätzlichen Abschnitt aus
- +nostats – Statistikbereich ausschalten
- +keineAntwort – Deaktivieren Sie den Antwortbereich (Natürlich möchten Sie den Antwortbereich nicht deaktivieren)
Der folgende dig-Befehl zeigt nur den ANTWORTABSCHNITT an.
$ dig redhat.com +nocomments +noquestion +noauthority +noadditional +nostats ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com +nocomments +noquestion +noauthority +noadditional +nostats ;; global options: +cmd redhat.com. 9 IN A 209.132.183.81
Anstatt alle Abschnitte, die wir nicht wollen, einzeln zu deaktivieren, können wir alle Abschnitte mit +noall deaktivieren (dies deaktiviert auch den Antwortabschnitt) und die +Antwort hinzufügen, die nur den Antwortabschnitt anzeigt.
Der obige Befehl kann auch wie unten gezeigt in einer Kurzform geschrieben werden, die nur den ANTWORTABSCHNITT anzeigt.
$ dig redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com +noall +answer ;; global options: +cmd redhat.com. 60 IN A 209.132.183.81
3. Abfragen von MX-Einträgen mit dig -t MX
Um MX-Datensätze abzufragen, übergeben Sie MX als Argument an den Befehl dig, wie unten gezeigt.
$ dig redhat.com MX +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com MX +noall +answer ;; global options: +cmd redhat.com. 513 IN MX 5 mx1.redhat.com. redhat.com. 513 IN MX 10 mx2.redhat.com.
Sie können auch die Option -t verwenden, um den Abfragetyp (zum Beispiel:MX) wie unten gezeigt zu übergeben.
$ dig -t MX redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t MX redhat.com +noall +answer ;; global options: +cmd redhat.com. 489 IN MX 10 mx2.redhat.com. redhat.com. 489 IN MX 5 mx1.redhat.com.
4. NS-Einträge mit dig -t NS abfragen
Um den NS-Eintrag abzufragen, verwenden Sie den Typ NS wie unten gezeigt.
$ dig redhat.com NS +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com NS +noall +answer ;; global options: +cmd redhat.com. 558 IN NS ns2.redhat.com. redhat.com. 558 IN NS ns1.redhat.com. redhat.com. 558 IN NS ns3.redhat.com. redhat.com. 558 IN NS ns4.redhat.com.
Sie können auch die Option -t verwenden, um den Abfragetyp (z. B.:NS) wie unten gezeigt zu übergeben.
$ dig -t NS redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t NS redhat.com +noall +answer ;; global options: +cmd redhat.com. 543 IN NS ns4.redhat.com. redhat.com. 543 IN NS ns1.redhat.com. redhat.com. 543 IN NS ns3.redhat.com. redhat.com. 543 IN NS ns2.redhat.com.
5. Zeigen Sie ALLE DNS-Eintragstypen mit dig -t ANY
anUm alle Datensatztypen (A, MX, NS usw.) anzuzeigen, verwenden Sie ANY als Datensatztyp, wie unten gezeigt.
$ dig redhat.com ANY +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com ANY +noall +answer ;; global options: +cmd redhat.com. 430 IN MX 5 mx1.redhat.com. redhat.com. 430 IN MX 10 mx2.redhat.com. redhat.com. 521 IN NS ns3.redhat.com. redhat.com. 521 IN NS ns1.redhat.com. redhat.com. 521 IN NS ns4.redhat.com. redhat.com. 521 IN NS ns2.redhat.com.
(oder) Verwenden Sie -t ANY
$ dig -t ANY redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t ANY redhat.com +noall +answer ;; global options: +cmd redhat.com. 367 IN MX 10 mx2.redhat.com. redhat.com. 367 IN MX 5 mx1.redhat.com. redhat.com. 458 IN NS ns4.redhat.com. redhat.com. 458 IN NS ns1.redhat.com. redhat.com. 458 IN NS ns2.redhat.com. redhat.com. 458 IN NS ns3.redhat.com.
6. Kurze Ausgabe mit dig +short
anzeigenUm nur die IP-Adresse einer Website anzuzeigen (d. h. den A-Eintrag), verwenden Sie die Kurzformoption wie unten gezeigt.
$ dig redhat.com +short 209.132.183.81
Sie können auch einen Datensatztyp angeben, den Sie mit der Option +kurz anzeigen möchten.
$ dig redhat.com ns +short ns2.redhat.com. ns3.redhat.com. ns1.redhat.com. ns4.redhat.com.
7. DNS-Reverse-Lookup mit dig -x
Um einen DNS-Reverse-Lookup unter Verwendung der IP-Adresse durchzuführen, verwenden Sie dig -x wie unten gezeigt
Wenn Sie beispielsweise nur eine externe IP-Adresse haben und wissen möchten, welche Website dazu gehört, gehen Sie wie folgt vor.
$ dig -x 209.132.183.81 +short www.redhat.com.
Um die vollständigen Details des DNS-Reverse-Lookups anzuzeigen, entfernen Sie die Option +kurz.
$ dig -x 209.132.183.81 ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -x 209.132.183.81 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62435 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3 ;; QUESTION SECTION: ;81.183.132.209.in-addr.arpa. IN PTR ;; ANSWER SECTION: 81.183.132.209.in-addr.arpa. 600 IN PTR www.redhat.com. ;; AUTHORITY SECTION: 183.132.209.in-addr.arpa. 248 IN NS ns2.redhat.com. 183.132.209.in-addr.arpa. 248 IN NS ns1.redhat.com. 183.132.209.in-addr.arpa. 248 IN NS ns3.redhat.com. 183.132.209.in-addr.arpa. 248 IN NS ns4.redhat.com. ;; ADDITIONAL SECTION: ns1.redhat.com. 363 IN A 209.132.186.218 ns2.redhat.com. 363 IN A 209.132.183.2 ns3.redhat.com. 363 IN A 209.132.176.100 ;; Query time: 35 msec ;; SERVER: 209.144.50.138#53(209.144.50.138) ;; WHEN: Thu Jan 12 10:15:00 2012 ;; MSG SIZE rcvd: 193
8. Verwenden Sie einen bestimmten DNS-Server mit dig @dnsserver
Standardmäßig verwendet dig die DNS-Server, die in Ihrer Datei /etc/resolv.conf definiert sind.
Wenn Sie für die Abfrage einen anderen DNS-Server verwenden möchten, geben Sie ihn in der Befehlszeile als @dnsserver.
anDas folgende Beispiel verwendet ns1.redhat.com als DNS-Server, um die Antwort zu erhalten (anstatt die DNS-Server aus der Datei /etc/resolv.conf zu verwenden).
$ dig @ns1.redhat.com redhat.com ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> @ns1.redhat.com redhat.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20963 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;redhat.com. IN A ;; ANSWER SECTION: redhat.com. 60 IN A 209.132.183.81 ;; AUTHORITY SECTION: redhat.com. 600 IN NS ns1.redhat.com. redhat.com. 600 IN NS ns4.redhat.com. redhat.com. 600 IN NS ns3.redhat.com. redhat.com. 600 IN NS ns2.redhat.com. ;; ADDITIONAL SECTION: ns1.redhat.com. 600 IN A 209.132.186.218 ns2.redhat.com. 600 IN A 209.132.183.2 ns3.redhat.com. 600 IN A 209.132.176.100 ns4.redhat.com. 600 IN A 209.132.188.218 ;; Query time: 160 msec ;; SERVER: 209.132.186.218#53(209.132.186.218) ;; WHEN: Thu Jan 12 10:22:11 2012 ;; MSG SIZE rcvd: 180
9. Massen-DNS-Abfrage mit dig -f (und Befehlszeile)
Fragen Sie mehrere Websites mit einer Datendatei ab:
Sie können eine Massen-DNS-Abfrage basierend auf den Daten aus einer Datei durchführen.
Erstellen Sie zunächst eine names.txt-Beispieldatei, die die Website enthält, die Sie abfragen möchten.
$ vi names.txt redhat.com centos.org
Führen Sie als Nächstes dig -f wie unten gezeigt aus, wodurch eine DNS-Abfrage für die in der Datei names.txt aufgeführten Websites durchgeführt und die Ausgabe angezeigt wird.
$ dig -f names.txt +noall +answer redhat.com. 60 IN A 209.132.183.81 centos.org. 60 IN A 72.232.194.162
Sie können den Datensatztyp auch mit der Option -f kombinieren. Das folgende Beispiel zeigt die MX-Einträge mehrerer Websites, die sich in der Datei names.txt befinden.
$ dig -f names.txt MX +noall +answer redhat.com. 600 IN MX 10 mx2.redhat.com. redhat.com. 600 IN MX 5 mx1.redhat.com. centos.org. 3600 IN MX 10 mail.centos.org.
Fragen Sie mehrere Websites über die dig-Befehlszeile ab:
Sie können auch mehrere Websites über die dig-Befehlszeile abfragen, wie unten gezeigt. Das folgende Beispiel fragt den MX-Eintrag für redhat.com und den NS-Eintrag für centos.org über die Befehlszeile
ab$ dig redhat.com mx +noall +answer centos.org ns +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com mx +noall +answer centos.org ns +noall +answer ;; global options: +cmd redhat.com. 332 IN MX 10 mx2.redhat.com. redhat.com. 332 IN MX 5 mx1.redhat.com. centos.org. 3778 IN NS ns3.centos.org. centos.org. 3778 IN NS ns4.centos.org. centos.org. 3778 IN NS ns1.centos.org.
10. Verwenden Sie die $HOME/.digrc-Datei, um Standard-Dig-Optionen zu speichern
Wenn Sie immer versuchen, nur den ANTWORT-Abschnitt der dig-Ausgabe anzuzeigen, müssen Sie nicht bei jedem dig-Befehl „+noall +answer“ eingeben. Fügen Sie stattdessen Ihre Ausgrabungsoptionen wie unten gezeigt zur .digrc-Datei hinzu.
$ cat $HOME/.digrc +noall +answer
Jedes Mal, wenn Sie jetzt den Befehl dig ausführen, werden standardmäßig immer die Optionen +noall und +answer verwendet. Jetzt ist die dig-Befehlszeile sehr einfach und leicht zu lesen, ohne dass Sie diese Optionen jedes Mal eingeben müssen.
$ dig redhat.com redhat.com. 60 IN A 209.132.183.81 $ dig redhat.com MX redhat.com. 52 IN MX 5 mx1.redhat.com. redhat.com. 52 IN MX 10 mx2.redhat.com.