Borrar la caché de DNS en Linux

Borrar la caché de DNS en Linux

Trabajo en Linux en mi computadora portátil, no pude acceder a un sitio web en particular usando la URL, así que la usé sudo /etc/init.d/nscd restartpara borrar el caché de DNS, pero la URL todavía muestra "Servidor no encontrado" en Firefox. También probé Chrome, todavía no funciona. Otros amigos pueden ver la página web, pero yo no. Entonces ¿cuál sería la causa principal de esto? Puedo navegar muy bien por otros sitios.

Por extraño que parezca, cuando intento la dirección IP de esa URL en particular, me muestra una página diferente a la que ven otras personas.

Agradezco cualquier ayuda sobre este asunto.

Respuesta1

A menos que lo esté ejecutando bindpor accidente, debe verificar su nscdarchivo de configuración ubicado en /etc/nscd.conf.

Enumerará los cachés que se guardan.

 enable-cache            hosts           yes
 positive-time-to-live   hosts           3600
 .......

# nscd -?

-g, --statistics Print current configuration statistics

-i, --invalidate=TABLE Invalidate the specified cache

nscd -g

    hosts cache:

        yes  cache is enabled
         no  cache is persistent
        yes  cache is shared
        211  suggested size
     216064  total data pool size
        384  used data pool size
        600  seconds time to live for positive entries
          0  seconds time to live for negative entries
          0  cache hits on positive entries
          0  cache hits on negative entries
        128  cache misses on positive entries
          0  cache misses on negative entries
          0% cache hit rate
          3  current number of cached values
          7  maximum number of cached values
          2  maximum chain length searched
          0  number of delays on rdlock
          0  number of delays on wrlock
          0  memory allocations failed
        yes  check /etc/{hosts,resolv.conf} for changes

# nscd -i hosts

Esto invalidará el caché.

Pero, después de hacerlo, no hubo cambios en las entradas de los hosts. nscd -g Después de reiniciar, nscdse eliminaron.

service nscd restart

    hosts cache:

        yes  cache is enabled
         no  cache is persistent
        yes  cache is shared
        211  suggested size
     216064  total data pool size
          0  used data pool size
        600  seconds time to live for positive entries
          0  seconds time to live for negative entries
          0  cache hits on positive entries
          0  cache hits on negative entries
          0  cache misses on positive entries
          0  cache misses on negative entries
          0% cache hit rate
          0  current number of cached values
          0  maximum number of cached values
          0  maximum chain length searched
          0  number of delays on rdlock
          0  number of delays on wrlock
          0  memory allocations failed
        yes  check /etc/{hosts,resolv.conf} for changes

A menos que esté ejecutando bind, esta es la única forma de borrar el caché, salvo encontrar la base de datos nscdy eliminarla, lo que podría causar otros problemas. Seguiría los procedimientos de solución de problemas para la resolución de IP. Describí algunos en los comentarios a su pregunta.

Este es un enlace a un artículo bastante bueno de Linux Journal sobreSolución de problemas de red.

Respuesta2

Sé que es una pregunta antigua, pero la agrego en caso de que alguien se enfrente a este problema nuevamente.

Cuando me enfrenté a un problema similar de caché del cliente DNS esta mañana, seguí todos los pasos habituales para borrar el caché almacenado nscdy, como se menciona en la primera respuesta, reinicié nscd. Incluso eliminé el caché del sistema operativo, pero cierto nombre de host todavía se estaba resolviendo en la dirección IP anterior. Comenzó a resolverse solo después de que eliminé la nameserver 127.0.0.1línea de resolv.conf.

información relacionada