Si eres usuario de Ubuntu, probablemente hayas experimentado alguna vez la situación de que "el nombre de dominio no funciona, pero se puede acceder por IP". En estos casos, la causa del problema suele estar en la configuración de DNS. Especialmente, recientemente Ubuntu utiliza por defecto el demonio de resolutor DNS llamado systemd-resolved, por lo que es importante entender su estructura.


1. Flujo de solicitudes DNS

Si lees y entiendes atentamente el resumen a continuación, casi todos los problemas se resolverán.

  1. El usuario solicita un dominio a través de una aplicación como el navegador
  2. Linux, por defecto, lee /etc/resolv.conf para resolver DNS (este archivo está vinculado simbólicamente a /run/systemd/resolve/stub-resolv.conf)
  3. /run/systemd/resolve/stub-resolv.conf está configurado para 127.0.0.53, lo que activa finalmente a systemd-resolved.
  4. El systemd-resolved del sistema está controlado por el archivo de configuración /etc/systemd/resolved.conf
  5. Es decir, systemd-resolved consulta el servidor DNS configurado en /etc/systemd/resolved.conf,
  6. recibe la respuesta y completa la conversión de dominio a dirección IP

2. Resumen de componentes clave

Como se explicó anteriormente, systemd-resolved tiene 4 archivos de configuración clave. Entender el rol de estos archivos es fundamental.

2-1. /etc/resolv.conf

  • Ubicación donde se lee la lista de servidores DNS en sistemas Linux tradicionales
  • Sin embargo, ahora debe existir como un enlace simbólico para la compatibilidad con systemd
  • Por lo general, debe estar configurado de la siguiente manera para funcionar correctamente: bash /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
  • Es decir, este archivo actúa como un mediador entre "aplicaciones tradicionales y systemd-resolved" en el sistema actual

2-2. /run/systemd/resolve/stub-resolv.conf

  • Contiene información sobre el servidor DNS local (127.0.0.53) gestionado por systemd-resolved
  • Si /etc/resolv.conf apunta a este archivo, todas las solicitudes DNS pasan a través de systemd-resolved

2-3. /etc/systemd/resolved.conf

  • El archivo de configuración clave de systemd-resolved
  • Se pueden establecer elementos como DNS=, FallbackDNS= para establecer prioridades
  • Es una configuración permanente que se mantiene incluso después de reiniciar

2-4. /run/systemd/resolve/resolv.conf

  • Archivo que contiene la lista real de servidores DNS gestionada por systemd-resolved
  • Los usuarios avanzados pueden conectar este archivo a /etc/resolv.conf en lugar de stub-resolv.conf para hacer solicitudes directas al servidor DNS (configuración de bypass)

3. Ejemplo de problemas: Inestabilidad de los servidores DNS configurados en un router proporcionado por un ISP

  • El servidor DNS (por ejemplo, 168.126.63.1) de un ISP típico de Corea del Sur, como KT, está configurado en el router, pero ocasionalmente surgen problemas de DNS si no tengo derecho a controlar ese router.
  • El DNS de KT frecuentemente tiene problemas de velocidad de respuesta inestables o fallos en el apretón de manos UDP/TCP
  • Si el registro de systemd-resolved muestra mensajes como los siguientes de manera repetida, esto es un signo de problemas: Using degraded feature set TCP instead of UDP for DNS server 168.126.63.1. Using degraded feature set UDP instead of TCP for DNS server 168.126.63.1.
  • Como resultado, el fallo en la interpretación del dominio provoca que no se pueda acceder al sitio web

4. Servidores DNS recomendados

Nombre Direccion Características
Google DNS 8.8.8.8, 8.8.4.4 Rápido y confiable
Cloudflare DNS 1.1.1.1, 1.0.0.1 Rápido y excelente protección de la privacidad
Quad9 9.9.9.9 Proporciona filtrado de amenazas de seguridad

5. Cómo configurar un DNS confiable

  1. Abrir el archivo /etc/systemd/resolved.conf
[Resolve]
DNS=1.1.1.1 8.8.8.8
FallbackDNS=9.9.9.9
  1. Aplicar la configuración
sudo systemctl restart systemd-resolved
  1. Verificar que /etc/resolv.conf esté correctamente vinculado
ls -l /etc/resolv.conf

→ Debe estar vinculado a /run/systemd/resolve/stub-resolv.conf

Si es necesario, reestablecer forzosamente:

sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

6. Precaución con la intervención de NetworkManager

Ubuntu en un entorno GUI puede sobrescribir la DNS con NetworkManager

  • Si la configuración automática de DNS está habilitada, la configuración de systemd-resolved puede ser ignorada
  • Solución: bash nm-connection-editor → Editar conexión → Pestaña IPv4 → Desactivar DNS automático → Ingresar DNS manualmente

7. Conclusión

  • Es recomendable evitar el uso del DNS de KT, ya que se reportan inestabilidades con frecuencia
  • La configuración de DNS a través de systemd-resolved es una manera muy poderosa de aumentar la estabilidad en Ubuntu
  • Si entiendes y aplicas la configuración con precisión, puedes reducir el estrés causado por fallas en la interpretación del dominio

8. Comentario de Jesse

Las configuraciones basadas en la comprensión son la mejor seguridad y mantenimiento. Espero que este artículo sea de ayuda práctica para quienes han tenido confusiones sobre la configuración de DNS en Ubuntu.