Introducción al Problema
Uno de los dolores de cabeza más comunes para los administradores de sistemas Linux es configurar manualmente los servidores DNS editando el archivo /etc/resolv.conf, solo para descubrir que al reiniciar el equipo o el servicio de red, toda la configuración se ha borrado o restablecido a los valores por defecto del proveedor o del router. Este comportamiento frustrante se debe a que gestores de red modernos como NetworkManager o systemd-resolved controlan dinámicamente este archivo mediante enlaces simbólicos.
Causas Principales del Error
El archivo /etc/resolv.conf ya no es un archivo estático en la mayoría de las distribuciones modernas de Linux (como Ubuntu, Debian, Fedora o CentOS). Las causas más frecuentes de que se sobrescriba son:
- El servicio
systemd-resolvedestá activo y gestiona la resolución de nombres localmente. - NetworkManager sobrescribe el archivo cada vez que se establece una nueva conexión de red.
- El archivo es un enlace simbólico que apunta a una configuración generada automáticamente por el sistema.
Método 1: Deshabilitar y Desvincular systemd-resolved (Ubuntu y Debian)
Si tu distribución utiliza systemd-resolved, la forma más directa de tomar el control total de tus DNS es desactivar este servicio y crear un archivo estático real.
- Detiene y desgracia el servicio con el siguiente comando en la terminal:
sudo systemctl disable --now systemd-resolved - Elimina el enlace simbólico existente:
sudo rm /etc/resolv.conf - Crea un nuevo archivo
/etc/resolv.confusando tu editor de texto favorito:sudo nano /etc/resolv.conf - Añade tus servidores DNS deseados, por ejemplo:
nameserver 8.8.8.8nameserver 1.1.1.1 - Guarda el archivo y protégelo contra modificaciones accidentales aplicando permisos de solo lectura:
sudo chattr +i /etc/resolv.conf
Método 2: Configurar NetworkManager para Evitar que Sobrescriba DNS
Si prefieres mantener NetworkManager activo pero necesitas que respete tu configuración DNS personalizada sin bloquear el archivo con atributos inmutables, debes editar su archivo de configuración global.
- Abre el archivo de configuración de NetworkManager:
sudo nano /etc/NetworkManager/NetworkManager.conf - Dentro de la sección
[main], añade la siguiente línea para deshabilitar la generación automática:dns=none - Guarda los cambios y sal del editor.
- Reinicia el servicio de NetworkManager para aplicar los cambios:
sudo systemctl restart NetworkManager - Ahora puedes configurar tus servidores DNS directamente en las propiedades de tu conexión de red o editar
/etc/resolv.confmanualmente con seguridad.
Conclusión
Solucionar el problema del archivo /etc/resolv.conf sobrescrito en Linux garantiza la estabilidad de la red en tus servidores y equipos de escritorio. Dependiendo de si usas systemd-resolved o NetworkManager, aplicar estos métodos te permitirá fijar tus DNS de forma permanente y evitar sorpresas tras cada reinicio.