Solo para visitantes de nuestro blog Obtenga 3 meses adicionales gratis + 10% de descuento en el plan trianual YSBLOG10
Agarra el trato

Cómo solucionarlo DNS ¿En Linux Server en 2026? – Guía sencilla

Para solucionar DNS en un servidor Linux, verifique la conectividad de red, compruebe qué pila de resolución utiliza (systemd-resolved, NetworkManager o resolv.conf simple), configure los servidores de nombres correctos, vacíe DNS escondites y prueba con dig.

Si ejecuta una DNS TRANSPORTE GRATUITO (BIND/Sin enlazar/dnsmasq), validar la configuración, abrir el puerto 53 y confirmar las zonas y la recursión. DNS Un fallo en el servidor interrumpe las actualizaciones, las instalaciones de paquetes y las llamadas salientes a la API.

En esta guía, te mostraré cómo solucionarlo DNS En entornos de servidores Linux, aprenda paso a paso, utilizando comandos sencillos, diagnósticos probados e instrucciones específicas para cada distribución. Tanto si es principiante como si administra nodos de producción, encontrará soluciones rápidas y definitivas.

Búsqueda DNS Lista de verificación de diagnóstico

  • Compruebe la conectividad básica de la red: ¿Puedes hacer ping a una IP (no a un dominio)?
  • Identifique su pila de resolución: systemd-resolved, NetworkManager o /etc/resolv.conf estático.
  • Inspeccionar la corriente servidores de nombres y dominios de búsqueda.
  • Prueba DNS Resolución con dig y nslookup.
  • Flush DNS cachés (cliente y local) DNS servicios).
  • Compruebe el firewall/SELinux para el puerto 53 si el servidor está en ejecución. DNS.
  • Revisar registros: systemd-journals y registros de servicio para errores (SERVFAIL, tiempos de espera agotados).
# 1) Connectivity
ping -c2 1.1.1.1 || ping -c2 8.8.8.8

# 2) What resolver do I use?
readlink -f /etc/resolv.conf
resolvectl status 2>/dev/null || systemd-resolve --status 2>/dev/null

# 3) What is my DNS seeing?
cat /etc/resolv.conf
dig youstable.com +short
nslookup youstable.com

# 4) Trace a domain (find where it fails)
dig example.com +trace

# 5) Logs (adjust service name as needed)
journalctl -u systemd-resolved --no-pager --since "10 min ago"
journalctl -u named --since "1 hour ago"
journalctl -u unbound --since "1 hour ago"

Entender cómo DNS Funciona en Linux

Resolver glibc y nsswitch

La mayoría de las aplicaciones Linux dependen del resolvedor glibc, que consulta las fuentes listadas en /etc/nsswitch.conf. La línea “hosts: files dns myhostname” controla el orden de resolución. Si DNS Parece que se ignora. Compruebe nsswitch para asegurarse de que "dns" está presente y no está bloqueado por fuentes mal ordenadas.

/ Etc / resolv.conf

resolv.conf define las IP del servidor de nombres, los dominios de búsqueda y las opciones (como el tiempo de espera y los intentos). Dependiendo de su distribución, puede ser... managed por systemd-resolved, NetworkManager, netplan o cloud-init. Editarlo directamente podría sobrescribirse al reiniciar; use la herramienta adecuada para cambios persistentes.

systemd-resuelto

En muchas distribuciones modernas (Ubuntu, Debian, Fedora), systemd-resolved es el resolvedor auxiliar. Comúnmente usa 127.0.0.53 como una IP local. DNS y manages resolv.conf a través de un enlace simbólico. Use resolvectl para ver y configurar DNS por interfaz y para vaciar las cachés.

NetworkManager, netplan e ifcfg

NetworkManager (nmcli) y netplan (imágenes de nube de Ubuntu) configuran las interfaces y DNS persistentemente. Los sistemas basados ​​en RHEL pueden usar archivos ifcfg. Cloud-init puede establecer DNS al arrancar desde metadatos. Establecer DNS en la capa adecuada para que los cambios persistan tras los reinicios.

