nslookup-Befehl: Verwendung und Optionen, Abfrage von Einträgen und Wahl des DNS-Servers

TestumgebungRHEL-FamilieAlmaLinux 9.8nslookup 9.16root-KontoDebian 12 normales Konto
NetzwerkbefehlenslookupSpeicherort/usr/bin/nslookup

Der Befehl nslookup ist ein Abfragewerkzeug, das einen DNS-Server nach einem Domainnamen fragt und dessen IP-Adressen sowie DNS-Einträge wie MX, NS und TXT zurückgibt. Als wir auf einem AlmaLinux-9-Server die Einträge von example.com nach Typ abgefragt und den befragten DNS-Server gewechselt haben, lieferte dieselbe Domain je nach Server unterschiedliche Ergebnisse: Die Zeile Non-authoritative answer am Anfang der Antwort verschwand, oder das Ergebnis der ANY-Abfrage änderte sich.

Die folgende Ausgabe stammt aus dem root-Konto eines AlmaLinux-9.8-Servers. Die Adresse des auf dem Server eingestellten DNS-Servers wurde durch den Beispielwert 192.0.2.53 ersetzt, und auch die Versionsnummern der Pakete wurden durch Beispielwerte ersetzt.

1️⃣ So verwenden Sie den nslookup-Befehl

Die Grundform ist [nslookup -Option Name DNS-Server], wobei Optionen und DNS-Server weggelassen werden können. Wenn Sie nur einen Namen angeben, fragt nslookup den auf dem Server eingestellten DNS-Server nach der Adresse dieses Namens.

nslookup example.com
Server:		192.0.2.53
Address:	192.0.2.53#53

Non-authoritative answer:
Name:	example.com
Address: 172.66.147.243
Name:	example.com
Address: 104.20.23.154
Name:	example.com
Address: 2606:4700:10::6814:179a
Name:	example.com
Address: 2606:4700:10::ac42:93f3

Die beiden Zeilen Server und Address ganz oben zeigen den DNS-Server, der die Anfrage erhalten hat, und #53 am Ende ist die DNS-Portnummer. Ohne Angabe eines Eintragstyps fragt nslookup nacheinander den A-Eintrag (IPv4) und den AAAA-Eintrag (IPv6) ab, daher folgten auf zwei IPv4-Adressen zwei IPv6-Adressen.

Non-authoritative answer bedeutet, dass nicht der Server geantwortet hat, der die Einträge von example.com direkt verwaltet, sondern ein DNS-Server, der den Wert im Cache hält. Kurz nach einer Änderung eines Eintrags kann der Wert deshalb vom tatsächlichen Wert abweichen.

2️⃣ nslookup-Optionen

Optionen werden mit einem Bindestrich vor dem Namen geschrieben.

-type ist dieselbe Option wie -query oder die Kurzform -q. Eine Anfrage an 8.8.8.8 mit -q=mx lieferte dieselbe Mailserver-Zeile wie -type=mx.

nslookup -q=mx google.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
google.com	mail exchanger = 10 smtp.google.com.

Authoritative answers can be found from:

-timeout und -retry legen fest, wie lange auf einen DNS-Server gewartet wird, der nicht antwortet. 192.0.2.1 ist eine für Dokumentation reservierte Adresse, daher antwortet dort kein Server.

nslookup -timeout=2 -retry=1 example.com 192.0.2.1
;; connection timed out; no servers could be reached

Mit -timeout=2 -retry=1 gab nslookup nach 2 Sekunden die Zeile [connection timed out] aus und beendete sich. Mit -retry=2 dauerte es 4 Sekunden, ohne Optionen 15 Sekunden. Damit ein Skript nicht lange an einem Server hängt, der nicht antwortet, verringern Sie beide Werte.

Mit -debug werden die Frage- und Antwortabschnitte des Antwortpakets unverändert ausgegeben.

nslookup -debug example.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

------------
    QUESTIONS:
	example.com, type = A, class = IN
    ANSWERS:
    ->  example.com
	internet address = 104.20.23.154
	ttl = 300
    ->  example.com
	internet address = 172.66.147.243
	ttl = 300
    AUTHORITY RECORDS:
    ADDITIONAL RECORDS:
