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
WordPress

Cómo Solucionar el Error al Establecer una Conexión con la Base de Datos en WordPress Paso a Paso

¿Tu sitio web muestra el error de conexión con la base de datos en WordPress? Aprende a identificar las causas y soluciónalo en pocos minutos con este tutorial.

Leer guía completa →
Apps

Cómo Solucionar el Error de Bucle de Inicio de Sesión en Spotify de Forma Definitiva

¿Atrapado en un bucle infinito al intentar iniciar sesión en Spotify? Aprende a solucionar este molesto fallo de la aplicación de escritorio en pocos pasos.

Leer guía completa →
Shopify

Cómo Solucionar el Error 'Liquid Syntax Error' en Shopify de Forma Definitiva

Descubre por qué ocurre el error de sintaxis en Liquid dentro de Shopify y aplica nuestros métodos sencillos para corregirlo en minutos. Recupera el diseño de tu tienda hoy mismo.

Leer guía completa →