Como vaciar la cache DNS en Windows y Linux

Recientemente nos encontramos con un caso bastante curioso, un problema que nos planteó un cliente que sinceramente, no nos lo esperábamos.
En esta «obra de teatro» interfieren varios elementos:

  • Una migración de un dedicado a otro dedicado (de los nuestros).
  • Una instalación de Wordpress con muchas muchas visitas y muchas muchas publicaciones diarias.
  • Una conexión a la base de datos MySQL mediante Navicat.
  • La cache DNS, el gran problema.

Comenzamos migrando el sitio web del cliente creado con Wordpress de un servidor dedicado a otro servidor dedicado (de los nuestros) y cambiando las DNS.
Después de 4 horas con el sitio funcionando correctamente, el cliente nos comunica que algunas publicaciones que publican algunos de sus redactores no se ven ni en la base de datos, pero que si se cambian de ordenador, las publican y se pueden ver perfectamente.

Lo primero que hice fue desactivar el cache Memcached y APC que teníamos activo, y posteriormente desactivar el Zend OPCache para descartar algunas cosas. Tambien desactivamos CloudFlare, ya que a veces puede cachear de más y puede llegar a tocar demasiado las narices al actualizar partes de una web.

El caso planteado por el cliente me extraño bastante, pero en el momento se me pasaron dos cosas por la cabeza:

En el momento que el cliente me confirmo, que si se conectaba a la base de datos mediante un cliente de escritorio como Navicat, tampoco podía ver las publicaciones en MySQL, me di cuenta de que tenía que descartar el cache del navegador y que el problema venia de la cache DNS.

Por defecto, cualquier ordenador o servidor cuando funcionan como cliente DNS almacenan un cache local con las últimas asignaciones IP – nombre de dominio que se han utilizado, y esas asignaciones pueden hacer que pase lo que nos ha pasado en este caso: los redactores se conectaban al servidor viejo y actualizaban en el servidor viejo.

vaciar cache DNS

¿Qué podemos hacer para solucionar esto? Existen varias opciones fáciles, tanto para Windows como para Linux, en este artículo vamos a proponer un par de scripts .bat y .sh para que puedas solucionarlo fácilmente en los dos tipos de sistemas operativos:

En Windows puedes usar el script BAT que ponemos a continuación. Debes tener en cuenta que en sistemas Windows 7, Windows 8 o superior, debes ejecutarlo como administrador para que el script pueda realizar las modificaciones necesarias. Recuerda guardarlo en tu ordenador con extensión «.bat».

En Linux hay que reiniciar servicios para conseguirlo. Dependiendo de la distribución y versión necesitarás reiniciar uno u otro, así que  tecomiendo probar los siguientes comandos uno a uno. Si alguno falla porque «no existe el servicio» o «no existe el comando», prueba con el siguiente:

Si usas systemd, reinicia el demonio de caché DNS. Puede que no tengas systemd o, directamente, no uses dicho demonio:

Si no usas systemd, tienes aquí una forma alternativa de reiniciar el servicio nscd:

En el caso de que los dos fallasen, puedes optar por la «opción nuclear» y reiniciar todo el servicio de red. Si usas systemd:

Si no usas systemd:

 

Algunos routers de algunos ISP también almacenan su propia cache DNS, tenemos dos opciones:

  • Entrar a la administración del router y vaciar cache DNS, aunque algunos routers no tienen esta opción o la tienen muy escondida.
  • Apagar el router durante al menos un minuto o dos para conseguir que al reiniciar se actualicen algunos datos, incluyendo la cache DNS.

El cache DNS puede jugarnos una mala pasada, como en este caso le ha ocurrido a nuestro cliente, que le echaba la culpa al Wordpress nuevo instalado durante la migración cuando en realidad la culpa era de la red del cliente.

Mi nombre es Alvaro Fontela, soy consultor Wordpress y blogger activo desde hace años. Co-Fundador de Raiola Networks, escribiendo sobre Wordpress en este blog día tras día.

Articulos relacionados

Si te ha gustado este post, aquí tienes otros que pueden interesarte. ¡No pares de aprender!

Share on twitter
Compartir en Twitter
Share on facebook
Compartir en Facebook
Share on pinterest
Compartir en Pinterest

Tenemos 3 comentarios en

"Como vaciar la cache DNS en Windows y Linux"

    1. Gracias por avisar, Jacobo.

      Las medidas de seguridad pasivas del servidor impedían su descarga, así que los he dejado en texto plano en el propio artículo para evitar problemas.

      ¡Un saludo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

¿Vienes desde otro proveedor?
Imagen footer
Suscríbete a la newsletter

Recibe ofertas, novedades y mucho más:

RESPONSABLE: RAIOLA NETWORKS, S.L. C.I.F.: B27453489 Avda de Magoi, 66, Semisótano, Dcha., 27002 Lugo (Lugo) Telefono: +34 982776081 e-mail: info@raiolanetworks.es
FINALIDAD: Atender solicitudes de información, ejecución de la contratación de servicios y remisión de comunicaciones comerciales.
LEGITIMACIÓN: Consentimiento del interesado y contratación de productos y/o servicios del Responsable
DESTINATARIOS: No se ceden datos a terceros, salvo obligación legal. Personas físicas o jurídicas directamente relacionadas con el Responsable Encargados de Tratamiento adheridos al Privacy Shield
DERECHOS: Acceder, rectificar y suprimir los datos, portabilidad de los datos, limitación u oposición a su tratamiento, derecho a no ser objeto de decisiones automatizadas, así como a obtener información clara y transparente sobre el tratamiento de sus datos.
INFORMACIÓN ADICIONAL: Se puede consultar la política de privacidad de forma más detallada aquí.
Los precios mostrados no incluyen IVA
Del 22/11 al 28/11
Hasta el
40% de 
descuento