Filters
Zo zoek je
  • Gewone woorden vinden namen, teksten en voorbeelden.
  • "twee woorden" vindt precies die zin.
  • --naam of -x vindt een optie.
  • #woord zoekt alleen in commando's.
  • @grep vindt lessen en labs die grep gebruiken.
  • Filters: cat:network · in:labs · in:notes · level:rhcsa · ch:8 · root:yes. Zet ! voor een woord om het weg te laten. OR tussen woorden betekent één ervan.
  • ↑ ↓ bewegen · Enter openen · Esc sluiten · / zoeken

nslookup

Vraag een DNS-server om het adres van een naam, of om andere DNS-records (mail, tekst, nameservers).

Niveau
Dagelijks Linux
Groep
Netwerk
Root nodig
Nee
Pakket
bind-utils

Wat het doet

nslookup stuurt een vraag naar een DNS-server en toont het antwoord. Het werkt op Linux, macOS en Windows, dus het is handig om te kennen als je andere mensen helpt.

Je kunt het op twee manieren gebruiken:

  • Eén vraag: nslookup NAAM [SERVER]. Het toont het antwoord en stopt.
  • Interactief: typ alleen nslookup. Je krijgt een >-prompt en kunt veel vragen stellen, de server of het recordtype wijzigen.

nslookup vraagt alleen DNS. Het leest /etc/hosts niet. Om te testen wat het systeem echt gebruikt (hosts-bestand + DNS), gebruik je getent hosts NAAM. Voor meer details en schone uitvoer in scripts is dig de betere tool.

Op Red Hat Enterprise Linux zit het in het pakket bind-utils (dnf install bind-utils).

Zo schrijf je het

nslookup [-option ...] [name | -] [server]
nslookup -type=TYPE name [server]
nslookup                      (interactive mode)

Opties 20

Meest gebruikt

Opties op de commandoregel (ook met "set" in de interactieve modus)

-type=TYPE, -query=TYPE, -q=TYPE
Het recordtype om naar te vragen: A, AAAA, MX, TXT, NS, SOA, PTR, CNAME, SRV, CAA, ANY. Standaard: A en AAAA.
-port=n
Vraag op een andere poort dan 53, bijvoorbeeld bij een test-DNS-server.
-timeout=seconds
Hoe lang wachten op een antwoord voor je opnieuw probeert.
-retry=n
Hoe vaak opnieuw proberen.
-debug, -nodebug
Toon het volledige antwoord met alle secties en de TTL-waarden.
-d2, -nod2
Nog meer debuguitvoer: wat nslookup verstuurt en ontvangt.
-domain=name
Stel het zoekdomein in voor korte namen.
-search, -nosearch
Voeg de zoekdomeinen toe aan namen zonder punt aan het einde (standaard aan).
-recurse, -norecurse
Vraag de server om het antwoord voor je te zoeken (standaard aan). -norecurse toont alleen wat deze server weet.
-vc, -novc
Gebruik TCP in plaats van UDP.
-fail, -nofail
Met -fail stoppen als een server SERVFAIL antwoordt. Met -nofail (standaard) de volgende server proberen.
-ndots=n
Een naam met zoveel punten wordt eerst gevraagd zoals hij is, voor de zoekdomeinen.
-class=CLASS
De DNS-klasse: IN (internet, standaard), CH, HS of ANY.
-all
In de interactieve modus (als set all): toon de huidige instellingen.
-version
Toon de versie en stop.

Commando's in de interactieve modus

name [server]
Zoek een naam op (of een IP-adres voor de omgekeerde naam).
server server
Gebruik een andere DNS-server voor de volgende vragen.
lserver server
Zoals server, maar gebruik de eerste server om het adres van de nieuwe server te vinden.
set keyword[=<value>]
Wijzig een instelling, bijvoorbeeld set type=mx of set debug.
exit
Verlaat de interactieve modus. Ctrl+D werkt ook.

Voorbeelden 14

