Saltar al contenido principal
Volver al blog
· 9 min de lectura

nslookup: consultas DNS interactivas desde la terminal

Guía de referencia del comando nslookup en Linux y macOS: sintaxis, modo interactivo y no interactivo, tipos de registro, ejemplos prácticos para diagnóstico DNS y comparación con dig.

linux networking sre

nslookup (Name Server Lookup) es una herramienta de línea de comandos para consultar servidores DNS y obtener información sobre la resolución de nombres de dominio. Permite verificar registros DNS, diagnosticar problemas de resolución y comprobar la configuración de servidores de nombres. Está disponible en prácticamente todos los sistemas operativos, lo que la convierte en una de las herramientas DNS más accesibles.

Instalación

Debian/Ubuntu/Raspberry Pi

nslookup forma parte del paquete dnsutils (o bind9-dnsutils en versiones recientes):

sudo apt update && sudo apt install dnsutils

macOS

nslookup viene preinstalado en macOS como parte de las herramientas de red del sistema.

Windows

nslookup viene preinstalado en todas las versiones de Windows. Se ejecuta desde el símbolo del sistema (cmd) o PowerShell.

Verificar la instalación

nslookup -version

Modos de operación

nslookup puede operar en dos modos: no interactivo e interactivo.

Modo no interactivo

Se ejecuta como un comando único con argumentos. Es el modo más utilizado en scripts y diagnósticos rápidos:

nslookup <dominio> [servidor]
nslookup example.com

Modo interactivo

Se inicia ejecutando nslookup sin argumentos. Abre un prompt donde se pueden realizar múltiples consultas consecutivas:

nslookup

Dentro del modo interactivo:

> example.com
> set type=MX
> example.com
> exit

El modo interactivo es útil cuando se necesitan realizar varias consultas seguidas o cambiar opciones de búsqueda entre consultas.

Uso básico

nslookup example.com

Salida típica:

Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
Name:   example.com
Address: 93.184.216.34
CampoDescripción
Server / AddressEl servidor DNS que respondió la consulta y su dirección IP
Non-authoritative answerIndica que la respuesta proviene de una caché, no del servidor autoritativo
Name / AddressEl dominio consultado y su dirección IP resuelta

Si la respuesta es autoritativa, significa que proviene directamente del servidor de nombres responsable del dominio, sin intermediarios ni caché.

Especificar un servidor DNS

Para usar un servidor DNS diferente al configurado en el sistema:

nslookup example.com 8.8.8.8

El segundo argumento indica el servidor DNS a consultar. Ejemplos con diferentes proveedores:

# Google DNS
nslookup example.com 8.8.8.8

# Cloudflare DNS
nslookup example.com 1.1.1.1

# Quad9 DNS
nslookup example.com 9.9.9.9

Consultar tipos de registro

Registros A (IPv4)

nslookup -type=A example.com

Los registros A son el tipo por defecto. Devuelven la dirección IPv4 asociada al dominio.

Registros AAAA (IPv6)

nslookup -type=AAAA example.com

Registros MX (correo)

nslookup -type=MX example.com

Salida típica:

Non-authoritative answer:
example.com     mail exchanger = 10 mail.example.com.
example.com     mail exchanger = 20 mail2.example.com.

El número antes del servidor indica la prioridad: menor valor = mayor prioridad.

Registros NS (servidores de nombres)

nslookup -type=NS example.com

Devuelve los servidores de nombres autoritativos para el dominio.

Registros CNAME (alias)

nslookup -type=CNAME www.example.com

Registros TXT

nslookup -type=TXT example.com

Los registros TXT contienen información de texto como políticas SPF, verificaciones de dominio y configuraciones DKIM.

Registros SOA (inicio de autoridad)

nslookup -type=SOA example.com

Salida típica:

Non-authoritative answer:
example.com
        origin = ns1.example.com
        mail addr = admin.example.com
        serial = 2024010101
        refresh = 3600
        retry = 900
        expire = 604800
        minimum = 86400

Registros SRV (servicios)

nslookup -type=SRV _sip._tcp.example.com

Tabla de tipos de registro

TipoFlagDescripción
A-type=ADirección IPv4
AAAA-type=AAAADirección IPv6
MX-type=MXServidores de correo
NS-type=NSServidores de nombres
CNAME-type=CNAMEAlias de dominio
TXT-type=TXTRegistros de texto (SPF, DKIM, etc.)
SOA-type=SOAInicio de autoridad
SRV-type=SRVUbicación de servicios
PTR-type=PTRRegistro inverso (IP a dominio)
CAA-type=CAAAutorización de autoridad de certificación
ANY-type=ANYTodos los registros disponibles

Consulta inversa (IP a dominio)

Para obtener el nombre de dominio asociado a una dirección IP:

nslookup 8.8.8.8

Salida:

Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
8.8.8.8.in-addr.arpa    name = dns.google.

Opciones del modo interactivo

En el modo interactivo, se pueden configurar opciones con el comando set:

ComandoDescripción
set type=<tipo>Cambia el tipo de registro a consultar
set debugActiva la salida detallada con información de debug
set nodebugDesactiva la salida de debug
set d2Activa la salida de debug exhaustiva
set domain=<dom>Establece el dominio de búsqueda por defecto
set timeout=<seg>Establece el tiempo de espera en segundos
set retry=<n>Establece el número de reintentos
set port=<puerto>Cambia el puerto del servidor DNS (defecto: 53)
set searchUsa la lista de búsqueda de dominios
set nosearchNo usa la lista de búsqueda de dominios
set recurseSolicita consultas recursivas (defecto)
set norecurseSolicita consultas no recursivas (iterativas)
server <ip>Cambia el servidor DNS para consultas siguientes
exitSale del modo interactivo

