> La lista completa de artículos está en [llms.txt](https://docs.f3cloud.com/llms.txt). Cada página tiene versión en Markdown, basta con añadir .md a su dirección. Esta página en Markdown: [https://docs.f3cloud.com/es/network/nslookup-dig.md](https://docs.f3cloud.com/es/network/nslookup-dig.md).

# Los comandos nslookup y dig – cómo comprobar los registros DNS de un dominio

Los comandos nslookup y dig para comprobar el DNS. Cómo saber la dirección IP de un dominio, ver los registros MX, TXT y NS, consultar un servidor DNS concreto, comprobar el registro inverso PTR y recorrer toda la cadena de servidores con el comando dig +trace. Para Linux, macOS y Windows.

Has cambiado un registro en el registrador y el sitio sigue abriéndose desde el servidor antiguo. El correo del dominio no llega, o un servicio te pide verificar el dominio con un registro TXT y asegura que no lo ve. En todos estos casos hay que preguntar directamente al DNS qué responde en este momento. Para eso existen dos comandos, **nslookup** y **dig**. En este artículo vemos en qué se diferencian, aprendemos a consultar registros de distintos tipos, a preguntar a un servidor DNS concreto y a recorrer toda la cadena desde los servidores raíz hasta la respuesta. Todos los ejemplos se han ejecutado en un servidor de pruebas con Debian 12.

***

## Por qué las respuestas del DNS pueden ser distintas

Cuando le preguntas al DNS la dirección de un dominio, la respuesta casi nunca llega directamente del servidor que se encarga de ese dominio. El ordenador se dirige a su resolutor, por ejemplo al servidor del proveedor o al público `1.1.1.1`, y el resolutor o bien devuelve la respuesta que tiene en memoria, o bien recorre la cadena. Primero pregunta a un servidor raíz, este lo envía a los servidores de la zona, por ejemplo `.com`, y estos a los servidores NS del propio dominio, que son los que guardan los registros. Esta cadena se explica en detalle en el artículo sobre [cómo apuntar un dominio a un VPS](https://docs.f3cloud.com/es/vps/domain-to-vps.md).

De este funcionamiento se deduce que distintos resolutores pueden responder de forma diferente en el mismo momento. Uno ya ha recibido el registro nuevo y otro todavía devuelve el antiguo desde su memoria hasta que caduque su TTL, el plazo durante el que puede guardarlo. Por eso, al hacer una comprobación, conviene comparar las respuestas de varios resolutores y, si necesitas total seguridad, preguntar directamente al servidor NS del dominio. Los dos comandos saben hacerlo, y dig además puede recorrer toda la cadena por su cuenta y mostrar qué respondió cada servidor.

La diferencia entre los comandos está sobre todo en la comodidad. **nslookup** está disponible casi en todas partes, también en Windows, y muestra la respuesta de forma sencilla. **dig** viene incluido en Linux y macOS, muestra la respuesta con más detalle, con el TTL y los campos técnicos, y resulta más cómodo para scripts. En Debian y Ubuntu los dos comandos se instalan con un mismo paquete.

```bash
apt install -y dnsutils
```

***

## 1. Averigua la dirección IP del dominio

```bash
# Respuesta detallada de dig, solo la sección con la respuesta
dig example.com +noall +answer

# Solo las direcciones, sin nada más
dig example.com +short

# Lo mismo con nslookup, funciona también en Windows
nslookup example.com
```

El número de la segunda columna de la respuesta de dig es el TTL restante en segundos, es decir, cuánto tiempo más recordará el resolutor esta respuesta. Las direcciones IPv6 se consultan igual con el tipo `AAAA`, por ejemplo `dig example.com AAAA +short`.

***

## 2. Consulta registros de otros tipos

El tipo de registro se indica después del nombre del dominio en dig o con el parámetro `-type=` en nslookup.

```bash
# Servidores de correo del dominio, el número antes del nombre es la prioridad
dig gmail.com MX +short

# Registros TXT, aquí suelen estar el SPF y los códigos de verificación de servicios
dig example.com TXT +short

# Servidores NS que atienden el dominio
dig example.com NS +short

# Registro inverso PTR, qué dominio tiene una dirección IP
dig -x 1.1.1.1 +short
```

<figure><img src="https://docs.f3cloud.com/img/dig-record-types.png" alt="Respuestas de dig para los registros A, MX, TXT, el registro inverso PTR y una consulta a 8.8.8.8"><figcaption><p>Registros de distintos tipos en una sola ventana</p></figcaption></figure>

En nslookup las mismas consultas tienen este aspecto.

```bash
nslookup -type=mx gmail.com
nslookup -type=txt example.com
nslookup -type=ns example.com
```

<figure><img src="https://docs.f3cloud.com/img/nslookup-mx.png" alt="Salida de nslookup -type=mx gmail.com con la lista de servidores de correo"><figcaption><p>nslookup muestra los mismos registros MX de otra forma</p></figcaption></figure>

***

## 3. Pregunta a un servidor DNS concreto

Para saber qué responde un resolutor determinado o el propio servidor NS del dominio, indícalo después de `@` en dig o como último parámetro en nslookup.

```bash
# Resolutores públicos de Google y Cloudflare
dig @8.8.8.8 example.com +short
dig @1.1.1.1 example.com +short

# El propio servidor NS del dominio, respuesta sin caché
dig @elliott.ns.cloudflare.com example.com +short

# Lo mismo con nslookup
nslookup example.com 8.8.8.8
```

Si el servidor NS del dominio ya devuelve el registro nuevo y los resolutores públicos todavía no, lo has hecho todo bien y solo queda esperar a que caduque el TTL de la respuesta antigua.

***

## 4. Recorre toda la cadena con el comando dig +trace

El parámetro `+trace` hace que dig no recurra al resolutor, sino que recorra el camino por su cuenta empezando por los servidores raíz. Así se ve quién se encarga del dominio en cada paso.

```bash
dig +trace example.com
```

La salida completa es larga, así que para la captura de pantalla hemos dejado solo las líneas con los pasos y los registros encontrados.

<figure><img src="https://docs.f3cloud.com/img/dig-trace.png" alt="Salida de dig +trace example.com con las respuestas del servidor raíz, el servidor de la zona com y el servidor NS de Cloudflare"><figcaption><p>El servidor raíz, el servidor de la zona .com y el servidor NS del dominio, uno tras otro</p></figcaption></figure>

Las líneas **Received … from** muestran qué servidor respondió en cada paso. Aquí el servidor raíz `e.root-servers.net` envió la consulta a los servidores de la zona `.com`, el servidor `c.gtld-servers.net` indicó que el dominio lo atiende Cloudflare y el servidor NS `elliott.ns.cloudflare.com` devolvió las direcciones. Si la cadena se corta, se ve en qué paso. Por ejemplo, si en el registrador están indicados servidores NS que no saben nada del dominio.

***

## Preguntas frecuentes

<details>

<summary>dig: command not found</summary>

El comando forma parte del paquete `dnsutils`. Instálalo con el comando `apt install -y dnsutils`. En nuestra imagen de Debian 12 este paquete ya viene instalado.

</details>

<details>

<summary>Respuesta status: NXDOMAIN</summary>

Ese nombre no existe en el DNS. Comprueba cómo está escrito el dominio y que el registro se ha creado para el nombre correcto, por ejemplo para `www` por separado. Si el dominio se acaba de registrar, comprueba los servidores NS con el comando `dig example.com NS +short`.

</details>

<details>

<summary>La respuesta está vacía, pero no hay ningún error</summary>

El dominio existe, pero no tiene registros del tipo necesario. Por ejemplo, el dominio tiene un registro A, pero no tiene registro MX. Comprueba que el registro se ha creado con el tipo correcto.

</details>

<details>

<summary>Un registro nuevo se ve en un resolutor y en otro no</summary>

El segundo resolutor todavía guarda la respuesta antigua. Mira el TTL en la salida de `dig +noall +answer`, es el tiempo en segundos que falta para que se actualice. En tu ordenador puedes vaciar la caché DNS. En Windows se hace con el comando `ipconfig /flushdns`.

</details>

***

## Nuestros recursos

**Canal de Telegram:** [https://t.me/f3cloud_news](https://t.me/f3cloud_news)\
**Web del hosting:** [https://f3cloud.com](https://f3cloud.com/es)
