Cómo Solucionar el Error de Archivo Resolv.conf Inmutable en Linux Paso a Paso

Cómo Solucionar el Error de Archivo Resolv.conf Inmutable en Linux Paso a Paso
Anuncio relacionado

Introducción al Problema del Archivo Resolv.conf Inmutable en Linux

Uno de los dolores de cabeza más comunes para los administradores de sistemas Linux al configurar redes es encontrarse con que el archivo /etc/resolv.conf no se puede editar, o los cambios aplicados en los servidores DNS se revierten automáticamente tras reiniciar el servicio de red o el equipo. Esto suele ocurrir porque el archivo tiene un atributo especial de inmutabilidad asignado por el sistema o por gestores de red como NetworkManager.

Causas Principales del Error

  • El archivo posee el atributo extendido +i (inmutable), lo que impide cualquier modificación, incluso por parte del usuario root.
  • Servicios de gestión de red, como NetworkManager o resolvconf, sobrescriben dinámicamente el archivo de configuración cada vez que se establece una conexión.
  • Permisos de archivo incorrectos o falta de privilegios administrativos al intentar guardar los cambios.

Método 1: Desactivar el Atributo Inmutable con Chattr

Si el sistema arroja un error de permiso denegado incluso al usar sudo, es muy probable que el archivo tenga activado el bit inmutable.

  1. Abre tu terminal con privilegios de superusuario o utiliza sudo.
  2. Verifica los atributos actuales del archivo ejecutando el siguiente comando:
    lsattr /etc/resolv.conf
  3. Si en la salida visualizas una letra i (por ejemplo, ----i--------), significa que es inmutable.
  4. Remueve el atributo inmutable ejecutando:
    sudo chattr -i /etc/resolv.conf
  5. Ahora ya puedes editar el archivo con tu editor de texto favorito, por ejemplo:
    sudo nano /etc/resolv.conf

Método 2: Configurar NetworkManager para Evitar Sobrescrituras

En muchas distribuciones modernas de Linux, NetworkManager sobrescribe /etc/resolv.conf de forma predeterminada. Para solucionarlo de manera definitiva, debes configurar el cliente DNS.

  1. Abre el archivo de configuración principal de NetworkManager:
    sudo nano /etc/NetworkManager/NetworkManager.conf
  2. Dentro de la sección [main], añade la siguiente línea para deshabilitar la actualización automática del archivo resolv.conf:
    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: Crear un Enlace Simbólico Correcto

En sistemas basados en systemd-resolved, lo ideal es que /etc/resolv.conf apunte al archivo de configuración generado por systemd y no sea un archivo estático.

  1. Elimina o respalda el archivo actual:
    sudo mv /etc/resolv.conf /etc/resolv.conf.bak
  2. Crea un enlace simbólico hacia el resolvedor de systemd:
    sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
  3. Verifica el estado de la resolución de nombres ejecutando:
    resolvectl status
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Desarrollo

Cómo Solucionar el Error de Sintaxis SQL en PHP de Forma Definitiva

Descubre por qué ocurre el error de sintaxis SQL en tus aplicaciones PHP y aplica los mejores métodos para depurar y corregir tus consultas de forma definitiva.

Leer guía completa →
Linux

Cómo Solucionar el Error Permission Denied en Linux de Forma Definitiva

¿Te aparece el mensaje Permission Denied al intentar ejecutar un script o acceder a un directorio? Descubre cómo corregirlo definitivamente.

Leer guía completa →
Linux

Cómo Solucionar el Error de Bloqueo de APT (Could not get lock /var/lib/dpkg/lock-frontend) en Ubuntu y Debian

Te mostramos cómo liberar el archivo de bloqueo de dpkg en sistemas Linux basados en Debian y Ubuntu para volver a instalar software sin interrupciones.

Leer guía completa →