Introducción al problema de /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 configurar servidores DNS estáticos editando el archivo /etc/resolv.conf. Tras reiniciar el equipo o la red, los cambios desaparecen misteriosamente y el archivo vuelve a su estado original. Esto sucede porque gestores de red modernos como NetworkManager o systemd-resolved regeneran este archivo automáticamente de manera dinámica.
Causas principales de la sobrescritura del DNS
El sistema operativo Linux moderno prioriza la automatización de redes mediante demonios que controlan la conectividad. Las causas más frecuentes de este comportamiento son:
- El servicio
NetworkManagersobrescribe el archivo en cada reconexión de interfaz de red. - El uso de
systemd-resolved, que gestiona la resolución de nombres a través de un archivo symlink apuntando a/run/systemd/resolve/stub-resolv.conf. - Configuraciones DHCP del router que fuerzan sus propios servidores DNS en cada concesión de IP.
Método 1: Configurar NetworkManager para mantener los DNS estáticos
Si tu distribución de Linux utiliza NetworkManager (común en Ubuntu, Fedora y Debian), la forma correcta de evitar que sobrescriba el archivo es configurando el perfil de conexión activo. Sigue estos pasos:
- Abre tu terminal y lista las conexiones activas ejecutando el comando:
nmcli connection show - Identifica el nombre exacto de tu conexión de red (por ejemplo,
Conexión cableada 1oeth0). - Modifica los servidores DNS estáticos con el siguiente comando:
nmcli connection modify "Nombre_Conexión" ipv4.dns "8.8.8.8 8.8.4.4" - Desactiva la obtención automática de DNS por DHCP:
nmcli connection modify "Nombre_Conexión" ipv4.ignore-auto-dns yes - Reinicia la conexión de red para aplicar los cambios:
nmcli connection up "Nombre_Conexión"
Método 2: Desactivar el enlace simbólico de systemd-resolved
En sistemas con systemd-resolved activo, el archivo /etc/resolv.conf suele ser un enlace simbólico. Para tomar el control manual y evitar que se sobrescriba, realiza el siguiente procedimiento:
- Verifica el estado del enlace con el comando:
ls -l /etc/resolv.conf - Elimina el enlace simbólico actual de forma segura:
sudo rm /etc/resolv.conf - Crea un nuevo archivo
resolv.confplano con tu editor de texto favorito:sudo nano /etc/resolv.conf - Añade tus servidores DNS deseados, por ejemplo:
nameserver 1.1.1.1ynameserver 9.9.9.9. Guarda y cierra el archivo. - Bloquea los atributos del archivo para evitar modificaciones accidentales o automáticas ejecutando:
sudo chattr +i /etc/resolv.conf
Conclusión
Resolver el problema del archivo /etc/resolv.conf sobrescrito en Linux garantiza que tu red mantenga una configuración DNS estable y personalizada. Dependiendo de tu distribución y herramientas de red, utilizar NetworkManager o aplicar atributos inmutables son las mejores alternativas para recuperar el control total de tu sistema.