$ als gewone gebruiker# als root (of met sudo)

  1. 1Het adres van een naam vinden

    nslookup www.redhat.com
    Server:         192.168.122.1
    Address:        192.168.122.1#53
     
    Non-authoritative answer:
    www.redhat.com  canonical name = ds-www.redhat.com.edgekey.net.
    ...

    "Server" is de DNS-server die antwoordde. "Non-authoritative" betekent dat het uit een cache kwam, niet van de eigenaar van het domein.

  2. 2De naam van een IP-adres vinden (omgekeerd opzoeken)

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

    Handig bij incident response: welke host zit achter een IP-adres in je logs? Niet elk adres heeft een omgekeerde naam.

  3. 3Eén DNS-server direct vragen

    nslookup app.example.com 10.0.0.53
    nslookup app.example.com 1.1.1.1

    Vergelijk de interne en een publieke server. Verschillende antwoorden wijzen op split DNS of een oud record in één cache.

  4. 4De mailservers van een domein vinden

    nslookup -type=mx example.com
    example.com     mail exchanger = 10 mx1.example.com.

    Het laagste getal heeft de hoogste prioriteit. Controleer dit als mail niet aankomt.

  5. 5Het SPF-record van een domein controleren (mailbeveiliging)

    nslookup -type=txt example.com
    example.com     text = "v=spf1 include:_spf.example.com -all"

    SPF noemt de servers die mail voor het domein mogen versturen. "-all" betekent: weiger alle andere.

  6. 6Het DMARC-record controleren

    nslookup -type=txt _dmarc.example.com

    Geen antwoord betekent geen DMARC-beleid: anderen kunnen dan makkelijker nepmail namens het domein sturen.

  7. 7De nameservers van een domein vinden

    nslookup -type=ns example.com

    Toont welke servers de eigenaar (authoritative) van het domein zijn. Vraag hen direct om de echte records te zien.

  8. 8Het SOA-record en het serienummer bekijken

    nslookup -type=soa example.com

    Na een wijziging in een zone moet het serienummer omhoog, anders nemen andere servers de wijziging niet over.

  9. 9Controleren welke certificaatautoriteiten certificaten mogen uitgeven

    nslookup -type=caa example.com

    Een CAA-record staat alleen sommige CA's (bijvoorbeeld Let's Encrypt) toe om certificaten voor het domein te maken.

  10. 10Een dienst vinden met een SRV-record (zoals LDAP of Kerberos)

    nslookup -type=srv _ldap._tcp.corp.example.com

    Linux-clients die lid worden van Active Directory of IdM vinden de domeincontrollers op deze manier.

  11. 11Het volledige antwoord met TTL-waarden zien

    nslookup -debug app.example.com

    De TTL toont hoe lang servers het antwoord in de cache houden. Verlaag hem voordat je een dienst naar een nieuw IP verhuist.

  12. 12In een script wachten tot een nieuwe naam werkt

    until nslookup -timeout=2 -retry=1 app.example.com >/dev/null 2>&1; do sleep 10; done; echo "DNS is ready"

    Handig in een deploymentpipeline: ga pas door als het nieuwe DNS-record bestaat.

  13. 13Naamresolutie testen in een Kubernetes-pod

    kubectl exec -it debug-pod -- nslookup my-service.default.svc.cluster.local

    Als dit mislukt, controleer dan eerst de cluster-DNS (CoreDNS) voordat je naar je app kijkt.

  14. 14Veel vragen stellen in de interactieve modus

    nslookup
    > server 1.1.1.1
    > set type=aaaa
    > www.example.com
    > exit

    De interactieve modus onthoudt je instellingen tussen de vragen. Typ de woorden na de >-prompt van nslookup.

Let op

  • nslookup leest /etc/hosts niet. Een naam kan werken voor ping maar niet voor nslookup, of andersom.
  • Het type ANY wordt vaak geweigerd door moderne DNS-servers. Vraag naar het type dat je nodig hebt.
  • In de interactieve modus is de prompt >. Typ exit om te stoppen.
  • De exitcode is 1 als een vraag mislukte en 0 als het werkte. Scripts kunnen dit gebruiken.

Bestanden

/etc/resolv.conf
De DNS-servers en zoekdomeinen die nslookup standaard gebruikt.

Tips om te onthouden

  • Een naam = adres, een adres = naam.
  • Zet een server aan het einde om die server te vragen: nslookup NAAM SERVER.
  • -type= kiest het record: mx voor mail, txt voor SPF en DMARC, ns voor de eigenaar, ptr voor omgekeerd.

Volledige handleiding

Deze pagina legt het commando uit in eenvoudige woorden. De originele handleiding heeft elk detail.

In je terminal: man nslookup