------------
Non-authoritative answer:
Name:	example.com
Address: 104.20.23.154
Name:	example.com
Address: 172.66.147.243
------------
    QUESTIONS:
	example.com, type = AAAA, class = IN
    ANSWERS:
    ->  example.com
	has AAAA address 2606:4700:10::6814:179a
	ttl = 300
    ->  example.com
	has AAAA address 2606:4700:10::ac42:93f3
	ttl = 300
    AUTHORITY RECORDS:
    ADDITIONAL RECORDS:
------------
Name:	example.com
Address: 2606:4700:10::6814:179a
Name:	example.com
Address: 2606:4700:10::ac42:93f3

Jeder Eintrag erhielt ein ttl = 300, das die normale Ausgabe nicht zeigt. Es bedeutet, dass der DNS-Server, der diese Antwort erhalten hat, den Eintrag bis zu 300 Sekunden im Cache halten darf.

-norecurse bittet den DNS-Server, nur mit vorhandenen Werten zu antworten, statt über andere Server zu suchen. Ohne die Option lieferte dieselbe Anfrage an 8.8.8.8 vier Adressen, mit -norecurse endete sie jedoch mit [SERVFAIL].

nslookup -norecurse example.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

** server can't find example.com: SERVFAIL
OptionKopierenBeschreibung
-type=Legt den abzufragenden Eintragstyp fest; ohne Angabe A und danach AAAA
-q=Dieselbe Option wie -type, legt den abzufragenden Eintragstyp fest
-timeout=Wartezeit auf die Antwort der ersten Anfrage (Sekunden)
-retry=Anzahl der Sendeversuche, wenn keine Antwort kommt
-debugGibt Frage und Antwort des Antwortpakets bis hin zur TTL aus
-norecurseFordert nur die Werte dieses Servers an, ohne über andere Server zu gehen
OptionKopierenBeschreibung
-query=Dieselbe Option wie -type, legt den abzufragenden Eintragstyp fest
-port=Legt den abzufragenden Port fest, Standard 53
-versionVersion ausgeben und beenden

3️⃣ Einträge mit nslookup abfragen (MX, NS, TXT, SOA)

Wenn Sie nach -type= einen Eintragstyp angeben, wird nur dieser Eintrag abgefragt. Der Wert kann groß oder klein geschrieben werden.

Wert von -type=Enthaltene Informationen
A · AAAAIPv4-Adresse, IPv6-Adresse
MXServer, der E-Mails empfängt, und seine Priorität
NSNameserver, die die Einträge der Domain verwalten
TXTTextwerte wie SPF
SOAPrimärer Nameserver der Zone, Admin-E-Mail, Seriennummer, Aktualisierungsintervalle
CNAMEAlias, der auf einen anderen Namen verweist
PTRHostname, der mit einer IP-Adresse verknüpft ist (rückwärts)
ANYFordert alle Einträge dieses Namens auf einmal an

Mailserver werden mit dem MX-Eintrag geprüft.

nslookup -type=mx google.com
Server:		192.0.2.53
Address:	192.0.2.53#53

Non-authoritative answer:
google.com	mail exchanger = 10 smtp.google.com.

Authoritative answers can be found from:

Die 10 nach mail exchanger ist die Priorität. Gibt es mehrere Mailserver, versucht der Absender die Zustellung zuerst beim Server mit der kleinsten Zahl. Dieselbe Abfrage für example.com ergab [mail exchanger = 0 .], und ein MX mit nur einem Punkt bedeutet, dass diese Domain keine E-Mails annimmt.

[Authoritative answers can be found from:] am Ende der MX-Abfrage ist eine Kopfzeile, unter der die in der Antwort mitgelieferten Angaben zu autoritativen Nameservern folgen. Bei den MX-, NS- und TXT-Abfragen in diesem Artikel enthielt die Antwort diese Angaben nicht, daher blieb der Bereich unter der Kopfzeile leer.

Der NS-Eintrag enthält die Nameserver, die die Einträge der Domain direkt verwalten.

nslookup -type=ns example.com
Server:		192.0.2.53
Address:	192.0.2.53#53

Non-authoritative answer:
example.com	nameserver = hera.ns.cloudflare.com.
example.com	nameserver = elliott.ns.cloudflare.com.

Authoritative answers can be found from:

example.com hatte zwei Nameserver. Diese beiden Server sind die autoritativen Nameserver von example.com.

In einem TXT-Eintrag lassen sich Textwerte ohne festes Format speichern.

