Commande nslookup : utilisation et options, interrogation des enregistrements et choix du serveur DNS
La commande nslookup est un outil d'interrogation qui demande à un serveur DNS un nom de domaine et renvoie ses adresses IP et ses enregistrements DNS comme MX, NS et TXT. En interrogeant par type les enregistrements de example.com sur un serveur AlmaLinux 9 et en changeant le serveur DNS interrogé, le même domaine a donné des résultats différents selon le serveur choisi : la ligne Non-authoritative answer en tête de la réponse disparaissait, ou le résultat de la requête ANY changeait.
La sortie ci-dessous a été obtenue avec le compte root sur un serveur AlmaLinux 9.8. L'adresse du serveur DNS configuré sur le serveur a été remplacée par la valeur d'exemple 192.0.2.53, et les numéros de version des paquets ont aussi été remplacés par des valeurs d'exemple.
1️⃣ Utilisation de la commande nslookup
La forme de base est [nslookup -option nom serveur-DNS], et les options et le serveur DNS peuvent être omis. Si vous n'indiquez qu'un nom, nslookup demande l'adresse de ce nom au serveur DNS configuré sur le serveur.
nslookup example.comServer: 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:93f3Les deux lignes Server et Address du haut indiquent le serveur DNS qui a reçu la requête, et le #53 final est le numéro de port DNS. Sans type d'enregistrement précisé, nslookup interroge l'enregistrement A (IPv4) puis l'enregistrement AAAA (IPv6), c'est pourquoi deux adresses IPv6 ont suivi deux adresses IPv4.
Non-authoritative answer signifie que la réponse vient d'un serveur DNS qui avait la valeur en cache, et non du serveur qui gère directement les enregistrements de example.com. Juste après la modification d'un enregistrement, la valeur peut donc différer de la valeur réelle.
2️⃣ Options de nslookup
Les options s'écrivent avec un tiret devant leur nom.
-type est la même option que -query ou la forme courte -q. En interrogeant 8.8.8.8 avec -q=mx, on a obtenu la même ligne de serveur de messagerie qu'avec -type=mx.
nslookup -q=mx google.com 8.8.8.8Server: 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 et -retry fixent combien de temps attendre un serveur DNS qui ne répond pas. 192.0.2.1 est une adresse réservée à la documentation, aucun serveur n'y répond donc.
nslookup -timeout=2 -retry=1 example.com 192.0.2.1;; connection timed out; no servers could be reachedAvec -timeout=2 -retry=1, nslookup a affiché la ligne [connection timed out] au bout de 2 secondes puis s'est arrêté. Avec -retry=2, il a fallu 4 secondes, et sans option, 15 secondes. Pour qu'un script ne reste pas bloqué longtemps sur un serveur qui ne répond pas, réduisez ces deux valeurs.
Avec -debug, les sections question et réponse du paquet de réponse s'affichent telles quelles.
nslookup -debug example.com 8.8.8.8Server: 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:93f3Chaque enregistrement a reçu un ttl = 300 absent de la sortie normale. Cela veut dire que le serveur DNS qui a reçu cette réponse peut garder l'enregistrement en cache jusqu'à 300 secondes.
-norecurse demande au serveur DNS de ne répondre qu'avec ce qu'il possède déjà, sans chercher via d'autres serveurs. Sans l'option, la même requête vers 8.8.8.8 a renvoyé quatre adresses, mais avec -norecurse elle s'est terminée par [SERVFAIL].
nslookup -norecurse example.com 8.8.8.8Server: 8.8.8.8
Address: 8.8.8.8#53
** server can't find example.com: SERVFAIL| Option | Copier | Description |
|---|---|---|
| -type= | Indique le type d'enregistrement à interroger ; sans lui, A puis AAAA | |
| -q= | Même option que -type, indique le type d'enregistrement à interroger | |
| -timeout= | Délai d'attente de la réponse à la première requête (secondes) | |
| -retry= | Nombre d'envois de la requête en l'absence de réponse | |
| -debug | Affiche la question et la réponse du paquet, jusqu'au TTL | |
| -norecurse | Demande seulement les valeurs de ce serveur, sans passer par d'autres serveurs |
| Option | Copier | Description |
|---|---|---|
| -query= | Même option que -type, indique le type d'enregistrement à interroger | |
| -port= | Indique le port à interroger, 53 par défaut | |
| -version | Affiche la version et quitte |
3️⃣ Interroger les enregistrements avec nslookup (MX, NS, TXT, SOA)
Si vous écrivez un type d'enregistrement après -type=, seul cet enregistrement est interrogé. La valeur peut s'écrire en majuscules ou en minuscules.
| Valeur de -type= | Informations contenues |
|---|---|
| A · AAAA | Adresse IPv4, adresse IPv6 |
| MX | Serveur qui reçoit le courrier et sa priorité |
| NS | Serveurs de noms qui gèrent les enregistrements du domaine |
| TXT | Valeurs texte comme SPF |
| SOA | Serveur de noms principal de la zone, courriel de l'administrateur, numéro de série, intervalles de mise à jour |
| CNAME | Alias qui renvoie vers un autre nom |
| PTR | Nom d'hôte associé à une adresse IP (inverse) |
| ANY | Demande tous les enregistrements de ce nom en une fois |
Les serveurs de messagerie se vérifient avec l'enregistrement MX.
nslookup -type=mx google.comServer: 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:Le 10 qui suit mail exchanger est la priorité. S'il y a plusieurs serveurs de messagerie, l'expéditeur tente la livraison en commençant par le serveur au plus petit numéro. La même requête sur example.com a renvoyé [mail exchanger = 0 .], et un MX réduit à un seul point signifie que ce domaine ne reçoit pas de courrier.
Le [Authoritative answers can be found from:] à la fin de la requête MX est une ligne d'en-tête sous laquelle s'affichent les informations sur les serveurs de noms faisant autorité incluses dans la réponse. Dans les requêtes MX, NS et TXT de cet article, la réponse ne contenait pas ces informations, si bien que rien n'apparaissait sous l'en-tête.
L'enregistrement NS contient les serveurs de noms qui gèrent directement les enregistrements du domaine.
nslookup -type=ns example.comServer: 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 avait deux serveurs de noms. Ces deux serveurs sont les serveurs de noms faisant autorité pour example.com.
Un enregistrement TXT peut contenir des valeurs texte sans format imposé.
nslookup -type=txt example.comServer: 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 est une valeur SPF qui indique qu'aucun serveur n'a le droit d'envoyer du courrier sous ce nom de domaine. Quand un domaine a plusieurs enregistrements TXT, ils s'affichent ainsi, un par ligne.
L'enregistrement SOA contient les informations de base de la zone.
nslookup -type=soa example.comServer: 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 est le serveur de noms principal, et mail addr est l'adresse électronique de l'administrateur où le @ est écrit sous forme de point. serial est un numéro de série qui augmente à chaque modification des enregistrements, et refresh, retry et expire sont des durées (en secondes) que les serveurs de noms secondaires utilisent pour synchroniser leurs enregistrements avec le serveur principal. minimum est la durée pendant laquelle une réponse sur un enregistrement inexistant reste en cache.
Les alias se vérifient avec l'enregistrement CNAME. La requête sur www.github.com a renvoyé une ligne indiquant qu'il s'agit d'un alias de github.com.
nslookup -type=cname www.github.comServer: 192.0.2.53
Address: 192.0.2.53#53
www.github.com canonical name = github.com.-type=any demande tous les enregistrements de ce nom en une fois. En interrogeant le serveur DNS configuré sur le serveur, on a obtenu ensemble les enregistrements A, AAAA, MX et NS.
nslookup -type=any example.comServer: 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:La même requête envoyée à 8.8.8.8 n'a renvoyé qu'une ligne [hinfo = “RFC8482”] et une ligne de signature.
nslookup -type=any example.com 8.8.8.8Server: 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:La RFC 8482 est le document qui permet de répondre à une requête ANY par une réponse courte au lieu de tous les enregistrements. Interrogez donc les enregistrements utiles en précisant un type à la fois.
4️⃣ Indiquer le serveur DNS dans nslookup
Si vous indiquez un serveur DNS après le nom, nslookup interroge ce serveur au lieu du serveur DNS configuré sur le serveur.
nslookup example.com 8.8.8.8Server: 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:93f3La ligne Server est passée à 8.8.8.8, et les quatre adresses étaient les mêmes que dans la réponse du serveur DNS configuré sur le serveur. Après un changement de serveurs de noms, cette forme sert à vérifier si les nouvelles valeurs se sont propagées à chaque serveur DNS public.
Si vous indiquez comme serveur DNS l'un des serveurs de noms obtenus par la requête NS, vous interrogez directement le serveur faisant autorité.
nslookup example.com elliott.ns.cloudflare.comServer: 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:93f3Cette fois, la ligne Non-authoritative answer a disparu. La valeur vient directement du serveur qui gère les enregistrements : c'est donc la valeur actuelle, sans passage par un cache. Dans Address, juste sous la ligne Server, s'est affichée l'adresse IPv6 de ce serveur de noms.
Si vous interrogez un nom qui n'existe pas, [NXDOMAIN] s'affiche. .invalid est un domaine de premier niveau réservé pour ne jamais être utilisé, la réponse indique donc que le nom n'existe pas.
nslookup example.invalidServer: 192.0.2.53
Address: 192.0.2.53#53
** server can't find example.invalid: NXDOMAINEn revanche, no-such-host.example.com s'est terminé par [No answer] au lieu de NXDOMAIN. Cela veut dire que l'enregistrement demandé ne figurait pas dans la réponse, un résultat différent de NXDOMAIN, où le nom lui-même n'existe pas.
nslookup no-such-host.example.comServer: 192.0.2.53
Address: 192.0.2.53#53
Non-authoritative answer:
*** Can't find no-such-host.example.com: No answer5️⃣ Recherche inverse avec nslookup
Si vous indiquez une adresse IP au lieu d'un nom, nslookup interroge l'enregistrement PTR et trouve le nom d'hôte associé à cette adresse.
nslookup 8.8.8.88.8.8.8.in-addr.arpa name = dns.google.
Authoritative answers can be found from:8.8.8.8.in-addr.arpa est le nom obtenu en écrivant l'adresse IPv4 à l'envers et en ajoutant in-addr.arpa. La valeur de l'enregistrement PTR de ce nom, dns.google., est le nom d'hôte de 8.8.8.8.
Dans la recherche inverse, les deux lignes Server du haut ne sont pas apparues. La même adresse interrogée avec nslookup 9.18 sur un serveur Debian 12 a donné la même forme.
6️⃣ Mode interactif de nslookup
Si vous lancez nslookup sans argument, vous entrez dans le mode interactif avec l'invite >. Pour interroger plusieurs noms et types d'enregistrements à la suite, vous n'avez pas à retaper la commande entière.
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:
> exitChangez le serveur DNS interrogé avec server et fixez le type d'enregistrement avec set type= : ensuite, il suffit de taper un nom pour l'interroger avec ces réglages. Tapez exit pour revenir au shell.
set all affiche tous les réglages actuels.
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
> exitquerytype était passé à txt, la valeur fixée plus haut. retry = 3 et port = 53 sont des valeurs par défaut qui n'ont pas été modifiées.
7️⃣ Installer nslookup sous Linux et le comparer à dig et host
Si nslookup renvoie [command not found] sous Linux, installez le paquet des outils BIND. Sur le serveur AlmaLinux, nslookup provenait du paquet bind-utils.
rpm -qf /usr/bin/nslookupbind-utils-9.16.20-30.el9_8.2.x86_64Sur le serveur Debian 12, il s'agissait du paquet bind9-dnsutils. L'ancien nom dnsutils existait encore comme paquet de transition qui installe bind9-dnsutils.
dpkg -S /usr/bin/nslookupbind9-dnsutils: /usr/bin/nslookupSur les systèmes de la famille RHEL, installez le paquet bind-utils avec la commande ci-dessous.
dnf install bind-utilsSur les systèmes de la famille Debian, installez le paquet bind9-dnsutils.
apt install bind9-dnsutilsLe même paquet contient aussi dig et host. Les trois commandes interrogent le DNS, mais leur sortie a une forme différente.
| Commande | Sortie | Usage |
|---|---|---|
| nslookup | Ligne Server + réponse, mode interactif | Interroger plusieurs noms et enregistrements à la suite |
| dig | Toutes les sections du paquet de réponse ; avec +short, seulement les valeurs | Extraire seulement les valeurs dans un script |
| host | Une phrase par enregistrement | Vérifier A, AAAA et MX en une fois |
host example.comexample.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 .Même sans option, host a interrogé en une fois les enregistrements A, AAAA et MX et a affiché chacun sous forme de phrase d'une ligne. Avec +short, dig ne garde que les adresses IP.
dig +short example.com104.20.23.154
172.66.147.243Pour extraire seulement les valeurs dans un script, dig +short est plus simple à manier, et pour vérifier plusieurs noms à la suite, le mode interactif de nslookup est plus pratique.
🔲 Simulateur de la commande nslookup
Dans le simulateur ci-dessous, vous pouvez saisir nslookup vous-même en changeant le type d'enregistrement et le serveur DNS.
🔢 FAQ & contenus recommandés
Requête DNS
Commande host sous Linux | commande de requête DNS
Un article qui explique comment trouver avec la commande host l'adresse IP d'un nom d'hôte et, à l'inverse, le nom d'hôte d'une adresse IP.
Recherche web
Sites pour vérifier les enregistrements DNS et mesurer les performances des serveurs de noms
Un article sur la vérification des valeurs d'enregistrements DNS depuis plusieurs régions avec whatsmydns et la comparaison de la vitesse de réponse des serveurs DNS avec DNSPerf.
ℹ️ Mention d'affiliation
Le contenu de ce site contient des liens d'affiliation. Lorsqu'un visiteur achète un produit ou un service via l'un de ces liens, le site perçoit une commission du vendeur. Le montant payé par l'acheteur(il baisse lors des promotions ↓), lui, n'augmente pas. Les prix, remises et stocks indiqués correspondent à la date de rédaction et peuvent différer ; vérifiez-les donc auprès du vendeur avant d'acheter. Les produits sont choisis et évalués selon nos propres critères, et les commissions n'influencent ni l'ordre de présentation ni le contenu des évaluations.