Cómo Solucionar el Error de Resolución DNS en /etc/resolv.conf en Linux

Cómo Solucionar el Error de Resolución DNS en /etc/resolv.conf en Linux
Anuncio relacionado

Introducción al problema de resolución DNS en Linux

Uno de los dolores de cabeza más comunes para los administradores de sistemas y usuarios avanzados de Linux es experimentar una pérdida repentina de conexión a internet debido a fallos en la resolución de nombres de dominio (DNS). A menudo, al revisar el archivo /etc/resolv.conf, notamos que la configuración de los servidores DNS (como los de Google o Cloudflare) ha desaparecido o ha sido modificada por el sistema.

Esto ocurre generalmente porque NetworkManager o servicios como systemd-resolved sobrescriben el archivo cada vez que la red se reinicia. En este artículo te mostraremos las causas y los mejores métodos para solucionarlo de forma definitiva.

Causas principales del error en resolv.conf

  • El servicio NetworkManager sobrescribe el archivo en cada reconexión de red.
  • El daemon systemd-resolved gestiona los enlaces simbólicos de forma incorrecta.
  • Permisos de modificación inadecuados en el archivo de configuración.
  • Configuración estática incorrecta en interfaces de red.

Método 1: Bloquear los cambios en resolv.conf usando atributos de archivos

Si necesitas una solución rápida y directa para evitar que cualquier proceso modifique tu archivo resolv.conf, puedes utilizar el comando chattr para hacer que el archivo sea inmutable.

  1. Abre tu terminal de Linux.
  2. Edita el archivo con permisos de superusuario usando tu editor favorito: sudo nano /etc/resolv.conf
  3. Añade los servidores DNS deseados, por ejemplo: nameserver 8.8.8.8 y nameserver 1.1.1.1.
  4. Guarda y cierra el archivo.
  5. Aplica el atributo de inmutabilidad ejecutando: sudo chattr +i /etc/resolv.conf

Nota: Si en el futuro necesitas editar nuevamente el archivo, deberás retirar el atributo inmutable con el comando sudo chattr -i /etc/resolv.conf.

Método 2: Configurar correctamente NetworkManager

En distribuciones modernas como Ubuntu, Fedora o Debian, NetworkManager es el encargado de gestionar las conexiones. Forzarlo a no sobrescribir el archivo es la práctica recomendada.

  1. Abre el archivo de configuración de NetworkManager: sudo nano /etc/NetworkManager/NetworkManager.conf
  2. Dentro de la sección [main], añade la siguiente línea: dns=none
  3. Guarda los cambios y sal del editor.
  4. Reinicia el servicio de NetworkManager para aplicar los cambios: sudo systemctl restart NetworkManager

Método 3: Configurar systemd-resolved de manera persistente

Si tu distribución utiliza systemd-resolved, la mejor práctica no es editar directamente resolv.conf, sino configurar el archivo auxiliar que este servicio utiliza.

  1. Edita el archivo de configuración global de systemd: sudo nano /etc/systemd/resolved.conf
  2. Busca la línea que dice #DNS=, descoméntala y añade tus servidores separados por espacios: DNS=8.8.8.8 1.1.1.1
  3. Reinicia y habilita el servicio systemd-resolved: sudo systemctl restart systemd-resolved
  4. Verifica que el enlace simbólico apunte correctamente ejecutando: sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Apps

Cómo Solucionar el Error STATUS_BREAKPOINT en Google Chrome de Forma Definitiva

El molesto error STATUS_BREAKPOINT en Google Chrome interrumpe tu navegación de forma inesperada. En esta guía te enseñamos los mejores métodos para solucionarlo definitivamente.

Leer guía completa →
Hardware

Cómo Solucionar el Error 'CPU Fan Error' al Encender la PC de Forma Definitiva

Tu ordenador se apaga o muestra una advertencia de ventilador de CPU al iniciar? Descubre por qué ocurre este fallo de hardware y cómo solucionarlo fácilmente.

Leer guía completa →
PrestaShop

Cómo Solucionar el Error 'Allowed Memory Size Exhausted' en PrestaShop

Aprende a resolver el molesto error de memoria agotada en PrestaShop incrementando el límite en PHP de forma rápida y segura.

Leer guía completa →