nslookup -type=txt example.com
Server:		192.0.2.53
Address:	192.0.2.53#53

Non-authoritative answer:
example.com	text = "_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9"
example.com	text = "v=spf1 -all"

Authoritative answers can be found from:

v=spf1 -all ist ein SPF-Wert, der besagt, dass kein Server E-Mails unter diesem Domainnamen versenden darf. Hat eine Domain mehrere TXT-Einträge, erscheinen sie so, einer pro Zeile.

Der SOA-Eintrag enthält die Grundinformationen der Zone.

nslookup -type=soa example.com
Server:		192.0.2.53
Address:	192.0.2.53#53

Non-authoritative answer:
example.com
	origin = elliott.ns.cloudflare.com
	mail addr = dns.cloudflare.com
	serial = 2418004112
	refresh = 10000
	retry = 2400
	expire = 604800
	minimum = 1800

Authoritative answers can be found from:

origin ist der primäre Nameserver, und mail addr ist die E-Mail-Adresse des Administrators, bei der das @ als Punkt geschrieben ist. serial ist eine Seriennummer, die bei jeder Änderung der Einträge steigt, und refresh, retry und expire sind Zeitwerte (in Sekunden), mit denen sekundäre Nameserver ihre Einträge mit dem primären Server abgleichen. minimum ist die Zeit, die eine Antwort auf einen nicht vorhandenen Eintrag im Cache bleibt.

Aliase werden mit dem CNAME-Eintrag geprüft. Die Abfrage von www.github.com ergab eine Zeile, nach der es ein Alias von github.com ist.

nslookup -type=cname www.github.com
Server:		192.0.2.53
Address:	192.0.2.53#53

www.github.com	canonical name = github.com.

-type=any fordert alle Einträge dieses Namens auf einmal an. Die Anfrage an den auf dem Server eingestellten DNS-Server lieferte die Einträge A, AAAA, MX und NS zusammen.

nslookup -type=any example.com
Server:		192.0.2.53
Address:	192.0.2.53#53

Non-authoritative answer:
Name:	example.com
Address: 172.66.147.243
Name:	example.com
Address: 104.20.23.154
Name:	example.com
Address: 2606:4700:10::6814:179a
Name:	example.com
Address: 2606:4700:10::ac42:93f3
example.com	mail exchanger = 0 .
example.com	nameserver = hera.ns.cloudflare.com.
example.com	nameserver = elliott.ns.cloudflare.com.

Authoritative answers can be found from:

Dieselbe Abfrage an 8.8.8.8 lieferte nur eine Zeile [hinfo = “RFC8482”] und eine Signaturzeile.

nslookup -type=any example.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
example.com	hinfo = "RFC8482" ""
example.com	rdata_46 = HINFO 13 2 3600 20261029212708 20261027192708 34505 example.com. 2YBHcD7GmqHiW6E7e8Lx3z/gPoCsLbYw/Uegjy801hQ+4fYp5U7wKqc2 NXOONd8WS0xjgzfW5Dn0akDqdjltOw==

Authoritative answers can be found from:

RFC 8482 ist das Dokument, nach dem Server auf eine ANY-Anfrage mit einer kurzen Antwort statt mit allen Einträgen reagieren dürfen. Fragen Sie benötigte Einträge daher einzeln nach Typ ab.

4️⃣ DNS-Server in nslookup angeben

Wenn Sie nach dem Namen einen DNS-Server angeben, fragt nslookup diesen Server statt des auf dem Server eingestellten DNS-Servers.

nslookup example.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	example.com
Address: 104.20.23.154
Name:	example.com
Address: 172.66.147.243
Name:	example.com
Address: 2606:4700:10::6814:179a
Name:	example.com
Address: 2606:4700:10::ac42:93f3

Die Zeile Server wechselte zu 8.8.8.8, und die vier Adressen waren dieselben wie in der Antwort des auf dem Server eingestellten DNS-Servers. Diese Form nutzen Sie nach einem Nameserver-Wechsel, um zu prüfen, ob die neuen Werte bei den einzelnen öffentlichen DNS-Servern angekommen sind.

Wenn Sie einen Nameserver aus der NS-Abfrage als DNS-Server angeben, fragen Sie den autoritativen Server direkt.

nslookup example.com elliott.ns.cloudflare.com
Server:		elliott.ns.cloudflare.com
Address:	2606:4700:58::a29f:2ce4#53

