¿Qué es el error 'Temporary failure in name resolution' en Linux?
Uno de los problemas más frustrantes al utilizar sistemas operativos basados en Linux, como Ubuntu, Debian o CentOS, es intentar ejecutar un comando como sudo apt update o realizar un simple ping y encontrarse con el mensaje de error: Temporary failure in name resolution. Este fallo indica que tu equipo Linux es incapaz de traducir los nombres de dominio (como google.com) a direcciones IP debido a un problema con los servidores DNS o la configuración de red.
Causas principales del fallo de DNS en Linux
- Configuración incorrecta o corrupta en el archivo
/etc/resolv.conf. - Servicio de resolución de nombres systemd-resolved detenido o con fallos.
- Problemas en el archivo de configuración de Netplan o NetworkManager.
- Interferencia de cortafuegos o herramientas de seguridad locales.
Método 1: Configurar manualmente un servidor DNS público (Google o Cloudflare)
El primer método y el más rápido consiste en editar directamente los servidores DNS que utiliza tu sistema operativo para resolver las direcciones web.
- Abre tu terminal de comandos.
- Verifica el estado actual del archivo ejecutando el comando:
cat /etc/resolv.conf - Edita el archivo con un editor de texto con privilegios de administrador, por ejemplo:
sudo nano /etc/resolv.conf - Añade los servidores DNS públicos de Google o Cloudflare añadiendo 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 la conexión ejecutando:
ping -c 4 8.8.8.8y luegoping -c 4 google.com.
Método 2: Reiniciar y habilitar el servicio systemd-resolved
En distribuciones modernas de Linux que utilizan systemd, el servicio encargado de gestionar la resolución de nombres puede haberse quedado colgado.
- Comprueba el estado del servicio ejecutando:
sudo systemctl status systemd-resolved - Si el servicio está detenido o inactivo, reinícialo con el siguiente comando:
sudo systemctl restart systemd-resolved - Asegúrate de que se ejecute automáticamente al iniciar el sistema con:
sudo systemctl enable systemd-resolved - Crea un enlace simbólico para asegurar que NetworkManager utilice el archivo correcto ejecutando:
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
Método 3: Configurar Netplan (Específico para Ubuntu 18.04, 20.04, 22.04 y posteriores)
Si utilizas Ubuntu, la gestión de red se realiza mediante Netplan, y los cambios manuales en /etc/resolv.conf pueden sobrescribirse al reiniciar.
- Busca tu archivo de configuración de Netplan en la carpeta
/etc/netplan/ejecutando:ls /etc/netplan/ - Abre el archivo de configuración con nano (el nombre puede variar, por ejemplo,
01-netcfg.yaml):sudo nano /etc/netplan/01-netcfg.yaml - Modifica la sección de los servidores DNS para que luzca de la siguiente manera:
network:version: 2ethernets:eth0:dhcp4: truenameservers:addresses: [8.8.8.8, 1.1.1.1] - Aplica los cambios de red ejecutando el comando:
sudo netplan apply
Siguiendo estos pasos, habrás solucionado definitivamente el error de resolución de nombres en tu entorno Linux, recuperando el acceso total a internet y a los repositorios de paquetes.