Cómo borrar la caché de DNS en Linux

Linux

Los DNS, Domain Name Service, son los responsables de traducir los nombres de dominio a sus respectivas IPs y viceversa. En ocasiones, cuando tienes problemas para conectarte a una web o también cuando quieres refrescar o hacer cambios en tus entradas DNS, debes vaciar la caché DNS.

También necesitarás borrar la caché de DNS en Linux si has realizado cambios en el archivo de hosts y quieres que el resto de tu sistema lo vea sin tener que reiniciarlo. Tanto si tu caso coincide con alguno de estos o si sencillamente quieres limpiar la caché por algún otro motivo, aquí tienes una de las muchas formas de borrar la caché DNS en Linux. Los procesos que verás aquí han sido probados con varias distribuciones de Linux, por lo que aseguramos que son válidos para la mayoría.

En Linux, el sistema de caché del DNS del sistema operativo puede no estar siempre activado, por lo que primero, debemos asegurarnos de que lo está.

Cómo saber si el cacheo de DNS de Linux está activado

No todas las distribuciones de Linux se comportan del mismo modo cuando se trata de cosas como el caché de DNS, ya que pueden utilizarse sistemas muy diversos. En el caso de Ubuntu, por ejemplo, no almacena en caché los DNS por defecto. Antes de intentar borrar la caché de DNS en Linux, vamos a comprobar si el almacenamiento en caché está habilitada. Para ello puedes seguir los pasos que se describen a continuación:

1. Inicia la Terminal de comandos y escribe el siguiente comando:

# ps ax | grep dnsmasq

Ejemplo en la terminal:

2. En la salida del comando, podrás ver un campo llamado «cache-size», que nos indica el tamaño de la caché. Comprueba su valor. Si el valor es cero, significa que el almacenamiento en caché está deshabilitado en el sistema.

La salida del comando podría ser la siguiente:

Si quieres habilitar la caché DNS en Linux, puedes hacerlo utilizando el siguiente comando en la Terminal:

# sudo dnsmasq -c 200

 

Puedes utilizar cualquier número en lugar de 200, que es básicamente el número de entradas que dnsmasq almacenará en caché.

Borrar la caché DNS en Linux

Si tu sistema Linux está almacenando en caché las entradas DNS, puedes intentar limpiar la caché DNS para deshacerte de cualquier problema relacionado con los DNS. Para borrar la caché de DNS en Linux, puedes seguir los pasos que se describen a continuación:

1. Inicie la Terminal (En Ubuntu: ctrl + alt + T) y escribe el siguiente comando para reiniciar el sistema de caché:

# sudo /etc/init.d/dns-clean restart

Ejemplo en la Terminal:

2. A continuación, escribe el siguiente comando para recargar todo lo relacionado con la de red de tu sistema, para que dejen de utilizar las antiguas entradas de caché:

# sudo /etc/init.d/networking force-reload

Ejemplo en la Terminal:

Esto borrará la caché de DNS en Linux, y si los problemas que estabas experimentando se debían a problemas de DNS, ahora deberían haber desaparecido.

Cómo borrar la caché de los servicios DNS en Linux

Los sistemas operativos como Ubuntu no almacenan en caché las entradas DNS de forma predeterminada, sin embargo, si has instalado manualmente un servicio DNS como nscd, puedes borrar su caché. Vamos a ver los métodos para borrar la caché de los servicios comunes de DNS:

Cómo borrar la caché DNS de nscd

# sudo /etc/init.d/nscd restart

Ejemplo en la Terminal:

Cómo borrar la caché DNS de dnsmasq

# sudo /etc/init.d/dnsmasq restart

Ejemplo en la Terminal:

Cómo borrar la caché DNS de BIND

Si utilizas BIND, puedes borrar la caché DNS mediante uno de los siguientes comandos:

# sudo /etc/init.d/named restart

Ejemplo en la Terminal:

Alternativamente, también puedes utilizar el siguiente comando:

# sudo rndc restart

Ejemplo en la Terminal:

Por último, también podemos ejecutar el comando de este modo:

# sudo rndc exec

Ejemplo en la Terminal:

Las versiones 9.3 de BIND y superiores soportan el borrado de caché DNS para un dominio en particular, así como para las entradas LAN y WAN. Puedes utilizar los siguientes comandos para hacer uso de esta función.

Para borrar la caché DNS de un dominio en particular, puedes utilizar el siguiente comando:

 # sudo rndc flushname neoguias.com

Ejemplo en la Terminal:

Para borrar las entradas LAN de la caché de DNS utiliza el siguiente comando:

# sudo rndc flush lan

Ejemplo en la Terminal:

Para borrar las entradas WAN del caché DNS utiliza este comando:

# sudo rndc flush wan

Ejemplo en la Terminal:

Y esto ha sido todo.

¿Por qué es importante vaciar la caché DNS si tienes problemas con dominios específicos?

Puedes utilizar cualquiera de estos métodos para borrar la caché DNS en una distribución Linux. Los problemas con la caché de DNS pueden causar otros problemas derivados como que una página web que no se cargue o que los cambios en los nombres de los servidores o cambios de IP no se reconozcan por el sistema, entre otras cosas. Una vez hayas vaciado la caché de DNS, estos problemas pueden desaparecer. Si lo que quieres es agregar servidores DNS personalizados, puedes consultar esta guía para agregar DNS personalizados en Ubuntu, aunque utilizando la consola, la guía también sirve para muchas otras distribuciones.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”