Correcciones del lado del cliente: DNS No funciona en un servidor Linux.

Paso 1: Verificar la conectividad y el enrutamiento de la red

ip a
ip route
ping -c3 1.1.1.1
curl -I http://1.1.1.1

Si el ping a una IP funciona pero la resolución de dominios falla, el problema es DNS-específico. Si la conectividad IP también está dañada, solucione primero los problemas de red (puerta de enlace, rutas, grupos de seguridad).

Paso 2: Inspeccione y configure resolv.conf (temporal)

cat /etc/resolv.conf
# Quick temporary fix: point to public resolvers
sudo sed -i.bak 's/^/#/' /etc/resolv.conf
printf "nameserver 1.1.1.1\nnameserver 8.8.8.8\noptions timeout:2 attempts:2\n" | sudo tee /etc/resolv.conf

Es posible que la pila de red sobrescriba este valor. Conviértalo en persistente con la herramienta correcta a continuación.

Paso 3: Utilice systemd-resolved correctamente (Ubuntu/Debian/Fedora)

# Show current DNS per interface
resolvectl status

# Set DNS for a specific interface, e.g., eth0
sudo resolvectl dns eth0 1.1.1.1 8.8.8.8
sudo resolvectl domain eth0 example.local

# Ensure resolv.conf points to systemd-resolved's stub
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

# Flush cache
sudo resolvectl flush-caches

Si resolv.conf no es un enlace simbólico al archivo systemd, las discrepancias pueden causar fallos. Recree el enlace simbólico como se muestra.

Paso 4: NetworkManager persistente DNS (RHEL/CentOS/Alma/Rocky/Ubuntu Desktop)

# List connections and pick the active one
nmcli con show
# Set DNS and disable automatic DNS from DHCP if needed
sudo nmcli con mod <CONNECTION_NAME> ipv4.ignore-auto-dns yes
sudo nmcli con mod <CONNECTION_NAME> ipv4.dns "1.1.1.1 8.8.8.8"
sudo nmcli con up <CONNECTION_NAME>  # or reload
# For IPv6 if applicable
sudo nmcli con mod <CONNECTION_NAME> ipv6.ignore-auto-dns yes
sudo nmcli con mod <CONNECTION_NAME> ipv6.dns "2606:4700:4700::1111 2001:4860:4860::8888"

Paso 5: Netplan (común en las imágenes en la nube de Ubuntu)

sudo nano /etc/netplan/50-cloud-init.yaml
# Example:
# network:
#   version: 2
#   ethernets:
#     eth0:
#       dhcp4: yes
#       nameservers:
#         addresses: [1.1.1.1, 8.8.8.8]
sudo netplan apply

Si cloud-init sobrescribe DNS al reiniciar, configure DNS en /etc/cloud/cloud.cfg o en la fuente de datos (metadatos) según la documentación de su proveedor.

Paso 6: Corrija el orden de nsswitch y el archivo de hosts

grep '^hosts:' /etc/nsswitch.conf
# Recommended baseline:
# hosts: files dns myhostname

sudo sed -i 's/^hosts:.*/hosts: files dns myhostname/' /etc/nsswitch.conf
sudo head -n 50 /etc/hosts

Asegúrese de que /etc/hosts no contenga entradas conflictivas que secuestren dominios que necesitas resolver mediante DNS.

Paso 7: Enjuagar localmente DNS caches

# systemd-resolved
sudo resolvectl flush-caches

# nscd
sudo nscd -i hosts

# dnsmasq (cache flush by SIGHUP)
sudo killall -HUP dnsmasq

# unbound
sudo unbound-control flush_zone .  # or specific zones

Paso 8: VPN, división-DNS y IPv6 trampas

