Introducción al problema de resolución DNS en Linux
Uno de los problemas más frustrantes al utilizar sistemas operativos basados en Linux, como Ubuntu, Debian, CentOS o Fedora, es encontrarse de repente con el mensaje Temporary failure in name resolution al intentar hacer un ping, actualizar paquetes o clonar un repositorio. Este error indica que tu sistema operativo no es capaz de traducir los nombres de dominio legibles (como google.com) a direcciones IP numéricas debido a un fallo en la configuración o servicio de DNS.
Causas principales del error Temporary Failure in Name Resolution
- Archivo
/etc/resolv.confmal configurado o sobreescrito. - Servicio de gestión de red (NetworkManager o systemd-resolved) detenido o corrompido.
- Configuración estática de red incorrecta en la interfaz Ethernet o Wi-Fi.
- Problemas temporales con el enrutador o los servidores DNS públicos (como Cloudflare o Google).
Método 1: Configurar servidores DNS públicos de forma manual
Si el archivo de resolución de nombres está dañado, la solución más rápida es asignar manualmente servidores DNS confiables modificando la configuración de red o el archivo resolv.conf.
- Abre tu terminal de comandos.
- Edita el archivo de configuración de resolución de nombres ejecutando:
sudo nano /etc/resolv.conf - Añade los servidores DNS públicos de Google o Cloudflare escribiendo las siguientes líneas al inicio del archivo:
nameserver 8.8.8.8nameserver 1.1.1.1 - Guarda los cambios presionando
Ctrl + O, luegoEnter, y sal conCtrl + X. - Prueba nuevamente la conexión ejecutando:
ping -c 4 google.com
Método 2: Reiniciar y verificar el servicio systemd-resolved
En las distribuciones modernas de Linux que utilizan systemd, el servicio encargado de resolver los nombres de dominio puede haberse quedado colgado.
- Comprueba el estado actual del servicio con el comando:
sudo systemctl status systemd-resolved - Si se encuentra detenido o con errores, reinícalo forzando su arranque:
sudo systemctl restart systemd-resolved - Habilita el servicio para que inicie automáticamente con el sistema:
sudo systemctl enable systemd-resolved - Crea un enlace simbólico correcto para asegurar que el sistema use el DNS local:
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
Método 3: Liberar y renovar la IP mediante NetworkManager
A veces, el cliente DHCP no asigna correctamente las puertas de enlace ni los servidores DNS proporcionados por tu router.
- Identifica el nombre de tu interfaz de red ejecutando:
ip a(por ejemplo,eth0owlan0). - Desactiva temporalmente la interfaz de red con:
sudo ip link set devdown - Vuelve a activarla para forzar una nueva petición DHCP:
sudo ip link set devup - Reinicia el servicio de red general de tu distribución:
sudo systemctl restart NetworkManager