Introducción al error Temporary Failure in Name Resolution
Uno de los problemas más frustrantes al utilizar sistemas operativos basados en Linux, como Ubuntu, Debian o CentOS, es intentar ejecutar comandos como apt update, ping google.com o realizar una petición web y recibir el mensaje Temporary failure in name resolution. Este error indica que tu máquina Linux no puede traducir los nombres de dominio legibles por humanos (como www.ejemplo.com) en direcciones IP numéricas debido a un fallo en el sistema de nombres de dominio (DNS).
Principales causas del fallo de resolución DNS en Linux
Las causas de este problema suelen estar relacionadas con fallos en la configuración de red local, un servicio de resolución de nombres detenido, o archivos de configuración de red corruptos. Entre las razones más comunes destacan:
- Configuración incorrecta o ausente en el archivo
/etc/resolv.conf. - Fallos temporales en el servicio systemd-resolved o NetworkManager.
- Asignación errónea de servidores DNS por parte del servidor DHCP.
- Problemas de conectividad con la pasarela de red predeterminada.
Método 1: Configurar manualmente servidores DNS públicos
Si tu red local no está asignando correctamente los servidores DNS, puedes configurarlos de forma manual editando la configuración del sistema o añadiendo servidores confiables como los de Google (8.8.8.8) o Cloudflare (1.1.1.1).
- Abre tu terminal de comandos con permisos de superusuario.
- Edita el archivo de resolución DNS con un editor de texto como nano:
sudo nano /etc/resolv.conf - Añade 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 tu conexión ejecutando:
ping -c 4 google.com
Método 2: Reiniciar el servicio NetworkManager y systemd-resolved
En muchas distribuciones modernas de Linux, la gestión de redes se realiza mediante NetworkManager y systemd-resolved. Un reinicio de estos servicios suele solucionar bloqueos temporales del demonio de red.
- Reinicia el servicio de red principal ejecutando el siguiente comando:
sudo systemctl restart NetworkManager - Reinicia el servicio de resolución de nombres con el comando:
sudo systemctl restart systemd-resolved - Verifica el estado de los servicios para asegurarte de que se ejecutan correctamente sin errores:
sudo systemctl status systemd-resolved
Método 3: Comprobar la conectividad IP y la puerta de enlace
Para descartar que el problema sea una pérdida total de conexión y no solo un fallo de DNS, puedes intentar hacer ping directamente a una dirección IP numérica en lugar de a un nombre de dominio.
- Ejecuta un comando ping hacia una IP pública conocida, por ejemplo, el DNS de Google:
ping -c 4 8.8.8.8 - Si obtienes respuesta, significa que tu conexión a internet funciona, pero el problema de DNS persiste. Revisa tu puerta de enlace predeterminada con el comando:
ip route show - Asegúrate de que tu interfaz de red esté activa y configurada correctamente. Si el problema continúa, reinicia tu equipo por completo para aplicar los cambios de red de forma limpia.