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 o Debian, es la pérdida repentina de la conexión a internet a pesar de estar conectados a la red local o Wi-Fi. A menudo, este fallo se manifiesta cuando el sistema es incapaz de traducir los nombres de dominio (como google.com) en direcciones IP válidas. Este error de resolución DNS impide navegar por la web o actualizar paquetes mediante el gestor de apt.
¿Cuáles son las Causas del Fallo de DNS en Linux?
El error de resolución de nombres suele estar relacionado con una mala configuración en los archivos del sistema que gestionan las rutas de red y los servidores DNS. Entre las causas más comunes se encuentran:
- Un conflicto con el servicio
systemd-resolvedque gestiona la resolución local. - Modificaciones erróneas en el archivo de configuración
/etc/resolv.conf. - Falta de servidores DNS públicos fiables (como los de Google u OpenDNS) en la interfaz de red.
- Problemas con el cliente DHCP que no asigna correctamente las IPs de los servidores de nombres.
Método 1: Configurar Servidores DNS Estáticos con Systemd-Resolved
La forma más efectiva y moderna en distribuciones actuales es configurar los servidores DNS directamente en el archivo de configuración de systemd-resolved.
- Abre la terminal de tu sistema Linux.
- Edita el archivo de configuración con tu editor de texto preferido con privilegios de superusuario:
sudo nano /etc/systemd/resolved.conf - Busca la línea que comienza con
#DNS=y cámbiala eliminando el '#' y añadiendo servidores DNS estáticos, por ejemplo:DNS=8.8.8.8 8.8.4.4 - Guarda los cambios presionando
Ctrl + Oy sal conCtrl + X. - Reinicia el servicio para aplicar los cambios ejecutando el comando:
sudo systemctl restart systemd-resolved
Método 2: Actualizar Manualmente el Archivo Resolv.conf
Si el método anterior no soluciona el problema de manera inmediata, puedes forzar el uso de servidores DNS específicos sobrescribiendo el enlace simbólico del archivo resolv.conf.
- Primero, elimina el enlace simbólico actual ejecutando:
sudo rm /etc/resolv.conf - Crea un nuevo archivo
resolv.confutilizando un editor de texto:sudo nano /etc/resolv.conf - Añade las siguientes líneas con los servidores DNS de Cloudflare o Google:
nameserver 1.1.1.1nameserver 8.8.8.8 - Guarda el archivo y cierra el editor.
- Comprueba que la navegación web y la resolución de dominios funcionan correctamente ejecutando:
ping -c 4 google.com