Comando nslookup: uso y opciones, consulta de registros y elección del servidor DNS

Entorno de pruebaFamilia RHELAlmaLinux 9.8nslookup 9.16Cuenta rootDebian 12 cuenta normal
Comandos de rednslookupUbicación/usr/bin/nslookup

El comando nslookup es una herramienta de consulta que pregunta a un servidor DNS por un nombre de dominio y devuelve sus direcciones IP y registros DNS como MX, NS y TXT. Al consultar por tipo los registros de example.com en un servidor AlmaLinux 9 y cambiar el servidor DNS consultado, el mismo dominio dio resultados distintos según a qué servidor se preguntara: la línea Non-authoritative answer del inicio de la respuesta desaparecía o el resultado de la consulta ANY cambiaba.

La salida de abajo se obtuvo con la cuenta root en un servidor AlmaLinux 9.8. La dirección del servidor DNS configurado en el servidor se ha sustituido por el valor de ejemplo 192.0.2.53, y los números de versión de los paquetes también se han cambiado por valores de ejemplo.

1️⃣ Cómo usar el comando nslookup

La forma básica es [nslookup -opción nombre servidor-DNS], y tanto las opciones como el servidor DNS se pueden omitir. Si solo se escribe un nombre, nslookup pregunta la dirección de ese nombre al servidor DNS configurado en el servidor.

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

Las dos líneas Server y Address de arriba muestran el servidor DNS que recibió la consulta, y el #53 del final es el número de puerto de DNS. Si no se indica el tipo de registro, nslookup consulta primero el registro A (IPv4) y después el AAAA (IPv6), por eso a las dos direcciones IPv4 les siguieron dos direcciones IPv6.

Non-authoritative answer significa que respondió un servidor DNS que tenía el valor en su caché, y no el servidor que gestiona directamente los registros de example.com. Por eso, justo después de cambiar un registro, el valor puede no coincidir con el real.

2️⃣ Opciones de nslookup

Las opciones se escriben con un guion delante del nombre.

-type es la misma opción que -query o la forma corta -q. Al preguntar a 8.8.8.8 con -q=mx salió la misma línea de servidor de correo que con -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 y -retry fijan cuánto se espera a un servidor DNS que no responde. 192.0.2.1 es una dirección reservada para documentación, así que ningún servidor responde en ella.

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

Con -timeout=2 -retry=1, nslookup mostró la línea [connection timed out] a los 2 segundos y terminó. Con -retry=2 tardó 4 segundos, y sin ninguna opción tardó 15 segundos. Para que un script no se quede detenido mucho tiempo por un servidor que no responde, conviene bajar los dos valores.

Con -debug se muestran tal cual las secciones de pregunta y respuesta del paquete de respuesta.

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

Cada registro llevó un ttl = 300 que la salida normal no muestra. Indica que el servidor DNS que recibió esta respuesta puede guardar ese registro en caché hasta 300 segundos.

