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
Hardware

Cómo Solucionar el Sobrecalentamiento de la CPU por Pasta Térmica Seca de Forma Definitiva

¿Tu ordenador se apaga jugando o al ejecutar tareas pesadas? Descubre cómo cambiar la pasta térmica y solucionar el sobrecalentamiento de la CPU.

Leer guía completa →
Hardware

Cómo Solucionar el Error de Sobrecalentamiento en la GPU Paso a Paso

Descubre por qué tu tarjeta gráfica alcanza temperaturas extremas y cómo puedes solucionarlo fácilmente para evitar daños permanentes en tu hardware.

Leer guía completa →
Linux

Cómo Solucionar el Error de Actualización en APT de Ubuntu y Debian Paso a Paso

¿Te aparecen fallos al actualizar los paquetes de tu sistema Linux? Descubre cómo solucionar los errores de APT de forma rápida y sencilla.

Leer guía completa →