Name:	example.com
Address: 104.20.23.154
Name:	example.com
Address: 172.66.147.243
Name:	example.com
Address: 2606:4700:10::6814:179a
Name:	example.com
Address: 2606:4700:10::ac42:93f3

Diesmal verschwand die Zeile Non-authoritative answer. Der Wert kam direkt vom Server, der die Einträge verwaltet, und ist damit der aktuelle Wert ohne Umweg über einen Cache. In Address direkt unter der Zeile Server erschien die IPv6-Adresse dieses Nameservers.

Bei einem Namen, der nicht existiert, erscheint [NXDOMAIN]. .invalid ist eine Top-Level-Domain, die reserviert ist, damit sie nie tatsächlich verwendet wird, daher lautete die Antwort, dass der Name nicht existiert.

nslookup example.invalid
Server:		192.0.2.53
Address:	192.0.2.53#53

** server can't find example.invalid: NXDOMAIN

no-such-host.example.com endete dagegen nicht mit NXDOMAIN, sondern mit [No answer]. Das bedeutet, dass der abgefragte Eintrag nicht in der Antwort war, ein anderes Ergebnis als NXDOMAIN, bei dem der Name selbst nicht existiert.

nslookup no-such-host.example.com
Server:		192.0.2.53
Address:	192.0.2.53#53

Non-authoritative answer:
*** Can't find no-such-host.example.com: No answer

5️⃣ Rückwärtsabfrage mit nslookup

Wenn Sie statt eines Namens eine IP-Adresse angeben, fragt nslookup den PTR-Eintrag ab und findet den mit dieser Adresse verknüpften Hostnamen.

nslookup 8.8.8.8
8.8.8.8.in-addr.arpa	name = dns.google.

Authoritative answers can be found from:

8.8.8.8.in-addr.arpa ist der Name, der entsteht, wenn man die IPv4-Adresse rückwärts schreibt und in-addr.arpa anhängt. Der Wert des PTR-Eintrags dieses Namens, dns.google., ist der Hostname von 8.8.8.8.

Bei der Rückwärtsabfrage fehlten die beiden Server-Zeilen ganz oben. Die Abfrage derselben Adresse mit nslookup 9.18 auf einem Debian-12-Server sah genauso aus.

6️⃣ Interaktiver Modus von nslookup

Wenn Sie nslookup ohne Argumente starten, gelangen Sie in den interaktiven Modus mit der Eingabeaufforderung >. Wenn Sie mehrere Namen und Eintragstypen nacheinander abfragen, müssen Sie den Befehl nicht jedes Mal neu eingeben.

nslookup
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
> set type=mx
> google.com
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
google.com	mail exchanger = 10 smtp.google.com.

Authoritative answers can be found from:
> set type=txt
> example.com
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
example.com	text = "_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9"
example.com	text = "v=spf1 -all"

Authoritative answers can be found from:
> exit

Wechseln Sie mit server den abzufragenden DNS-Server und legen Sie mit set type= den Eintragstyp fest, dann genügt danach ein Name, um mit diesen Einstellungen abzufragen. Mit exit kehren Sie zur Shell zurück.

set all gibt alle aktuellen Einstellungen aus.

nslookup
> set type=txt
> set all
Default server: 192.0.2.53
Address: 192.0.2.53#53

Set options:
  novc			nodebug		nod2
  search		recurse
  timeout = 0		retry = 3	port = 53	ndots = 1
  querytype = txt     	class = IN
  srchlist = example.internal
> exit

querytype stand auf dem zuvor gesetzten txt. retry = 3 und port = 53 sind Standardwerte, die nicht geändert wurden.

7️⃣ nslookup unter Linux installieren und mit dig und host vergleichen

Wenn nslookup unter Linux [command not found] meldet, installieren Sie das Paket mit den BIND-Werkzeugen. Auf dem AlmaLinux-Server stammte nslookup aus dem Paket bind-utils.

rpm -qf /usr/bin/nslookup
bind-utils-9.16.20-30.el9_8.2.x86_64

Auf dem Debian-12-Server war es das Paket bind9-dnsutils. Der alte Name dnsutils existierte noch als Übergangspaket, das bind9-dnsutils installiert.

dpkg -S /usr/bin/nslookup
bind9-dnsutils: /usr/bin/nslookup