-norecurse pide al servidor DNS que responda solo con lo que ya tiene, sin buscarlo a través de otros servidores. Al preguntar al mismo 8.8.8.8 sin la opción salieron cuatro direcciones, pero con -norecurse la consulta terminó en [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
OpciónCopiarDescripción
-type=Indica el tipo de registro que se consulta; si se omite, A y luego AAAA
-q=Misma opción que -type, indica el tipo de registro que se consulta
-timeout=Tiempo de espera de la respuesta a la primera consulta (segundos)
-retry=Veces que se envía la consulta si no hay respuesta
-debugMuestra la pregunta y la respuesta del paquete, hasta el TTL
-norecursePide solo los valores que tiene ese servidor, sin pasar por otros servidores
OpciónCopiarDescripción
-query=Misma opción que -type, indica el tipo de registro que se consulta
-port=Indica el puerto que se consulta, 53 por defecto
-versionMuestra la versión y termina

3️⃣ Consulta de registros con nslookup (MX, NS, TXT, SOA)

Si se escribe un tipo de registro después de -type=, solo se consulta ese registro. El valor puede ir en mayúsculas o en minúsculas.

Valor de -type=Información que contiene
A · AAAADirección IPv4, dirección IPv6
MXServidor que recibe el correo y su prioridad
NSServidores de nombres que gestionan los registros del dominio
TXTValores de texto como SPF
SOAServidor de nombres principal de la zona, correo del administrador, número de serie, intervalos de actualización
CNAMEAlias que apunta a otro nombre
PTRNombre de host asociado a una dirección IP (inverso)
ANYPide todos los registros de ese nombre a la vez

Los servidores de correo se comprueban con el registro MX.

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:

El 10 que sigue a mail exchanger es la prioridad. Si hay varios servidores de correo, quien envía intenta la entrega empezando por el servidor con el número más bajo. La misma consulta sobre example.com devolvió [mail exchanger = 0 .], y un MX con un solo punto significa que este dominio no recibe correo.

El [Authoritative answers can be found from:] del final de la consulta MX es una línea de encabezado que muestra debajo la información de los servidores de nombres autoritativos incluida en la respuesta. En las consultas MX, NS y TXT de este artículo la respuesta no traía esa información, así que debajo del encabezado no apareció nada.

El registro NS contiene los servidores de nombres que gestionan directamente los registros del dominio.

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 tenía dos servidores de nombres. Estos dos servidores son los servidores de nombres autoritativos de example.com.

En un registro TXT se pueden guardar valores de texto sin un formato fijo.

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 es un valor SPF que indica que ningún servidor puede enviar correo con este nombre de dominio. Si un dominio tiene varios registros TXT, aparecen así, uno por línea.

El registro SOA contiene la información básica de la zona.

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 es el servidor de nombres principal, y mail addr es la dirección de correo del administrador con la @ escrita como punto. serial es un número de serie que sube cada vez que se cambian los registros, y refresh, retry y expire son valores de tiempo (en segundos) que usan los servidores de nombres secundarios para sincronizar los registros con el principal. minimum es el tiempo que se guarda en caché la respuesta a un registro que no existe.

Los alias se comprueban con el registro CNAME. Al consultar www.github.com salió una línea que indica que es un alias de github.com.

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 pide todos los registros de ese nombre a la vez. Al preguntar al servidor DNS configurado en el servidor salieron juntos los registros A, AAAA, MX y NS.

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:

Al enviar la misma consulta a 8.8.8.8 solo volvieron una línea [hinfo = “RFC8482”] y una línea de firma.

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 es el documento que permite responder a una consulta ANY con una respuesta corta en lugar de todos los registros. Por eso, los registros que se necesitan se consultan indicando un tipo cada vez.

4️⃣ Elegir el servidor DNS en nslookup

Si se escribe un servidor DNS después del nombre, nslookup pregunta a ese servidor en lugar del servidor DNS configurado en el servidor.

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

La línea Server cambió a 8.8.8.8, y las cuatro direcciones fueron las mismas que en la respuesta del servidor DNS configurado en el servidor. Esta forma sirve para comprobar, después de cambiar los servidores de nombres, si los nuevos valores ya llegaron a cada servidor DNS público.

Si se indica como servidor DNS uno de los servidores de nombres que salieron en la consulta NS, se pregunta directamente al servidor autoritativo.

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

Esta vez desapareció la línea Non-authoritative answer. Es el valor que respondió directamente el servidor que gestiona los registros, así que es el valor actual, sin pasar por una caché. En la Address justo debajo de la línea Server apareció la dirección IPv6 de este servidor de nombres.

Al consultar un nombre que no existe aparece [NXDOMAIN]. .invalid es un dominio de nivel superior reservado para no usarse nunca, así que la respuesta fue que el nombre no existe.

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

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

En cambio, no-such-host.example.com terminó con [No answer] en lugar de NXDOMAIN. Significa que el registro consultado no venía en la respuesta, un resultado distinto de NXDOMAIN, en el que el propio nombre no existe.

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️⃣ Consulta inversa con nslookup

Si se escribe una dirección IP en lugar de un nombre, nslookup consulta el registro PTR y busca el nombre de host asociado a esa dirección.

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 es el nombre que se forma al escribir la dirección IPv4 al revés y añadir in-addr.arpa. El valor del registro PTR de este nombre, dns.google., es el nombre de host de 8.8.8.8.

En la consulta inversa no aparecieron las dos líneas Server de arriba. Al consultar la misma dirección con nslookup 9.18 en un servidor Debian 12, la forma fue la misma.

6️⃣ Modo interactivo de nslookup

Si se ejecuta nslookup sin argumentos, se entra en el modo interactivo con el indicador >. Para consultar varios nombres y tipos de registro seguidos no hace falta volver a escribir el comando completo.

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

Si se cambia el servidor DNS consultado con server y se fija el tipo de registro con set type=, a partir de ahí basta con escribir un nombre para consultarlo con esa configuración. Al escribir exit se vuelve a la shell.

set all muestra todos los valores de configuración actuales.

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 había cambiado a txt, el valor fijado antes. retry = 3 y port = 53 son valores por defecto que no se cambiaron.

7️⃣ Instalar nslookup en Linux y compararlo con dig y host

Si al ejecutar nslookup en Linux sale [command not found], hay que instalar el paquete de herramientas de BIND. En el servidor AlmaLinux, nslookup venía en el paquete bind-utils.

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

En el servidor Debian 12 era el paquete bind9-dnsutils. El nombre antiguo dnsutils seguía existiendo como paquete de transición que instala bind9-dnsutils.

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

En la familia RHEL, el paquete bind-utils se instala con el comando de abajo.

dnf install bind-utils

En la familia Debian se instala el paquete bind9-dnsutils.

apt install bind9-dnsutils

En el mismo paquete vienen también dig y host. Los tres comandos consultan DNS, pero su salida tiene otra forma.

ComandoSalidaCuándo usarlo
nslookupLínea Server + respuesta, modo interactivoConsultar varios nombres y registros seguidos
digTodas las secciones del paquete de respuesta; con +short, solo los valoresSacar solo los valores en un script
hostUna frase por registroComprobar A, AAAA y MX a la vez
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, incluso sin opciones, consultó a la vez los registros A, AAAA y MX y mostró cada uno como una frase de una línea. Con +short, dig deja solo las direcciones IP.

dig +short example.com
104.20.23.154
172.66.147.243

Para sacar solo los valores en un script, dig +short es más fácil de manejar, y para comprobar varios nombres seguidos resulta más cómodo el modo interactivo de nslookup.

🌏 Si has leído hasta aquí
Cómo ver la misma información sin comandos
Los servidores de nombres y registros que se comprueban con nslookup también se pueden consultar tal cual en la web. La consulta de dominios Whois añade los datos de registro y la fecha de vencimiento del comando whois y lo muestra todo en una sola pantalla.
Principiantes Basta con escribir el dominio, sin abrir una terminal ni CMD. Aparecen ordenados el registrador, la fecha de registro, la fecha de vencimiento y el estado, junto con los días que faltan para el vencimiento.
Expertos Permite comparar lado a lado los servidores de nombres registrados en Whois con las respuestas DNS reales y revisar los registros A, AAAA, NS, MX y TXT, el TTL y hasta el texto original de Whois.
Abrir consulta de dominios

🔲 Simulador del comando nslookup

En el simulador de abajo puedes escribir nslookup tú mismo cambiando el tipo de registro y el servidor DNS.

Simulador del comando nslookupnslookup 9.16
[root@server work]#
Funciona solo dentro de tu navegador; las respuestas salen de un DNS virtual con valores de consultas reales, y ↑↓ recupera los comandos que escribiste antes.

🔢 FAQ & contenido recomendado

En nslookup de Windows también el primer argumento es el nombre que se consulta y el segundo es el servidor DNS. Si se ejecuta sin argumentos, entra en el modo interactivo con el indicador >. Los textos de la salida en Windows pueden ser distintos de los de Linux.

nslookup termina con el código de salida 1 si falla aunque sea una consulta. Al mostrar el código de salida después de la consulta de example.invalid que dio NXDOMAIN salió 1, y después de la consulta de example.com fue 0.

Con -type=aaaa solo se consulta el registro AAAA. Al ejecutarlo sobre example.com salieron solo las dos direcciones IPv6, sin ninguna dirección IPv4.

ℹ️ Aviso de afiliados
El contenido de este sitio incluye enlaces de afiliado. Cuando un visitante compra un producto o servicio a través de uno de ellos, el sitio recibe una comisión del vendedor. El importe que paga el comprador(baja durante las promociones ↓)no aumenta. Los precios, descuentos y existencias publicados corresponden al momento de redacción y pueden variar, así que confírmalos con el vendedor antes de comprar. Los productos se eligen y evalúan con criterios propios, y las comisiones no influyen en el orden ni en el contenido de las reseñas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Demuestra que eres humano: 9   +   3   =