Ejemplo de sesión interactiva

$ nslookup
> set type=MX
> example.com
Non-authoritative answer:
example.com     mail exchanger = 10 mail.example.com.

> set type=NS
> example.com
Non-authoritative answer:
example.com     nameserver = ns1.example.com.
example.com     nameserver = ns2.example.com.

> set type=TXT
> example.com
Non-authoritative answer:
example.com     text = "v=spf1 include:_spf.example.com ~all"

> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53

> example.com
Non-authoritative answer:
example.com     text = "v=spf1 include:_spf.example.com ~all"

> exit

Modo debug

El modo debug muestra información detallada sobre la consulta y la respuesta DNS, incluyendo los paquetes intercambiados:

nslookup -debug example.com

En modo interactivo:

> set debug
> example.com

La salida de debug incluye:

  • Headers de la consulta y respuesta
  • Flags (recursion desired, recursion available, etc.)
  • TTL de cada registro
  • Secciones AUTHORITY y ADDITIONAL completas
  • Tamaño del mensaje

Es útil para diagnosticar problemas de resolución DNS donde la salida estándar no proporciona suficiente información.

Ejemplos prácticos

Verificar la resolución de un dominio

nslookup midominio.com

Si devuelve ** server can't find midominio.com: NXDOMAIN, el dominio no existe o no tiene registros DNS configurados.

Verificar registros MX para diagnóstico de correo

nslookup -type=MX midominio.com

Si no devuelve registros MX, el dominio no puede recibir correo electrónico.

Verificar SPF y DMARC

# Registro SPF
nslookup -type=TXT midominio.com

# Registro DMARC
nslookup -type=TXT _dmarc.midominio.com

Consultar los servidores autoritativos

# Obtener los NS
nslookup -type=NS midominio.com

# Consultar directamente un NS autoritativo
nslookup midominio.com ns1.midominio.com

Verificar la propagación DNS

Consulta el mismo dominio en diferentes servidores DNS para comprobar si los cambios se han propagado:

nslookup midominio.com 8.8.8.8
nslookup midominio.com 1.1.1.1
nslookup midominio.com 9.9.9.9

Si los servidores devuelven direcciones IP diferentes, la propagación aún no se ha completado.

Consulta inversa para verificar PTR

nslookup 203.0.113.50

Los registros PTR son importantes para la entrega de correo electrónico. Muchos servidores de correo rechazan mensajes de IPs sin un registro PTR válido.

Diagnosticar un servidor DNS específico

nslookup -type=SOA midominio.com ns1.midominio.com

Útil para verificar que un servidor autoritativo responde correctamente y tiene el serial actualizado.

Mensajes de error comunes

MensajeCausa
** server can't find domain: NXDOMAINEl dominio no existe en el DNS
** server can't find domain: SERVFAILEl servidor DNS falló al procesar la consulta
** server can't find domain: REFUSEDEl servidor DNS rechazó la consulta
;; connection timed out; no servers could be reachedNo se pudo conectar al servidor DNS (problema de red o firewall)
Non-authoritative answerNo es un error — la respuesta proviene de una caché

Buenas prácticas

  • Especifica el servidor DNS — al diagnosticar problemas, consulta siempre un servidor conocido como 8.8.8.8 o 1.1.1.1 para descartar problemas con el DNS local.
  • Usa el modo interactivo para múltiples consultas — evita ejecutar el comando repetidamente cuando necesitas consultar varios tipos de registro del mismo dominio.
  • Activa debug para problemas complejos — la salida de debug revela detalles como TTL, flags y secciones adicionales que no aparecen en la salida estándar.
  • Consulta servidores autoritativos — para verificar cambios recientes en registros DNS, consulta directamente los servidores NS del dominio en lugar de servidores recursivos con caché.
  • Verifica registros MX y TXT juntos — al diagnosticar problemas de correo, revisa tanto los registros MX como los TXT (SPF, DKIM, DMARC) para tener una visión completa.

Comparación con dig

dig es la herramienta recomendada por la mayoría de administradores de sistemas para consultas DNS avanzadas. Sin embargo, nslookup tiene sus propias ventajas:

Característicanslookupdig
DisponibilidadPreinstalado en todos los SORequiere instalación en algunos sistemas
Modo interactivoIntegradoNo disponible
SalidaCompacta y legibleDetallada con todas las secciones DNS
Control de la salidaLimitadoGranular (+short, +noall, +answer)
Traza de resoluciónNo disponible+trace desde los servidores raíz
Scripts y automatizaciónMenos predecible para parsearSalida consistente, fácil de parsear
Soporte DNSSECLimitadoCompleto (+dnssec)

Equivalencias comunes

# Consulta básica
nslookup example.com  dig example.com +short
nslookup example.com 8.8.8.8  dig @8.8.8.8 example.com +short

# Registros MX
nslookup -type=MX example.com  dig example.com MX +short

# Registros NS
nslookup -type=NS example.com  dig example.com NS +short

# Consulta inversa
nslookup 8.8.8.8  dig -x 8.8.8.8 +short

En general, nslookup es ideal para consultas rápidas y diagnósticos simples, mientras que dig ofrece mayor control y detalle para análisis avanzados. Ambas herramientas se complementan y es recomendable conocer las dos.