Cómo Solucionar el Error al Modificar /etc/resolv.conf en Linux Paso a Paso

Cómo Solucionar el Error al Modificar /etc/resolv.conf en Linux Paso a Paso
Anuncio relacionado

Introducción al Problema con /etc/resolv.conf en Linux

Uno de los dolores de cabeza más comunes para los administradores de sistemas y usuarios avanzados de Linux ocurre al intentar cambiar los servidores DNS editando el archivo /etc/resolv.conf. A menudo, tras reiniciar el equipo o el servicio de red, los cambios desaparecen misteriosamente y el archivo vuelve a su estado original o es sobrescrito por herramientas como NetworkManager o systemd-resolved.

Causas Principales de la Sobrescritura de DNS

Las causas de este comportamiento se deben principalmente a la automatización de la red en las distribuciones modernas de Linux:

  • El servicio NetworkManager gestiona dinámicamente las conexiones y regenera el archivo en cada arranque.
  • El daemon systemd-resolved utiliza un enlace simbólico que apunta a una configuración interna (/run/systemd/resolve/stub-resolv.conf).
  • Herramientas como resolvconf están configuradas para actualizar automáticamente el archivo basándose en la interfaz de red activa.

Método 1: Configurar NetworkManager para Evitar que Sobrescriba resolv.conf

Si tu distribución utiliza NetworkManager (común en Ubuntu, Fedora y Debian), puedes indicarle que no modifique el archivo de configuración de DNS.

  1. Abre el archivo de configuración principal de NetworkManager con tu editor favorito: sudo nano /etc/NetworkManager/NetworkManager.conf
  2. Busca la sección [main] y añade la siguiente línea: dns=none
  3. Guarda los cambios y sal del editor (en nano presiona Ctrl+O, Enter y luego Ctrl+X).
  4. Reinicia el servicio de NetworkManager para aplicar los cambios: sudo systemctl restart NetworkManager

Método 2: Desactivar systemd-resolved y Usar un Archivo Estático

Si systemd-resolved es el culpable de que no puedas editar libremente tu archivo de DNS, puedes desactivarlo y crear un enlace simbólico manual.

  1. Detén y desgracia el servicio systemd-resolved ejecutando: sudo systemctl disable --now systemd-resolved
  2. Elimina el enlace simbólico actual que apunta al archivo dinámico:

  3. sudo rm /etc/resolv.conf
  4. Crea un nuevo archivo /etc/resolv.conf de forma manual con tus servidores DNS deseados:

  5. echo 'nameserver 8.8.8.8' | sudo tee /etc/resolv.conf
  6. echo 'nameserver 1.1.1.1' | sudo tee -a /etc/resolv.conf

Método 3: Hacer el Archivo Inmutable (Solución Definitiva)

Si las opciones anteriores no funcionan debido a paquetes de red intrusivos, puedes utilizar los atributos del sistema de archivos de Linux para proteger el archivo contra cualquier modificación, incluso por parte del sistema.

  1. Configura primero tus DNS preferidos en /etc/resolv.conf mediante tu editor de texto.
  2. Aplica el atributo de inmutabilidad ejecutando el siguiente comando: sudo chattr +i /etc/resolv.conf
  3. Si en el futuro necesitas modificar los DNS nuevamente, deberás remover primero el atributo inmutable con: sudo chattr -i /etc/resolv.conf
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Magento

Cómo Solucionar el Error de Indexación en Magento 2 Paso a Paso

Los indexadores bloqueados o con errores en Magento 2 afectan gravemente el catálogo y los precios de tu tienda. Descubre cómo solucionarlo de forma definitiva.

Leer guía completa →
Desarrollo

Cómo Solucionar el Error CORS (Cross-Origin Resource Sharing) en JavaScript y Node.js

Descubre por qué ocurre el error de políticas de origen cruzado en tus desarrollos web y cómo solucionarlo fácilmente configurando cabeceras y middleware.

Leer guía completa →
Apps

Cómo Solucionar el Error de Pantalla Negra en OBS Studio Paso a Paso

¿La captura de pantalla o de ventana en OBS Studio solo muestra negro? Descubre cómo solucionar este molesto problema de manera sencilla.

Leer guía completa →