GNU/Linux >> LINUX-Kenntnisse >  >> Linux

10 Linux-DIG-Befehlsbeispiele für die DNS-Suche

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

an

Um 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

anzeigen

Um 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.

an

Das 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.

Linux
  1. Linux-Killall-Befehl für Anfänger (8 Beispiele)

  2. So verwenden Sie den Dig-Befehl unter Linux mit Beispielen

  3. Nützliche Linux-Dig-Beispiele für den Netzwerkadministrator

  4. 10 Linux nslookup-Befehlsbeispiele für die DNS-Suche

  5. dig-Befehlsbeispiele in Linux

Linux OD Command Tutorial für Anfänger (6 Beispiele)

Linux w Command Tutorial für Anfänger (5 Beispiele)

Linux ss Command Tutorial für Anfänger (8 Beispiele)

Linux-Suchbefehl für Anfänger (8 Beispiele)

16 praktische Beispiele für Linux LS-Befehle für Anfänger

So verwenden Sie den Dig-Befehl unter Linux (10 Beispiele)