Los clientes VPN a menudo instalan su propio resolv.conf o push DNS a través de NetworkManager. Prueba sin VPN. Si IPv6 está habilitado pero su resolvedor no puede llegar a los upstreams v6, agregue trabajo IPv6 DNS o deshabilitar IPv6 DNS Por ahora, a través de NetworkManager o las opciones de resolv.conf.

Si su servidor funciona DNS (BIND/Sin enlazar/dnsmasq)

Abrir y probar el puerto 53 (UDP/TCP)

# Firewalld
sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload

# UFW
sudo ufw allow 53
sudo ufw allow 53/udp

# nftables quick check
sudo nft list ruleset | sed -n '1,200p'

# Test externally (from another host)
dig @SERVER_IP example.com A
dig @SERVER_IP google.com A +tcp

Configuración de BIND (con nombre) y cordura de zona

# Validate configs and zones
sudo named-checkconf
sudo named-checkzone example.com /var/named/example.com.zone

# Common mistakes:
# - Missing SOA/NS records
# - Serial number not incremented
# - Wrong allow-query / recursion settings

Para un solucionador que preste servicio a su red privada, habilite la recursión y restrinja el acceso:

options {
    recursion yes;
    allow-recursion { 10.0.0.0/8; 192.168.0.0/16; };
    allow-query     { any; };
    dnssec-validation auto;
};

Unbound como solucionador de validación

# Check logs for SERVFAIL (often DNSSEC-related)
journalctl -u unbound -e

# Basic allowlist for your LAN:
server:
  interface: 0.0.0.0
  access-control: 10.0.0.0/8 allow
  access-control: 192.168.0.0/16 allow
  verbosity: 1

notas de dnsmasq

dnsmasq puede reenviar o almacenar en caché. DNSSi está vinculado a 127.0.0.1 pero resolv.conf apunta a otra dirección, los clientes podrían omitirlo. Configure resolv.conf o systemd-resolved para usar dnsmasq y ejecute HUP después de los cambios.

DNSSEC y SERVFAIL

Si ve SERVFAIL esporádicamente, puede ser DNSLa validación SEC falla debido a un desfase horario o problemas con el servidor de origen. Asegúrese de que el NTP funcione correctamente y de que su resolvedor pueda acceder a los servidores raíz y TLD. Como solución temporal, utilice un resolvedor público (1.1.1.1, 8.8.8.8) mientras soluciona el problema de validación.

Verificación: Confirmar DNS Es saludable

  • Resolver múltiples dominios: Registros A, AAAA, MX y NS.
  • Pruebe UDP y TCP en el puerto 53 si ejecuta un DNS .
  • Rastrear un dominio problemático de extremo a extremo con dig + trace.
  • Captura de paquetes para ver tiempos de espera o rechazos.
dig youstable.com A +short
dig google.com MX +short
dig @1.1.1.1 cloudflare.com NS +short
dig example.com AAAA +short
dig +trace example.com

# Tcpdump (observe DNS traffic)
sudo tcpdump -ni any port 53 -vv

Hacer DNS Configuración persistente

  • Utilice nmcli o netplan en lugar de editar resolv.conf directamente.
  • Alinee el enlace simbólico systemd-resolved y resolv.conf.
  • Deshabilite las fuentes de sobrescritura (DHCP ignore-auto-dns, actualizaciones de cloud-init) si es necesario.
  • Comparación de DNS Opciones (resolutores públicos frente a privados) por entorno.

Prevención: Reducir DNS Cortes

  • Configure siempre al menos dos resolvers de redes diferentes (por ejemplo, 1.1.1.1 y 8.8.8.8).
  • Monitorización DNS Latencia y tasas de fallos con scripts o un conjunto de herramientas de monitorización.
  • Usa DNS Almacenamiento en caché local (systemd-resolved, Unbound) para obtener respuestas más rápidas.
  • Mantenga la hora sincronizada (NTP/chrony) para evitar DNSFallos de validación de la SEC.
  • Cambios de control a través de la configuración managemento (Ansible, Terraform).