Auf RHEL-basierten Systemen installieren Sie das Paket bind-utils mit dem folgenden Befehl.

dnf install bind-utils

Auf Debian-basierten Systemen installieren Sie das Paket bind9-dnsutils.

apt install bind9-dnsutils

Im selben Paket sind auch dig und host enthalten. Alle drei Befehle fragen DNS ab, unterscheiden sich aber in der Form der Ausgabe.

BefehlAusgabeEinsatzbereich
nslookupServer-Zeile + Antwort, interaktiver ModusMehrere Namen und Einträge nacheinander abfragen
digAlle Abschnitte des Antwortpakets; mit +short nur die WerteNur die Werte in einem Skript auslesen
hostEin Satz pro EintragA, AAAA und MX auf einmal prüfen
host example.com
example.com has address 172.66.147.243
example.com has address 104.20.23.154
example.com has IPv6 address 2606:4700:10::6814:179a
example.com has IPv6 address 2606:4700:10::ac42:93f3
example.com mail is handled by 0 .

host fragte auch ohne Optionen die Einträge A, AAAA und MX auf einmal ab und gab jeden als einzeiligen Satz aus. Mit +short lässt dig nur die IP-Adressen übrig.

dig +short example.com
104.20.23.154
172.66.147.243

Um in einem Skript nur die Werte auszulesen, ist dig +short einfacher zu handhaben, und um mehrere Namen nacheinander zu prüfen, ist der interaktive Modus von nslookup bequemer.

🌏 Wenn Sie bis hierher gelesen haben
Dieselben Informationen ohne Befehle ansehen
Die mit nslookup geprüften Nameserver und Einträge lassen sich auch im Web genauso abfragen. Die Whois-Domainabfrage ergänzt dazu die Registrierungsdaten und das Ablaufdatum aus dem whois-Befehl und zeigt alles auf einem Bildschirm.
Einsteiger Einfach die Domain eingeben, ohne Terminal oder CMD zu öffnen. Registrar, Registrierungsdatum, Ablaufdatum und Status werden übersichtlich angezeigt, dazu die verbleibenden Tage bis zum Ablauf.
Profis Vergleichen Sie die im Whois eingetragenen Nameserver mit den tatsächlichen DNS-Antworten nebeneinander und prüfen Sie die Einträge A, AAAA, NS, MX und TXT, die TTL und sogar den Whois-Originaltext.
Domainabfrage öffnen

🔲 Simulator für den nslookup-Befehl

Im folgenden Simulator können Sie nslookup selbst eingeben und dabei Eintragstyp und DNS-Server wechseln.

Simulator für den nslookup-Befehlnslookup 9.16
[root@server work]#
Läuft nur in deinem Browser; die Antworten kommen aus einem virtuellen DNS mit Werten aus echten Abfragen, und mit ↑↓ holst du frühere Befehle zurück.

🔢 FAQ & empfohlene Inhalte

Auch bei nslookup unter Windows ist das erste Argument der abzufragende Name und das zweite der DNS-Server. Ohne Argumente gelangen Sie in den interaktiven Modus mit der Eingabeaufforderung >. Die Ausgabetexte unter Windows können von Linux abweichen.

nslookup endet mit dem Exit-Code 1, wenn auch nur eine Abfrage fehlschlägt. Nach der Abfrage von example.invalid, die NXDOMAIN ergab, war der ausgegebene Exit-Code 1, nach der Abfrage von example.com war er 0.

Mit -type=aaaa wird nur der AAAA-Eintrag abgefragt. Für example.com kamen so nur die beiden IPv6-Adressen ohne IPv4-Adresse.

ℹ️ Affiliate-Hinweis
Die Inhalte dieser Website enthalten Affiliate-Links. Kauft ein Besucher über einen dieser Links ein Produkt oder eine Dienstleistung, erhält die Website vom Verkäufer eine Provision. Der Betrag, den der Käufer zahlt(bei Aktionsrabatten sinkt er ↓), steigt dadurch nicht. Angegebene Preise, Rabatte und Lagerbestände entsprechen dem Stand bei Erstellung und können abweichen; prüfe sie daher vor dem Kauf beim Verkäufer. Produkte werden nach eigenen Kriterien ausgewählt und bewertet, und Provisionen beeinflussen weder die Reihenfolge noch den Inhalt der Bewertungen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Beweisen Sie, dass Sie ein Mensch sind: 6   +   8   =