Vaciar la caché de DNS local puede resolver los errores de HTTP y protegerlo de la suplantación de DNS. Así es como puedes hacerlo en Linux.

Cuando accede a un sitio web utilizando su nombre de dominio, su sistema envía una solicitud a un servidor DNS para obtener la dirección IP de ese dominio. Este par de direcciones IP de dominio se guarda en la memoria caché de DNS para su uso posterior, de modo que no tenga que enviar solicitudes al servidor DNS cada vez que realice una conexión.

Pero a veces, la caché de DNS local se corrompe y provoca errores de HTTP. Afortunadamente, vaciar y reconstruir la caché de DNS en una computadora con Linux es sencillo. Aquí está cómo hacerlo.

¿Por qué vaciar la caché de DNS en Linux?

Existen varias razones por las que es posible que desee reconstruir la caché de DNS almacenada en su sistema. Tal vez tenga un registro DNS desactualizado para un sitio web y desee recuperarlo del servidor DNS. O tal vez, su sistema se ha visto comprometido y desea asegurarse de que el caché de DNS no haya sido manipulado, también conocido como falsificación de DNS.

instagram viewer

Cuando vacía su caché DNS, el sistema tiene que hacer ping al servidor DNS nuevamente y obtener el nuevo registro de dirección IP del dominio, eliminando cualquier dato obsoleto o comprometido en el proceso.

Cómo ver la caché de DNS local en Linux

Antes de systemd, la mayoría de las distribuciones de Linux no tenían almacenamiento en caché de DNS en todo el sistema, a menos que un programa como dnsmasq o nscd se configurara manualmente. systemd viene con systemd-resolved, un servicio que resuelve nombres de dominio en direcciones IP y almacena en caché las entradas de DNS.

Las siguientes secciones lo guiarán sobre cómo ver el contenido de la caché de DNS generado por systemd-resolved, nscd y dnsmasq, para que pueda comprender los datos almacenados en caché antes de decidir vaciarlos.

Ver caché de DNS para systemd-resolved

Para ver los registros de caché resueltos por systemd, primero debe eliminar temporalmente el servicio y luego exportar sus registros a un archivo.

Comience enviando una señal SIGUSR1 para eliminar el servicio resuelto por systemd:

sudo killall -USR1 systemd-resuelto

Usar el comando journalctl y el operador de salida estándar para guardar la salida en un archivo de texto:

sudo journalctl -u systemd-resolved > ~/cache.txt

Luego puede ver el contenido del archivo usando un editor de texto como Vim:

vim ~/caché.txt

En el archivo, busque "CACHE:" presionando Escapar, mecanografía "/CACHE:", y golpeando Ingresar. Todos los registros DNS enumerados en CACHE: forman parte de la caché de DNS local. Prensa norte para saltar al siguiente conjunto de entradas de DNS si está utilizando Vim.

Ver la caché de DNS local para nscd

Para ver el caché local generado por nscd, debe leer el contenido de la base de datos de hosts de nscd mediante el comando strings.

En las distribuciones basadas en Debian y Ubuntu, este archivo se encuentra en /var/cache/nscd/hosts. Ejecute el siguiente comando para ver el archivo:

sudo strings /var/cache/nscd/hosts | único

Para ver estadísticas generales sobre la caché de DNS nscd, utilice el -gramo bandera:

sudo nscd-g

Mostrar el caché de DNS generado por dnsmasq

dnsmasq almacena el caché de DNS en la memoria, por lo que no es fácil obtener los registros exactos. Pero puede enviar una señal de eliminación a dnsmasq y registrar su salida para obtener el número de consultas de DNS procesadas.

Para hacerlo, primero, asegúrese de que dnsmasq esté funcionando antes de usando el comando systemctl:

sudo systemctl estado dnsmasq

Si el estado muestra Activo, ejecute el siguiente comando para eliminar el servicio:

sudo pkill -USR1 dnsmasq

Con el comando journalctl, extraiga los registros de dnsmasq y guárdelos en un archivo de texto:

sudo journalctl -u dnsmasq > ~/cache.txt

Finalmente, vea el contenido del archivo. utilizando una utilidad de visualización de archivos como gato o menos:

gato ~/caché.txt

Cómo vaciar la caché de DNS en Linux

Vaciar el caché de DNS significa eliminar los registros DNS almacenados en caché de su computadora. Esto lo obliga a enviar una solicitud al servidor DNS para recuperar las nuevas entradas DNS.

Así es como puede vaciar la caché de DNS en Linux:

Usando systemd-resolved

Puede usar el comando resolvectl para vaciar la caché de DNS almacenada por systemd-resolved:

sudo resolvectl flush-caches

Si está ejecutando Ubuntu 17.04 o 18.04, use el comando resuelto por systemd para vaciar el caché:

sudo systemd-resolved --flush-caches

Vacíe la caché de DNS de nscd en Linux

La forma más conveniente de eliminar el caché de DNS para nscd es simplemente reiniciar el servicio. Puedes hacerlo ejecutando:

sudo /etc/init.d/nscd reiniciar

Si eso no funciona, primero, verifique si el caché local almacenado en su PC es persistente. Puedes usar el -gramo bandera para verificarlo:

sudo nscd-g

Si ese es el caso, utilice el -i marcar con el comando nscd para borrar los registros (i representa invalidar):

sudo nscd -i hosts

Eliminar la caché de DNS de dnsmasq

Vaciar la caché de DNS generada por dnsmasq es simple. Dado que el caché se almacena en la memoria, al reiniciar el servicio se eliminan todas las entradas almacenadas.

Para reiniciar dnsmasq, ejecute el siguiente comando systemctl:

sudo systemctl reiniciar dnsmasq

O emita el siguiente comando:

reinicio del servicio dnsmasq

Introduzca la contraseña de administrador si se le solicita. dnsmasq ahora se reiniciará y todas sus entradas de DNS existentes se eliminarán del caché.

Después de vaciar la caché de DNS, es mejor ver las entradas de la caché local y verificar si los datos se eliminaron correctamente. Puedes usar cavar, uno de los muchos comandos de solución de problemas de red de Linuxy verifique el valor de Tiempo de consulta en la salida. Si es más de 0 milisegundos, la memoria caché se borró correctamente (0 milisegundos significa que el registro de dominio todavía está en la memoria caché).

cavar google.com

Borrar la caché de DNS de Google Chrome

El navegador web que usa con frecuencia también almacena en caché los registros DNS. Cuando ingresa una URL, el sistema busca una entrada de caché en el caché del navegador local. Si no lo encuentra, busca los registros en la memoria caché del sistema local. Es crucial borrar el caché de DNS de su navegador web, ya que tiene mayor prioridad que el caché de todo el sistema.

Como demostración, vamos a vaciar la caché de DNS en Google Chrome. También hay formas de hacerlo en otros navegadores, por lo que es mejor que busques en Google cómo hacerlo para el navegador que usas.

Para comenzar, escriba "chrome://net-internals/#dns" en la barra de URL y presione Ingresar:

Hacer clic Borrar caché de host para borrar las entradas DNS almacenadas en Google Chrome.

Linux es el mejor sistema operativo para aprender redes

Linux puede parecer complicado al principio, pero si invierte algo de tiempo en aprender cómo funciona, rápidamente se dará cuenta de que es fantástico y tal vez incluso mejor que Windows o macOS.

La mayoría de los servidores en línea ejecutan Linux, y es una de las razones por las que Linux es ideal si desea aprender sobre redes o desea saber cómo funcionan las computadoras en general.