Cuándo escalar y cómo YouStable Ayuda a las

Si aún observa tiempos de espera agotados, SERVFAIL o resolución intermitente bajo carga, el problema podría estar relacionado con filtros ascendentes, emparejamiento del ISP o comportamiento del solucionador recursivo. En producción, considere managed DNS y manageservidores d. YouStableLa pila de alojamiento de incluye valores predeterminados reforzados, soporte 24 horas, los 7 días de la semana y configuraciones de resolución de mejores prácticas para mantener sus aplicaciones accesibles.

Errores comunes y soluciones rápidas

  • “Fallo temporal en la resolución de nombres” — Establecer servidores de nombres que funcionen y vaciar cachés.
  • “Se agotó el tiempo de conexión; no se pudo acceder a ningún servidor” Verifique el firewall, la accesibilidad ascendente o la VPN.
  • “FALLA DE SERVICIO” — inspeccionar DNSProblemas con la SEC, la sincronización horaria o la delegación de zonas.
  • resolv.conf sigue cambiando configurar DNS en NetworkManager, netplan o cloud-init.
  • Funciona con IP pero no con nombre de host corregir el orden de nsswitch y DNS .

Preguntas Frecuentes

1. ¿Por qué es DNS ¿No funciona en mi servidor Linux?

Las causas comunes incluyen servidores de nombres incorrectos, resolv.conf sobrescrito, nsswitch.conf mal ordenado, local DNS Problemas de caché, interferencias de VPN o bloqueos de firewall en el puerto 53. Comience revisando resolv.conf, resolvectl status y realizando pruebas con dig contra un resolvedor que funcione correctamente.

2. ¿Cómo puedo configurarlo permanentemente? DNS ¿En Linux?

Utilice la herramienta de su pila de red: nmcli (NetworkManager), netplan (Ubuntu cloud) o resolvectl (systemd-resolved). Evite editar resolv.conf directamente; suele ser... managed y se sobrescribirá. En sistemas de la familia RHEL, nmcli con ignore-auto-dns garantiza la persistencia tras reinicios.

3. ¿Cómo tiro de la cadena? DNS ¿Caché en Linux?

Para systemd-resolved, use "resolvectl flush-caches". Para nscd, use "nscd -i hosts". Para dnsmasq, envíe SIGHUP, y para Unbound, use "unbound-control flush_zone". Muchos servidores no almacenan caché a nivel de glibc; las cachés residen en estos servicios.

4. ¿Cómo puedo probar si el puerto 53 está abierto?

Desde un host remoto, ejecute "dig @SERVER_IP example.com A" y "dig @SERVER_IP example.com +tcp". En el servidor, confirme las reglas del firewall (ufw, firewalld, nftables) y escuche los sockets con "ss -lunpt | grep :53".

5. ¿Cómo puedo solucionar rápidamente el “Error temporal en la resolución de nombres”?

Configure los resolvers que funcionen (1.1.1.1 y 8.8.8.8), alinee el enlace simbólico resolv.conf con systemd-resolved si se usa, vacíe las cachés y verifique con dig. Haga que el cambio sea persistente mediante nmcli o netplan para que sobreviva a los reinicios.

Con los pasos anteriores, puedes solucionarlo. DNS en entornos de servidor Linux de forma fiable y para que sus cambios se mantengan. Si desea una configuración reforzada con monitorización proactiva y soporte experto, YouStable, manageEl alojamiento web puede tomar DNS Te ahorrarás muchos dolores de cabeza.

Compartir via:

Sanjeet Chauhan

Sanjeet Chauhan es bloguero y experto en SEO, dedicado a ayudar a los sitios web a crecer orgánicamente. Comparte estrategias prácticas, consejos prácticos y conocimientos para impulsar el tráfico, mejorar el posicionamiento y maximizar la presencia online.

Deja Tu Comentario

Su dirección de correo electrónico no será publicada. Las areas obligatorias están marcadas como requeridas *

Ir al Inicio