Introducción al problema de resolución DNS en Linux
Uno de los problemas más frustrantes al administrar servidores o equipos de escritorio con sistemas operativos basados en Linux, como Ubuntu, Debian o CentOS, es encontrarse de repente con el mensaje Temporary failure in name resolution al intentar hacer un ping a un dominio o actualizar los paquetes del sistema. Este error indica que tu máquina no puede traducir los nombres de dominio (como google.com) en direcciones IP válidas debido a un fallo en la configuración de DNS.
Causas principales del error 'Temporary failure in name resolution'
Este fallo en la red puede ser provocado por diversos factores comunes en entornos Linux:
- Archivo de configuración
/etc/resolv.confcorrupto o mal configurado. - Problemas con el servicio gestor de red, como NetworkManager o
systemd-resolved. - Pérdida temporal de la puerta de enlace predeterminada o configuración IP estática incorrecta.
Método 1: Configurar manualmente servidores DNS públicos
La solución más rápida y efectiva suele ser asignar servidores DNS confiables directamente en el archivo de configuración del sistema.
- Abre tu terminal de Linux.
- Edita el archivo de configuración de DNS utilizando un editor de texto como nano con permisos de superusuario:
sudo nano /etc/resolv.conf - Añade los servidores DNS públicos de Google o Cloudflare escribiendo las siguientes líneas:
nameserver 8.8.8.8nameserver 1.1.1.1 - Guarda los cambios presionando
Ctrl + O, luegoEnter, y sal conCtrl + X. - Prueba nuevamente tu conexión ejecutando:
ping -c 3 google.com
Método 2: Reiniciar el servicio systemd-resolved
En distribuciones modernas que utilizan systemd, el servicio encargado de resolver los nombres puede quedar bloqueado.
- Comprueba el estado del servicio ejecutando:
sudo systemctl status systemd-resolved - Si está detenido o presenta fallos, reinícialo con el siguiente comando:
sudo systemctl restart systemd-resolved - Habilita el servicio para que inicie automáticamente con el sistema operativo:
sudo systemctl enable systemd-resolved
Método 3: Verificar la conexión de red con NetworkManager
Si utilizas un entorno de escritorio, NetworkManager podría estar interfiriendo con la configuración de red.
- Reinicia el servicio de red principal de tu distribución con el comando:
sudo systemctl restart NetworkManager - Si el problema persiste, revisa tu interfaz de red activa utilizando:
ip ay asegúrate de que tu tarjeta de red tenga asignada una IP válida y activa.