Cómo borrar la caché DNS en Windows, macOS y Chrome
Limpiar la caché DNS obliga a tu sistema operativo o navegador a descartar los registros DNS almacenados localmente y obtener nuevas asignaciones de los servidores de nombres autoritativos. Esta única operación resuelve una sorprendente variedad de fallos de conectividad, desde errores ERR_NAME_NOT_RESOLVED hasta registros IP obsoletos que quedan tras una migración de servidor.
¿Qué es una caché DNS? Es una base de datos temporal y local mantenida por tu sistema operativo (y por separado por algunos navegadores) que almacena los resultados de búsquedas DNS anteriores. Cada vez que resuelves un nombre de host como example.com, la dirección IP resultante se almacena junto con un contador TTL (Time To Live). Hasta que ese TTL expire, tu sistema omite completamente el resolvedor ascendente y utiliza el registro en caché, lo cual es rápido, pero se convierte en un problema en el momento en que ese registro queda obsoleto, se envenena o apunta a un servidor desmantelado.
Por qué la caché DNS se convierte en un problema
Comprender los modos de fallo deja claro por qué vaciar la caché es a veces la única solución correcta:
- Migración de servidor o cambio de IP: Cuando un sitio se traslada a una nueva infraestructura, sus registros DNS se actualizan con un nuevo registro A o AAAA. Si tu caché local todavía contiene la IP antigua, cada solicitud va al host incorrecto, lo que a menudo resulta en un tiempo de espera de conexión o un error de discrepancia en el certificado TLS.
- Envenenamiento de caché DNS: El malware y los ataques de intermediario pueden inyectar registros fraudulentos en tu caché local, redirigiendo silenciosamente el tráfico a servidores controlados por atacantes. Vaciar la caché elimina inmediatamente las entradas envenenadas.
- Caché negativa: Una búsqueda DNS fallida (respuesta NXDOMAIN) también se almacena en caché. Si un dominio era temporalmente inaccesible y el resultado negativo fue almacenado en caché, tu sistema se negará a resolverlo de nuevo hasta que expire el TTL negativo, incluso después de que el dominio vuelva a estar en línea.
- Conflictos de DNS de horizonte dividido: Los desarrolladores que trabajan con anulaciones
/etc/hostslocales o resolutores asignados por VPN frecuentemente encuentran entradas de caché obsoletas que anulan su enrutamiento previsto. - Artefactos posteriores a la desconexión de VPN: Las entradas DNS residuales de una sesión VPN pueden persistir después de la desconexión, causando fugas de DNS o fallos de enrutamiento en la red local.
Cómo limpiar la caché DNS en Windows
El procedimiento es idéntico en Windows 7, 8, 10 y 11. La única diferencia significativa es si prefieres el Símbolo del sistema o PowerShell.
Método 1: Símbolo del sistema (ipconfig /flushdns)
- Presiona
Win + R, escribecmd, luego presionaCtrl + Shift + Enterpara iniciar el Símbolo del sistema con privilegios de administrador. Alternativamente, busca Símbolo del sistema en el menú Inicio, haz clic derecho sobre él y selecciona Ejecutar como administrador. - Ejecuta el comando de vaciado:
ipconfig /flushdns- Un vaciado exitoso devuelve:
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.Si en cambio ves un error, asegúrate de haber abierto el símbolo del sistema con privilegios elevados. Las sesiones de usuario estándar no tienen acceso de escritura a la caché del servicio Cliente DNS.
Método 2: Windows PowerShell
PowerShell expone un cmdlet dedicado que interactúa directamente con el servicio Cliente DNS en lugar de enrutar a través de la interfaz heredada ipconfig.
- Presiona
Win + Xy selecciona Windows PowerShell (Admin) o Terminal (Admin) en Windows 11. - Ejecuta:
Clear-DnsClientCacheNo hay salida de confirmación en caso de éxito: el comando regresa silenciosamente. Para verificar que la caché está vacía, ejecuta Get-DnsClientCache inmediatamente después; no debería devolver ningún resultado.
Método 3: Reiniciar el servicio Cliente DNS
En los casos excepcionales en que los comandos anteriores fallan, generalmente debido a un estado corrupto del servicio Cliente DNS, reiniciar el propio servicio limpia la caché como efecto secundario:
Stop-Service -Name Dnscache -Force
Start-Service -Name DnscacheAdvertencia importante: En algunas configuraciones de Windows, el servicio Cliente DNS está configurado como dependencia de otros servicios de red. Detenerlo puede interrumpir brevemente la conectividad de red. No ejecutes esto en un servidor de producción sin una ventana de mantenimiento.
Ver la caché DNS actual (Windows)
Antes de vaciar la caché, a menudo es útil inspeccionar lo que está almacenado en caché para confirmar si un registro obsoleto es realmente la causa del problema:
Get-DnsClientCacheEsto muestra todas las entradas en caché con su TTL, tipo de registro y datos resueltos, lo que ofrece un valor de diagnóstico mucho mayor que vaciar la caché a ciegas.
Cómo limpiar la caché DNS en macOS
macOS utiliza mDNSResponder como su demonio de servicio DNS en todas las versiones modernas. El mecanismo de vaciado se ha mantenido consistente desde macOS Sierra, pero las versiones más antiguas requerían comandos diferentes.
macOS Ventura, Monterey, Big Sur, Catalina, Mojave, High Sierra, Sierra (10.12 y posteriores)
- Abre Terminal a través de
Applications > Utilities > Terminalo presionaCmd + Spacey escribeTerminal. - Ejecuta:
sudo killall -HUP mDNSResponder- Introduce tu contraseña de administrador cuando se te solicite. El campo de contraseña no mostrará los caracteres: esto es un comportamiento esperado. Presiona
Enterpara confirmar.
No hay mensaje de éxito. La señal -HUP indica a mDNSResponder que recargue su configuración y purgue su caché sin un reinicio completo.
macOS El Capitan y Yosemite (10.11 / 10.10)
El Capitan utiliza el mismo comando mDNSResponder que el anterior. Yosemite reemplazó brevemente mDNSResponder con discoveryd, requiriendo un enfoque diferente:
sudo discoveryutil udnsflushcachesmacOS Mavericks, Mountain Lion y Lion (10.9 y anteriores)
sudo killall -HUP mDNSResponderVaciado de las capas adicionales de caché DNS en macOS
macOS mantiene más de una caché DNS. Para un vaciado exhaustivo, especialmente relevante al depurar problemas de DNS dividido o mDNS, ejecuta los tres comandos en secuencia:
sudo killall -HUP mDNSResponder
sudo killall mDNSResponderHelper
sudo dscacheutil -flushcachedscacheutil -flushcache limpia la caché de Servicios de Directorio, que almacena datos adicionales de resolución de nombres utilizados por procesos a nivel del sistema. Omitirlo puede dejar entradas residuales que mDNSResponder por sí solo no elimina.
Cómo limpiar la caché DNS en Google Chrome
Chrome mantiene su propia caché DNS interna que opera de forma completamente independiente del resolvedor a nivel del sistema operativo. Esta es una decisión arquitectónica deliberada: la pila de red de Chrome (construida sobre la biblioteca net:: de Chromium) pre-resuelve dominios que predice que visitarás y almacena esos resultados en proceso. Esto significa que puedes vaciar la caché DNS del sistema operativo y Chrome seguirá sirviendo registros obsoletos desde su propio almacén.
Paso a paso: Vaciado de la caché DNS de Chrome
- Abre Google Chrome.
- En la barra de direcciones, navega a:
chrome://net-internals/#dns- Haz clic en el botón Limpiar caché de host. Esto purga inmediatamente todas las entradas DNS almacenadas en la caché en proceso de Chrome.
Restablecer los grupos de sockets de Chrome
Las entradas de caché DNS y las conexiones TCP/TLS abiertas son asuntos separados. Si has limpiado la caché DNS pero Chrome sigue enrutando el tráfico a través de una conexión antigua (por ejemplo, después de un cambio de IP del servidor), también debes vaciar el grupo de sockets:
- Navega a:
chrome://net-internals/#sockets- Haz clic en Vaciar grupos de sockets.
Esto cierra todas las conexiones keep-alive inactivas y activas, obligando a Chrome a restablecer nuevas conexiones TCP utilizando las direcciones IP recién resueltas.
Reiniciar Chrome después del vaciado
Cierra completamente todas las ventanas de Chrome y vuelve a abrir el navegador. En macOS, asegúrate de que Chrome no siga ejecutándose en segundo plano a través del Dock: haz clic derecho en el icono y selecciona Salir en lugar de simplemente cerrar la ventana.
Comparación de caché DNS: nivel del sistema operativo vs. nivel del navegador
| Propiedad | Caché DNS del sistema operativo | Caché DNS de Chrome |
|---|---|---|
| — | — | — |
| Alcance | Todas las aplicaciones en todo el sistema | Solo el navegador Chrome |
| Comando de vaciado (Windows) | `ipconfig /flushdns` | `chrome://net-internals/#dns` |
| Comando de vaciado (macOS) | `sudo killall -HUP mDNSResponder` | `chrome://net-internals/#dns` |
| Respeta la configuración de TTL del sistema operativo | Sí | Parcialmente (utiliza su propia lógica de TTL) |
| Afectado por cambios de DNS de VPN | Sí | No inmediatamente |
| Visible para herramientas de diagnóstico | `Get-DnsClientCache`, `dscacheutil -cachedump` | Solo a través de los internos de Chrome |
| Se limpia al reiniciar el sistema | Sí | Sí (memoria en proceso) |
| Se limpia al reiniciar el navegador | No | Sí |
Comandos de vaciado por plataforma de un vistazo
| Plataforma / Versión | Comando |
|---|---|
| — | — |
| Windows (todas las versiones) | `ipconfig /flushdns` |
| Windows PowerShell | `Clear-DnsClientCache` |
| macOS 10.12 y posteriores | `sudo killall -HUP mDNSResponder` |
| macOS Yosemite (10.10) | `sudo discoveryutil udnsflushcaches` |
| macOS (vaciado completo) | `sudo killall -HUP mDNSResponder && sudo dscacheutil -flushcache` |
| Google Chrome (todos los sistemas operativos) | `chrome://net-internals/#dns` > Limpiar caché de host |
| Linux (systemd-resolved) | `sudo systemd-resolve –flush-caches` |
| Linux (nscd) | `sudo service nscd restart` |
Linux se incluye aquí porque los administradores que gestionan entornos de Hosting VPS frecuentemente necesitan vaciar las cachés DNS tanto en su estación de trabajo local como en el servidor remoto simultáneamente al propagar cambios de DNS.
Errores comunes que resuelve el vaciado de la caché DNS
ERR_NAME_NOT_RESOLVED— Chrome no puede resolver el nombre de host. Casi siempre es un problema de DNS; vacía tanto la caché del sistema operativo como la de Chrome.DNS_PROBE_FINISHED_NXDOMAIN— El resolvedor devolvió una respuesta de dominio inexistente. Puede ser una entrada de caché negativa obsoleta.ERR_CONNECTION_TIMED_OUTdespués de una migración de servidor — La IP antigua sigue en caché. Vacía la caché del sistema operativo y verifica connslookupodigque se está devolviendo la nueva IP.- Errores de discrepancia en certificados TLS/SSL — Si la IP en caché apunta a un servidor diferente al que tiene el certificado correcto, obtendrás un error de discrepancia en el nombre del certificado. Esto es común cuando un dominio se traslada entre proveedores de hosting. Si gestionas infraestructura SSL, asegúrate de que tus Certificados SSL estén aprovisionados en el origen correcto antes de que expire el TTL del DNS.
- Errores 404 intermitentes después de una migración de CMS — El sitio carga, pero los recursos o páginas devuelven 404. A menudo causado porque el CDN o el proxy inverso sigue resolviendo al origen antiguo. Vacía las cachés en cada capa.
Propagación de DNS vs. caché local: una distinción crítica
Un error común es pensar que limpiar la caché DNS local hará que un registro DNS recién publicado sea inmediatamente visible. No lo hará: si el resolvedor recursivo ascendente (el servidor DNS de tu ISP o un resolvedor público como 8.8.8.8) también ha almacenado en caché el registro antiguo, seguirás recibiendo la IP antigua hasta que expire la caché de ese resolvedor.
El flujo de trabajo de diagnóstico correcto es:
- Verifica el registro autoritativo directamente usando
dig @8.8.8.8 example.com Aonslookup example.com 1.1.1.1. - Si el registro autoritativo es correcto pero tu resolución local es incorrecta, vacía la caché local del sistema operativo.
- Si el registro autoritativo en sí mismo sigue siendo incorrecto, el problema está a nivel del registrador de DNS o del panel de control de hosting, no en la caché local.
Al gestionar DNS para dominios alojados en Servidores Dedicados, establece siempre un TTL bajo (300 segundos) al menos 24 horas antes de una migración planificada. Esto minimiza la ventana de propagación y reduce el impacto de las entradas de caché obsoletas en toda internet.
Implicaciones de seguridad de la gestión de la caché DNS
El envenenamiento de caché DNS (también conocido como suplantación de DNS) es una clase de ataque en la que un adversario inyecta registros A o CNAME maliciosos en la caché de un resolvedor, redirigiendo a los usuarios a servidores fraudulentos. Si bien DNSSEC proporciona validación criptográfica a nivel de protocolo, la higiene de la caché local sigue siendo una medida práctica de primera respuesta.
Si sospechas que tu caché DNS ha sido envenenada:
- Vacía la caché local inmediatamente usando el comando apropiado para tu sistema operativo.
- Cambia a un resolvedor con validación DNSSEC como Cloudflare (
1.1.1.1) o Google (8.8.8.8). - Inspecciona los procesos en ejecución en busca de malware que pueda estar modificando el archivo
hosts(C:WindowsSystem32driversetchostsen Windows,/etc/hostsen sistemas Unix). - Verifica la configuración DNS de tu router: los atacantes que comprometen un router pueden redirigir todas las consultas DNS en la red independientemente del estado de la caché local.
Para las empresas que gestionan su propia infraestructura de correo, la integridad del DNS es especialmente crítica. Los registros DNS mal configurados o envenenados afectan directamente a la validación de SPF, DKIM y DMARC. Si dependes de servicios de Hosting de Correo Electrónico, verifica que los registros MX, SPF y DKIM se resuelvan correctamente después de cualquier cambio de DNS.
Automatización del vaciado de la caché DNS
Para desarrolladores y administradores de sistemas que trabajan regularmente con cambios de DNS, especialmente durante la configuración de Paneles de Control VPS, cambios de entorno de pruebas o migraciones de dominios, automatizar el vaciado elimina por completo el paso manual.
Tarea programada de Windows (PowerShell):
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-Command Clear-DnsClientCache"
$trigger = New-ScheduledTaskTrigger -Daily -At "03:00AM"
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "FlushDNSCache" -RunLevel Highestplist de launchd de macOS (vaciado diario a las 3 AM):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.local.flushdns</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-c</string>
<string>killall -HUP mDNSResponder</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>3</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>Guarda este archivo en ~/Library/LaunchAgents/com.local.flushdns.plist y cárgalo con launchctl load ~/Library/LaunchAgents/com.local.flushdns.plist.
Los vaciados automatizados son más útiles en pipelines de CI/CD donde los registros DNS se actualizan programáticamente como parte de un flujo de trabajo de despliegue, y los agentes de compilación deben resolver los nuevos registros inmediatamente después de aplicar el cambio.
Matriz de decisión técnica: cuándo y dónde vaciar
| Síntoma | Vaciar caché del sistema operativo | Vaciar caché de Chrome | Vaciar caché del router | Verificar resolvedor ascendente |
|---|---|---|---|---|
| — | — | — | — | — |
| El sitio carga en Firefox pero no en Chrome | No | Sí | No | No |
| Sitio inaccesible en todos los navegadores | Sí | Sí | No | Sí |
| Sitio inaccesible en todos los dispositivos de la red | Sí | Sí | Sí | Sí |
| IP correcta mostrada por `nslookup` pero el sitio sigue fallando | No | Sí (sockets) | No | No |
| El sitio carga para los compañeros pero no para ti | Sí | Sí | No | Sí |
| Acabas de completar una migración de servidor | Sí | Sí | No | Sí |
| Sospecha de envenenamiento de DNS | Sí | Sí | Sí | Sí |
Lista de verificación práctica antes y después del vaciado
- Confirma que el cambio de DNS se ha propagado a los servidores autoritativos usando
digo una herramienta en línea comowhatsmydns.netantes de vaciar localmente. - Anota el TTL actual del registro que estás solucionando: si es 86400 segundos (24 horas), vaciar localmente solo te ayuda a ti; otros usuarios seguirán viendo el registro antiguo hasta 24 horas.
- En Windows, ejecuta
ipconfig /displaydnsantes de vaciar para capturar una instantánea del estado actual de la caché con fines de diagnóstico. - Después de vaciar, usa
nslookup example.comoping example.compara confirmar que se está devolviendo la nueva IP antes de abrir el navegador. - Si trabajas en un entorno de Hosting Web Compartido, recuerda que los servidores de nombres del proveedor de hosting también almacenan registros en caché: contacta con el soporte si la propagación parece bloqueada a nivel del servidor.
- Para Chrome específicamente, después de limpiar la caché DNS, también limpia el grupo de sockets y realiza una recarga forzada (
Ctrl + Shift + Ren Windows/Linux,Cmd + Shift + Ren macOS) para omitir también la caché HTTP del navegador. - Documenta el vaciado en un registro de cambios si se realiza en un entorno de producción: los cambios de DNS y los vaciados de caché son frecuentemente pasados por alto al diagnosticar problemas posteriores al despliegue días después.
Preguntas frecuentes
¿Limpiar la caché DNS afecta la velocidad de navegación?
Temporalmente, sí. Después de un vaciado, tu sistema debe realizar búsquedas DNS nuevas para cada nombre de host con el que contacta, lo que añade una pequeña sobrecarga de latencia (típicamente 20–100ms por búsqueda) hasta que la caché se repopule. Para la mayoría de los usuarios esto es imperceptible. La caché se reconstruye automáticamente en minutos de navegación normal.
¿Vaciar la caché DNS me cerrará la sesión en los sitios web?
No. Las entradas de caché DNS son completamente independientes de las cookies del navegador, los tokens de sesión y el estado de autenticación. Vaciar el DNS no toca ninguno de esos elementos.
¿En qué se diferencia ipconfig /flushdns de Clear-DnsClientCache?
Ambos comandos indican al servicio Cliente DNS de Windows que purgue su caché. ipconfig /flushdns es una interfaz heredada que se comunica con el servicio a través de la utilidad ipconfig; Clear-DnsClientCache es un cmdlet nativo de PowerShell que utiliza la interfaz WMI/CIM directamente. El resultado final es idéntico, pero Clear-DnsClientCache es scriptable y devuelve objetos estructurados, lo que lo hace preferible en contextos de automatización.
¿Por qué Chrome sigue mostrando el sitio web antiguo después de vaciar la caché DNS del sistema operativo?
Chrome mantiene su propia caché DNS en proceso que no se ve afectada por los vaciados a nivel del sistema operativo. Debes limpiar por separado la caché de Chrome a través de chrome://net-internals/#dns. Además, si la conexión TCP antigua sigue activa en el grupo de sockets de Chrome, también debes vaciar los grupos de sockets a través de chrome://net-internals/#sockets.
¿Con qué frecuencia debo limpiar mi caché DNS?
No hay un calendario universal. Límpiala de forma reactiva: cuando encuentres errores relacionados con DNS, después de una migración de servidor o dominio, tras un incidente de seguridad sospechoso, o al cambiar entre configuraciones de red VPN y no VPN. Los vaciados programados de forma rutinaria solo están justificados en entornos de desarrollo o pruebas donde los registros DNS cambian con frecuencia.
