Cómo cambiar el servidor DNS de forma permanente en Ubuntu 20.04

Cambiar el DNS en Ubuntu 20.04 no es tan sencillo como editar algunos ajustes y esperar a que todo salga bien. A veces, los servidores DNS predeterminados se mantienen incluso después de configurar los nuevos, especialmente si el administrador de red se reinicia o si otros servicios sobrescriben las configuraciones. No es raro que los cambios de DNS se reviertan tras reiniciar el sistema o la red, lo cual puede ser muy molesto. Por lo tanto, si busca una solución más permanente (para asegurarse de que su DNS personalizado se mantenga incluso después de actualizaciones, reinicios o cambios de red), deberá investigar un poco más a fondo.

Esta guía te explicará el método real, aunque algo complejo, de configurar el DNS a nivel de sistema, haciéndolo más resistente. Claro que vale la pena saber lo que haces, ya que manipular los archivos del sistema puede causar problemas si no tienes cuidado. Pero, al final, esto puede ahorrarte tiempo y frustración, especialmente si tu método de DNS actual se reinicia constantemente o no es fiable.

Cómo arreglar la configuración de DNS para que se mantenga en Ubuntu 20.04

Utilice Netplan para configurar DNS de forma permanente

Ubuntu 20.04 usa Netplan por defecto para administrar las configuraciones de red. El truco consiste en anular la configuración de DNS directamente en los archivos YAML de Netplan para que se mantengan intactos. Este método es eficaz porque no depende de las peculiaridades del antiguo NetworkManager; se trata de un control a nivel de sistema.

En algunas configuraciones, encontrarás tus configuraciones en /etc/netplan/01-netcfg.yamlun archivo similar.Ábrelo con un editor de texto como nano[o] vim.

sudo nano /etc/netplan/01-netcfg.yaml

Si ves algo como:

network: version: 2 renderer: NetworkManager ethernets: enp3s0: dhcp4: yes

Cámbielo para incluir servidores DNS en su interfaz, de la siguiente manera:

network: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] 

Básicamente, desactivas el DHCP en esa interfaz (si está habilitado) y luego especificas los servidores DNS directamente. De esta forma, no se sobrescribirá con las actualizaciones de DHCP ni las recargas del administrador de red.

Guarde el archivo ( Ctrl + Oen nano, luego Enter, luego Ctrl + Xpara salir) y aplique la configuración con:

sudo netplan apply

Nota: Asegúrate de reemplazarlo enp3s0con el nombre real de tu interfaz. Puedes comprobar tu interfaz de red con ip link.

Espera que funcione de inmediato o, a veces, un reinicio ayuda, porque sí, Linux puede ser un poco raro. En algunas configuraciones, el DNS funciona mejor si deshabilitas el DHCP para esa interfaz por completo y luego especificas el DNS manualmente. Este es un enfoque más bien «dispara y olvida».

Alternativamente, anule el DNS en systemd-resolved

Otra forma más sencilla es modificar systemd-resolved. Es el solucionador DNS predeterminado en Ubuntu 20.04, y también puedes configurar servidores DNS persistentes.

Editar el /etc/systemd/resolved.confarchivo:

sudo nano /etc/systemd/resolved.conf

Descomente o agregue líneas como:

[Resolve] DNS=8.8.8.8 8.8.4.4 FallbackDNS=1.1.1.1 1.0.0.1 # Might also want to set DNSStubListener=no to avoid conflicts if you're using stub listener 

Después de guardar, reinicie el servicio:

sudo systemctl restart systemd-resolved

Este método actualiza los servidores DNS a nivel del solucionador del sistema, lo cual persiste a pesar de los reinicios y restablecimientos de la red, mucho mejor que confiar en la GUI o DHCP.

Y si desea verificar que funciona, ejecute systemd-resolve --statusy verifique los servidores DNS enumerados.

Consejo adicional: tenga en cuenta los archivos /etc/hosts y /etc/resolv.conf

A veces, los problemas de DNS se deben a configuraciones en caché o conflictivas en [nombre del dominio] /etc/resolv.conf. En Ubuntu 20.04, suele resolv.conftener un enlace simbólico /run/systemd/resolve/stub-resolv.confa [nombre del dominio].Si estás sobrescribiendo el DNS, asegúrate de que el enlace apunte a tu configuración preferida o desactiva el stub si usas un resolver personalizado.

Esto se puede comprobar con:

ls -l /etc/resolv.conf

Si el enlace simbólico apunta a stub-resolv.conf, y estás administrando DNS en otro lugar, es posible que desees deshabilitar el escucha de stub o eliminar el enlace simbólico, pero eso es entrar en territorio más avanzado.

Consejos adicionales y solución de problemas

  • Siempre que modifiques el DNS, conviene vaciar la caché DNS para estar seguro: sudo systemd-resolve --flush-caches. Podría ser útil si no se actualiza.
  • A veces, reiniciar la red o reiniciar el sistema ayuda después de realizar cambios de configuración. Porque, claro, Linux tiene que complicarlo más de lo necesario.
  • Si está usando VPN u otras herramientas de red, estas pueden anular su configuración de DNS, así que verifique nuevamente si su nuevo DNS está realmente en uso.

Resumen

Modificar los archivos netplan o la configuración resuelta por systemd puede parecer un poco complejo, pero en realidad es bastante fiable una vez configurado. Garantiza que no se pierdan las personalizaciones de DNS tras reiniciar o restablecer la red. Aunque es un poco más práctico, es mejor que tener que dar vueltas intentando reconfigurar desde la interfaz gráfica cada vez.

Resumen

  • Edite /etc/netplan/*.yaml para incluir su DNS si desea configuraciones persistentes en todo el sistema
  • O modifique /etc/systemd/resolved.conf y reinicie systemd-resolved para obtener una solución más limpia y administrada por el sistema.
  • Siempre verifique dos veces los nombres de sus interfaces y asegúrese de que las configuraciones sean correctas antes de aplicar
  • Recuerde limpiar los cachés de DNS y reiniciar la red si los problemas no surten efecto de inmediato.

Cruzo los dedos para que esto ayude.