¿Qué es el error 'Temporary failure in name resolution' en Linux?
El error Temporary failure in name resolution ocurre cuando el sistema operativo Linux intenta comunicarse con un servidor externo mediante un nombre de dominio (como al ejecutar ping google.com o actualizar paquetes con apt update) y no logra traducir ese dominio a una dirección IP numérica. Este fallo indica un problema directo con los servidores DNS o con la pila de red del sistema.
Causas comunes del problema
- Servidores DNS mal configurados o inaccesibles en el archivo
/etc/resolv.conf. - El servicio gestor de resolución de nombres (como
systemd-resolvedoNetworkManager) está detenido o corrupto. - Reglas estrictas de cortafuegos (iptables, UFW) que bloquean las solicitudes salientes por el puerto UDP/TCP 53.
- Pérdida temporal de la puerta de enlace predeterminada o caída de la conexión a internet.
Método 1: Configurar servidores DNS públicos en /etc/resolv.conf
La causa más habitual es un archivo de resolución vacío o desactualizado. Puedes asignar manualmente servidores DNS estables (como los de Google o Cloudflare):
- Abre el archivo de configuración con permisos de administrador:
sudo nano /etc/resolv.conf - Asegúrate de agregar las siguientes directivas al inicio del archivo:
nameserver 8.8.8.8
nameserver 1.1.1.1 - Guarda los cambios con
Ctrl + Oy sal conCtrl + X. - Comprueba la resolución ejecutando una prueba rápida:
ping -c 4 google.com
Método 2: Reiniciar y reconfigurar systemd-resolved
En distribuciones modernas como Ubuntu y Debian, la resolución suele estar delegada a systemd-resolved. Si el enlace simbólico o el daemon fallan, se genera este error.
- Reinicia el servicio de resolución de nombres:
sudo systemctl restart systemd-resolved - Verifica que esté activo y en ejecución:
sudo systemctl status systemd-resolved - Si el problema persiste, restablece el enlace simbólico estándar hacia el archivo stub:
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf - Reinicia de nuevo el servicio para aplicar los cambios:
sudo systemctl restart systemd-resolved
Método 3: Comprobar el cortafuegos y el puerto 53
Si tu firewall bloquea las consultas DNS salientes, ningún servidor podrá responderte.
- Si utilizas UFW, comprueba su estado:
sudo ufw status - Permite el tráfico saliente y las consultas DNS habituales:
sudo ufw allow out 53 - Recarga las reglas del firewall para validar el cambio:
sudo ufw reload