AdGuard Home: DNS Encriptado para tu Homelab (Guía Completa 2025)

¿Ya usas Pi-hole pero necesitas DNS encriptado nativo? ¿Quieres una alternativa moderna con filtrado avanzado por cliente y parental controls integrados? AdGuard Home es tu solución: un servidor DNS que bloquea anuncios y trackers a nivel de red, con soporte nativo para DoH, DoT y DoQ, y una interfaz web moderna que hace que la gestión sea un placer.

En esta guía completa te enseño a instalar AdGuard Home con Docker-2025/), configurar DNS encriptado (DoH/DoT/DoQ), compararlo con Pi-hole, y aprovechar funciones avanzadas como filtrado por cliente y safe search forzado. Todo con ejemplos prácticos copy-paste y soluciones a los problemas más comunes.

Después de seguir esta guía, tendrás un servidor DNS que no solo bloquea anuncios, sino que también encripta todas tus consultas DNS para máxima privacidad. Tu ISP no podrá ver qué sitios visitas, y tendrás control granular sobre qué dispositivos pueden acceder a qué contenido.

📋 TL;DR

¿Qué es AdGuard Home? Un servidor DNS moderno que bloquea anuncios y trackers, con soporte nativo para DNS encriptado (DoH/DoT/DoQ).

¿Por qué elegirlo sobre Pi-hole? DNS encriptado nativo, UI moderna, filtrado avanzado por cliente, parental controls integrados, y safe search forzado.

¿Qué necesitas? Docker, 15 minutos, y ganas de tener privacidad DNS real.

¿Resultado? Bloqueo de anuncios en toda tu red + DNS completamente encriptado + control granular por dispositivo.

⏱️ Tiempo de lectura: 20 minutos | Nivel: Intermedio

📚 Tabla de Contenidos

  1. ¿Qué es AdGuard Home y por qué usarlo?
  2. AdGuard Home vs Pi-hole: Comparativa Completa
  3. Instalación con Docker Compose
  4. Configuración Inicial
  5. DNS Encriptado: DoH, DoT y DoQ
  6. Filtrado Avanzado y Blocklists
  7. Filtrado por Cliente y Parental Controls
  8. Integración con Pi-hole
  9. Monitoreo y Estadísticas
  10. Troubleshooting Común
  11. Mejores Prácticas
  12. Descargar Ejemplos
  13. Preguntas Frecuentes
  14. Conclusión

> 📅 Última actualización: Diciembre 2025

> ✅ Verificado con: AdGuard Home v0.108.0 – Diciembre 2025

> 🔄 Próxima revisión: Marzo 2026

¿Qué es AdGuard Home y por qué usarlo? {#que-es-adguard-home}

AdGuard Home es un software de bloqueo de anuncios y seguimiento a nivel de red que funciona como un servidor DNS. A diferencia de las extensiones de navegador que solo bloquean anuncios en un dispositivo, AdGuard Home bloquea anuncios y trackers para todos los dispositivos de tu red: móviles, tablets, smart TVs, consolas, y cualquier dispositivo IoT.

Características principales

  • DNS Sinkhole: Intercepta y bloquea consultas DNS a dominios maliciosos/anuncios antes de que lleguen a tus dispositivos
  • DNS Encriptado Nativo: Soporte integrado para DoH (DNS-over-HTTPS), DoT (DNS-over-TLS), y DoQ (DNS-over-QUIC)
  • Filtrado por Cliente: Reglas diferentes para cada dispositivo o grupo (ideal para parental controls)
  • UI Moderna: Interfaz web intuitiva con estadísticas en tiempo real y dashboard visual
  • Multiplataforma: Linux, Windows, macOS, FreeBSD, y Docker
  • Open Source: Código abierto y completamente gratuito
  • Safe Search Forzado: Fuerza búsquedas seguras en Google, Bing, Yandex
  • Parental Controls: Bloqueo de contenido inapropiado por dispositivo
  • API REST: API completa para automatización e integración

¿Cómo funciona AdGuard Home?

AdGuard Home actúa como un servidor DNS intermedio entre tus dispositivos e Internet:

TEXT
Cliente (192.168.1.100) 
  → Consulta DNS: "ads.example.com"
  → AdGuard Home (192.168.1.10:53)
    → Verifica blocklists
    → Si está bloqueado: Responde 0.0.0.0 (bloquea)
    → Si no está bloqueado: Consulta upstream DNS encriptado (Cloudflare, Google, etc.)
      → Responde IP real al cliente

Ventajas sobre extensiones de navegador:

  • Funciona en todos los dispositivos (no solo navegadores)
  • Bloquea anuncios en apps móviles
  • Protege dispositivos IoT (smart TVs, altavoces, consolas)
  • Una sola configuración para toda la red
  • DNS encriptado para privacidad máxima

¿Por qué DNS encriptado importa?

Sin DNS encriptado, tu ISP puede ver todas las consultas DNS que haces:

  • Qué sitios web visitas
  • Qué apps usan tus dispositivos
  • Patrones de navegación
  • Información que puede venderse a terceros

Con DNS encriptado (DoH/DoT/DoQ):

  • Tu ISP no puede ver tus consultas DNS
  • Previene DNS spoofing y ataques man-in-the-middle
  • Evita bloqueos gubernamentales de DNS
  • Privacidad real en tu navegación

AdGuard Home vs Pi-hole: Comparativa Completa {#comparativa-pihole}

Si ya conoces Pi-hole, probablemente te preguntes: ¿vale la pena cambiar a AdGuard Home? Aquí tienes una comparativa detallada:

CriterioAdGuard HomePi-holeGanador
DNS Encriptado (DoH/DoT/DoQ)✅ Nativo, sin configuración adicional❌ Requiere software adicional (cloudflared, unbound)🏆 AdGuard
UI/UX✅ Moderna, intuitiva, dashboard visual⚠️ Funcional pero diseño básico🏆 AdGuard
Filtrado por Cliente✅ Avanzado (reglas personalizadas, grupos)⚠️ Básico (solo grupos)🏆 AdGuard
Safe Search Forzado✅ Nativo (Google, Bing, Yandex)❌ No disponible🏆 AdGuard
Parental Controls✅ Integrado, bloqueo por horario⚠️ Limitado🏆 AdGuard
Performance⚠️ Ligero (más recursos que Pi-hole)✅ Extremadamente ligero🏆 Pi-hole
Comunidad⚠️ Creciente, activa✅ Muy grande y activa🏆 Pi-hole
Documentación✅ Buena, bien estructurada✅ Excelente, muy completa🤝 Empate
Instalación✅ Fácil (binario único o Docker)⚠️ Script de instalación🏆 AdGuard
Multiplataforma✅ Linux, Windows, macOS, FreeBSD⚠️ Principalmente Linux🏆 AdGuard
API✅ REST API completa⚠️ API limitada🏆 AdGuard
Logs y Estadísticas✅ Dashboard moderno, visual✅ Dashboard funcional🤝 Empate
Blocklists✅ Soporta múltiples formatos✅ Soporta múltiples formatos🤝 Empate
Recursos Mínimos⚠️ 512 MB RAM✅ 256 MB RAM🏆 Pi-hole

¿Cuándo usar cada una?

Usa AdGuard Home si:

  • ✅ Necesitas DNS encriptado nativo sin configuración adicional
  • ✅ Quieres filtrado avanzado por cliente (parental controls)
  • ✅ Prefieres una UI moderna e intuitiva
  • ✅ Necesitas safe search forzado para niños
  • ✅ Tienes hardware con al menos 1 GB RAM

Usa Pi-hole si:

  • ✅ Tienes hardware muy limitado (Raspberry Pi antiguo con 256 MB RAM)
  • ✅ Prefieres la comunidad más grande y documentación extensa
  • ✅ No necesitas DNS encriptado (o puedes configurarlo manualmente)
  • ✅ Solo necesitas bloqueo básico de anuncios

Recomendación general: Si tienes un homelab moderno con recursos suficientes, AdGuard Home es la mejor opción por su DNS encriptado nativo y funciones avanzadas. Si tienes hardware muy limitado o prefieres la comunidad de Pi-hole, quédate con Pi-hole.

¿Puedes usar ambos? Sí, puedes usar Pi-hole como upstream de AdGuard Home, o viceversa. Te explico cómo más adelante.

Imagen 1

Instalación con Docker Compose {#instalacion-docker}

Requisitos Previos

  • Docker instalado: docker --version (versión 20.10+)
  • Docker Compose instalado: docker compose version (versión 2.0+)
  • Puertos libres: 53 (DNS), 80 (HTTP), 443 (HTTPS/DoH), 853 (DoT), 784 (DoQ)
  • Permisos: Usuario con permisos para ejecutar Docker

Paso 1: Crear Estructura de Directorios

BASH
# Crear directorio para AdGuard Home
mkdir -p ~/docker/adguard/{work,conf}
cd ~/docker/adguard

Explicación: Los directorios work y conf almacenan la configuración y datos de AdGuard Home. Es importante usar volúmenes persistentes para no perder la configuración al reiniciar el contenedor.

Paso 2: Crear docker-compose.yml

Crea docker-compose.yml:

YAML
version: '3.8'

services:
  adguard:
    image: adguard/adguardhome:latest
    container_name: adguard-home
    restart: unless-stopped
    ports:
      - "53:53/tcp"      # DNS TCP
      - "53:53/udp"      # DNS UDP
      - "80:80/tcp"      # Web UI HTTP
      - "443:443/tcp"    # Web UI HTTPS / DoH
      - "443:443/udp"    # DoH UDP
      - "853:853/tcp"    # DoT
      - "784:784/udp"    # DoQ
      - "3000:3000/tcp"  # Setup inicial (remover después de configurar)
    volumes:
      - ./work:/opt/adguardhome/work
      - ./conf:/opt/adguardhome/conf
    environment:
      TZ: Europe/Madrid
    networks:
      - homelab
    cap_add:
      - NET_ADMIN
      - NET_RAW
    healthcheck:
      test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:80"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

networks:
  homelab:
    external: true

Explicación de puertos:

  • 53/tcp y 53/udp: DNS estándar (puerto clásico)
  • 80/tcp: Interfaz web HTTP (no recomendado en producción sin reverse proxy)
  • 443/tcp y 443/udp: HTTPS para web UI + DoH (DNS-over-HTTPS)
  • 853/tcp: DoT (DNS-over-TLS)
  • 784/udp: DoQ (DNS-over-QUIC)
  • 3000/tcp: Puerto de setup inicial (solo necesario la primera vez)

Nota: Si no tienes una red Docker llamada homelab, crea una con:

BASH
docker network create homelab

O cambia external: true por external: false para que Docker Compose la cree automáticamente.

Paso 3: Iniciar AdGuard Home

BASH
# Iniciar contenedor
docker compose up -d

# Ver logs
docker compose logs -f adguard

Explicación: El flag -d inicia el contenedor en modo detached (en segundo plano). Los logs te mostrarán si hay algún error durante el inicio.

Paso 4: Acceder a la Interfaz Web

Abre tu navegador y ve a:

TEXT
http://TU_IP_SERVIDOR:3000

Reemplaza TU_IP_SERVIDOR con la IP de tu servidor. Puedes obtenerla con:

BASH
hostname -I | awk '{print $1}'

Verás el asistente de configuración inicial de AdGuard Home.

Configuración Inicial {#configuracion-inicial}

Paso 1: Configuración del Servidor DNS

En el asistente inicial, configura:

  1. Interfaz de red: Selecciona 0.0.0.0 para escuchar en todas las interfaces
  2. Puerto DNS: 53 (puerto estándar)
  3. Puerto Web: 80 (o 443 si tienes SSL configurado)
  4. Usuario administrador: Crea un usuario (no uses admin)
  5. Contraseña: Usa una contraseña segura

Paso 2: Configurar Upstream DNS

En Settings → DNS Settings → Upstream DNS servers, añade:

TEXT
https://dns.cloudflare.com/dns-query
https://dns.google/dns-query
tls://one.one.one.one
tls://dns.google
quic://dns.adguard-dns.com

Explicación: Estos son servidores DNS encriptados. AdGuard Home usará estos para resolver consultas que no están bloqueadas. Puedes usar solo DoH, solo DoT, o una mezcla.

Configuración recomendada:

  • all_servers: true: Consulta todos los upstreams en paralelo (más rápido)
  • fastest_addr: true: Usa la IP más rápida de cada upstream

Paso 3: Añadir Blocklists

En Filters → DNS blocklists, añade estas blocklists recomendadas:

  1. AdGuard DNS Filter: https://adguardteam.github.io/HostlistsForAdGuard/adguard-dns.txt
  2. OISD: https://dbl.oisd.nl/
  3. HaGeZi’s Multi PRO: https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.txt

Explicación: Estas blocklists bloquean anuncios, trackers, y dominios maliciosos. Puedes añadir más según tus necesidades, pero no uses más de 10 blocklists (afecta el rendimiento).

Paso 4: Configurar Router

Configura tu router para usar AdGuard Home como DNS:

  1. Accede a la configuración de tu router (normalmente 192.168.1.1 o 192.168.0.1)
  2. Busca la sección de DNS o Network Settings
  3. Configura:

DNS primario: 192.168.1.10 (IP de tu servidor con AdGuard Home)

DNS secundario: 1.1.1.1 (fallback de Cloudflare)

Nota: Algunos routers no permiten cambiar el DNS. En ese caso, configura el DNS manualmente en cada dispositivo.

Paso 5: Verificar Funcionamiento

BASH
# Verificar que AdGuard Home responde
nslookup example.org 192.168.1.10

# Debe mostrar la IP de AdGuard Home como servidor DNS

En el dashboard de AdGuard Home, deberías ver consultas DNS entrando. Si no ves nada, verifica que el router esté configurado correctamente.

DNS Encriptado: DoH, DoT y DoQ {#dns-encriptado}

Una de las ventajas principales de AdGuard Home es el soporte nativo para DNS encriptado. Te explico cada protocolo:

DNS-over-HTTPS (DoH)

Protocolo: HTTP/2 sobre TLS

Puerto: 443 (HTTPS estándar)

Ventaja: Difícil de detectar/bloquear (parece tráfico web normal)

Configuración en AdGuard Home:

  1. Ve a Settings → Encryption Settings
  2. Habilita Encryption
  3. Configura certificado SSL (Let’s Encrypt recomendado)
  4. Puerto DoH: 443

Usar DoH desde cliente:

BASH
# Con curl
curl -H "accept: application/dns-json" \
  "https://TU_DOMINIO/dns-query?name=example.org&type=A"

# Configurar en Android (Settings → Network → Private DNS)
# Modo: "Private DNS provider hostname"
# Hostname: adguard.example.com

DNS-over-TLS (DoT)

Protocolo: TLS sobre TCP

Puerto: 853 (dedicado)

Ventaja: Más eficiente que DoH, menos overhead

Configuración en AdGuard Home:

  1. En Settings → Encryption Settings
  2. Puerto DoT: 853
  3. Certificado SSL configurado

Usar DoT desde cliente:

BASH
# Con dig
dig @TU_DOMINIO -p 853 +tls example.org

# Configurar en Android (Settings → Network → Private DNS)
# Hostname: adguard.example.com

DNS-over-QUIC (DoQ)

Protocolo: QUIC (HTTP/3)

Puerto: 784 (por defecto)

Ventaja: Más rápido, mejor en redes inestables

Configuración en AdGuard Home:

  1. En Settings → Encryption Settings
  2. Puerto DoQ: 784
  3. Certificado SSL configurado

Usar DoQ desde cliente:

Actualmente, el soporte de DoQ en clientes es limitado. La mayoría de los clientes usan DoH o DoT.

Configuración de Certificado SSL

Para usar DNS encriptado, necesitas un certificado SSL. La forma más fácil es usar Let’s Encrypt:

BASH
# Si usas Nginx Proxy Manager o Traefik, configura el certificado allí
# AdGuard Home puede usar el certificado del reverse proxy

O configura Let’s Encrypt directamente en AdGuard Home:

  1. En Settings → Encryption Settings
  2. Selecciona Let’s Encrypt
  3. Introduce tu dominio (ej: adguard.example.com)
  4. AdGuard Home obtendrá el certificado automáticamente

Nota: Necesitas que el puerto 80 esté accesible desde Internet para la validación de Let’s Encrypt, o usar DNS challenge.

Filtrado Avanzado y Blocklists {#filtrado-avanzado}

Blocklists Recomendadas

Además de las blocklists básicas, aquí tienes más opciones:

BlocklistURLPropósito
AdGuard DNS Filterhttps://adguardteam.github.io/HostlistsForAdGuard/adguard-dns.txtBloqueo básico de anuncios
OISDhttps://dbl.oisd.nl/Optimizada, pocos falsos positivos
HaGeZi’s Multi PROhttps://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.txtProtección completa
AdAwayhttps://raw.githubusercontent.com/AdAway/adaway.github.io/master/hosts.txtEnfocada en móviles
Steven Blackhttps://raw.githubusercontent.com/StevenBlack/hosts/master/hostsHosts unificados
Malware Domain Listhttps://mirror1.malwaredomains.com/files/justdomainsDominios maliciosos
Phishing Armyhttps://phishing.army/download/phishing_army_blocklist_extended.txtSitios de phishing
EasyListhttps://easylist.to/easylist/easylist.txtAnuncios web
EasyPrivacyhttps://easylist.to/easylist/easyprivacy.txtTrackers
Fanboy’s Annoyancehttps://easylist.to/easylist/fanboy-annoyance.txtPopups, banners

Recomendación: Empieza con 3-5 blocklists. Añade más solo si necesitas bloquear contenido específico. Demasiadas blocklists pueden ralentizar las consultas DNS.

Reglas de Filtrado Personalizadas

En Filters → Custom filtering rules, puedes añadir reglas personalizadas:

ADGUARD
# Bloquear dominio específico
||ads.example.com^

# Desbloquear dominio (whitelist)
@@||example.com^

# Bloquear para cliente específico (IP: 192.168.1.100)
||social-media.com^$client=192.168.1.100

# Bloquear para todos excepto un cliente (IP: 192.168.1.50)
||ads.com^$client=~192.168.1.50

# Bloquear por tipo de contenido
||example.com^$content
||example.com^$script
||example.com^$image

# Redirigir dominio a IP local
||homelab.local^$dnsrewrite=192.168.1.10
||nas.lan^$dnsrewrite=192.168.1.20

# Bloquear por regex
/ads.*\.example\.com$/

# Bloquear subdominios
||*.ads.example.com^

Explicación de sintaxis:

  • ||domain.com^: Bloquea el dominio y todos sus subdominios
  • @@: Excepción (whitelist)
  • $client=IP: Aplica solo a un cliente específico
  • $client=~IP: Aplica a todos excepto este cliente
  • $dnsrewrite=IP: Redirige el dominio a una IP específica

Imagen 2

Filtrado por Cliente y Parental Controls {#filtrado-cliente}

Una de las funciones más potentes de AdGuard Home es el filtrado por cliente. Puedes aplicar reglas diferentes a cada dispositivo.

Configurar Clientes

  1. Ve a Settings → Client settings
  2. Haz clic en Add client
  3. Introduce:

IP address: 192.168.1.100 (o rango CIDR: 192.168.1.0/24)

Name: Kids-Tablet (nombre descriptivo)

MAC address (opcional): Para identificar el dispositivo por MAC

Parental Controls

Para un dispositivo de niños, configura:

  1. Blocklists específicas: Añade blocklists de contenido inapropiado
  2. Safe Search forzado: En Settings → Parental Control, fuerza safe search en:

– Google

– Bing

– Yandex

  1. Bloqueo de redes sociales: Añade reglas personalizadas:
ADGUARD
||facebook.com^$client=192.168.1.100
   ||instagram.com^$client=192.168.1.100
   ||tiktok.com^$client=192.168.1.100
  1. Horario de bloqueo: Usa reglas con horarios (requiere configuración avanzada)

Ejemplo: Configuración para Tableta de Niños

ADGUARD
# Bloquear redes sociales
||facebook.com^$client=192.168.1.100
||instagram.com^$client=192.168.1.100
||tiktok.com^$client=192.168.1.100
||twitter.com^$client=192.168.1.100

# Bloquear contenido para adultos
||pornhub.com^$client=192.168.1.100
||xvideos.com^$client=192.168.1.100

# Permitir sitios educativos (whitelist)
@@||khanacademy.org^$client=192.168.1.100
@@||scratch.mit.edu^$client=192.168.1.100

Integración con Pi-hole {#integracion-pihole}

Si ya tienes Pi-hole funcionando, puedes usar ambos juntos. Aquí tienes tres opciones:

Opción 1: AdGuard como Upstream de Pi-hole

Configuración:

  1. En Pi-hole: Settings → Upstream DNS Servers
  2. Añade: 192.168.1.10#53 (IP de AdGuard Home)
  3. Pi-hole usará AdGuard Home para resolver consultas

Flujo:

TEXT
Cliente → Pi-hole → AdGuard Home (DoH) → Cloudflare

Ventaja: Mantienes Pi-hole como DNS principal, pero obtienes DNS encriptado de AdGuard.

Opción 2: Pi-hole como Upstream de AdGuard

Configuración:

  1. En AdGuard Home: Settings → DNS Settings → Upstream DNS servers
  2. Añade: 192.168.1.5#53 (IP de Pi-hole)

Flujo:

TEXT
Cliente → AdGuard Home → Pi-hole → Upstream DNS

Ventaja: Usas la UI moderna de AdGuard, pero Pi-hole hace el bloqueo.

Opción 3: Round-Robin (Ambos Activos)

Configuración:

  1. En router: DNS primario = Pi-hole (192.168.1.5)
  2. DNS secundario = AdGuard Home (192.168.1.10)

Flujo:

TEXT
Cliente → Router → Pi-hole (si disponible) o AdGuard Home (fallback)

Ventaja: Redundancia. Si uno falla, el otro toma el relevo.

Recomendación: Si quieres DNS encriptado, usa la Opción 1. Si prefieres la UI de AdGuard, usa la Opción 2.

Monitoreo y Estadísticas {#monitoreo}

El dashboard de AdGuard Home proporciona estadísticas detalladas:

Estadísticas Principales

  • Consultas totales: Número de consultas DNS procesadas
  • Consultas bloqueadas: Porcentaje de consultas bloqueadas
  • Clientes activos: Dispositivos que usan AdGuard Home
  • Top dominios bloqueados: Dominios más bloqueados
  • Top clientes: Dispositivos que más consultas hacen

Query Log

En Query log, puedes ver:

  • Todas las consultas DNS en tiempo real
  • Qué cliente hizo cada consulta
  • Si fue bloqueada o permitida
  • Tiempo de respuesta

Filtros útiles:

  • Filtrar por cliente
  • Filtrar solo bloqueadas
  • Filtrar por dominio

Estadísticas por Cliente

En Settings → Client settings, selecciona un cliente para ver:

  • Consultas totales de ese cliente
  • Dominios más consultados
  • Consultas bloqueadas

Imagen 3

Troubleshooting Común {#troubleshooting}

Problema 1: Dispositivos no usan AdGuard Home como DNS

Síntomas:

  • Los anuncios no se bloquean
  • Las estadísticas de AdGuard Home están vacías

Solución:

BASH
# Verificar DNS en dispositivo
nslookup example.org
# Debe mostrar la IP de AdGuard Home como servidor DNS

# Si no, verificar configuración del router:
# DNS primario: 192.168.1.10 (IP de AdGuard Home)
# DNS secundario: 1.1.1.1 (fallback)

Problema 2: AdGuard Home no bloquea anuncios

Síntomas:

  • Los anuncios siguen apareciendo
  • Las blocklists están activas pero no funcionan

Solución:

  1. Verificar que «Block domains using filters» está activado en Settings → General
  2. Verificar que las blocklists están habilitadas en Filters → DNS blocklists
  3. Revisar whitelist por si hay excepciones: Filters → DNS allowlists
  4. Verificar reglas personalizadas que puedan interferir

Problema 3: DNS lento o timeouts

Síntomas:

  • Las páginas tardan en cargar
  • Timeouts de DNS

Solución:

YAML
# En AdGuardHome.yaml, optimizar upstreams:
dns:
  upstream_dns:
    - https://dns.cloudflare.com/dns-query  # Más rápido
    - tls://one.one.one.one
  all_servers: true  # Consultar todos en paralelo
  fastest_addr: true  # Usar IP más rápida
  cache_size: 4194304  # 4MB cache (aumentar si tienes RAM)
  cache_ttl_min: 1800  # Cache mínimo 30 min
  cache_ttl_max: 86400  # Cache máximo 24h

Problema 4: Conflictos con VPN (WireGuard/Tailscale)

Síntomas:

  • DNS no funciona cuando VPN está activa
  • Dispositivos no resuelven nombres

Solución:

BASH
# En WireGuard config, NO usar:
# DNS = 127.0.0.1  # ❌ Esto causa conflictos

# En su lugar, configurar DNS del sistema ANTES de conectar VPN:
# /etc/resolv.conf debe apuntar a AdGuard Home
nameserver 192.168.1.10

Problema 5: DoH/DoT no funciona

Síntomas:

  • Los clientes no pueden usar DNS encriptado
  • Errores de certificado

Solución:

  1. Verificar que los puertos están abiertos: 443 (DoH), 853 (DoT), 784 (DoQ)
  2. Verificar certificado SSL en Settings → Encryption Settings
  3. Si usas reverse proxy (Nginx), configurar proxy para /dns-query
  4. En AdGuardHome.yaml, permitir DoH sin encriptación si el proxy maneja SSL:
YAML
allow_unencrypted_doh: true

Problema 6: Dispositivos móviles ignoran DNS en WiFi

Síntomas:

  • Los móviles no usan AdGuard Home cuando están en WiFi
  • Los anuncios siguen apareciendo en apps móviles

Solución:

  1. Android: Configurar DNS privado en Settings → Network → Private DNS

– Modo: «Private DNS provider hostname»

– Hostname: adguard.example.com (tu dominio con DoT)

  1. iOS: Usar app como «DNSCloak» o configurar perfil VPN
  2. Alternativa: Usar VPN (WireGuard/Tailscale) que fuerce DNS a AdGuard Home

Mejores Prácticas {#mejores-practicas}

Seguridad

  • Cambiar credenciales por defecto: Usa usuario y contraseña seguros
  • HTTPS obligatorio: Configura certificado SSL (Let’s Encrypt)
  • Firewall: Solo abre puertos necesarios (53, 80, 443, 853, 784)
  • Actualizaciones: Mantén AdGuard Home actualizado
  • Backups: Haz backup de /opt/adguardhome/conf/AdGuardHome.yaml regularmente

Performance

  • Cache DNS: Aumenta cache_size si tienes RAM disponible (4-8 MB recomendado)
  • Upstreams paralelos: Usa all_servers: true para consultas más rápidas
  • Limitar blocklists: No uses más de 5-10 blocklists (afecta memoria)
  • Logs rotativos: Configura rotación de logs para no llenar disco

Mantenimiento

  • Backups regulares: Script de backup automático de configuración
  • Monitoreo: Integra con Prometheus/Grafana para métricas
  • Alertas: Configura alertas si AdGuard Home se cae
  • Logs: Revisa logs periódicamente para detectar problemas

Optimización de Configuración

YAML
# AdGuardHome.yaml optimizado
dns:
  cache_size: 4194304  # 4MB
  cache_ttl_min: 1800  # 30 minutos
  cache_ttl_max: 86400  # 24 horas
  upstream_dns:
    - https://dns.cloudflare.com/dns-query
    - tls://one.one.one.one
  all_servers: true
  fastest_addr: true
  ratelimit: 20  # Límite de consultas por segundo por IP

# Limitar logs
querylog:
  interval: 24h  # Rotar logs cada 24h
  size_memory: 1000  # Máximo 1000 entradas en memoria

Imagen 4

📦 Descargar Ejemplos {#descargar-ejemplos}

Todos los ejemplos de código de este artículo están disponibles en GitHub:

🔗 https://github.com/ziruelen/learningaiagents/tree/main/homelab/adguard-home-dns-encriptado-homelab-guia-completa-2025

Incluye:

  • docker-compose.yml – Configuración básica
  • docker-compose.advanced.yml – Configuración avanzada con healthchecks
  • setup.sh – Script de instalación automatizada
  • config/upstream-dns-encrypted.yaml – Configuración de DNS encriptado
  • config/filtering-rules.txt – Ejemplos de reglas personalizadas
  • config/blocklists-recommended.txt – Lista de blocklists recomendadas
  • README.md – Instrucciones de uso

Imagen 5

Preguntas Frecuentes {#faqs}

¿AdGuard Home es gratuito?

Sí, AdGuard Home es completamente gratuito y open source. No hay versión de pago ni limitaciones.

¿Puedo usar AdGuard Home junto con Pi-hole?

Sí, puedes usar ambos. Puedes configurar AdGuard Home como upstream de Pi-hole, o viceversa. Te explico las opciones en la sección de integración.

¿Cuánta RAM necesita AdGuard Home?

Mínimo: 512 MB

Recomendado: 1-2 GB

Con muchas blocklists (10+): 2-4 GB

¿AdGuard Home funciona en Raspberry Pi?

Sí, AdGuard Home funciona en Raspberry Pi, pero requiere al menos 512 MB RAM. Si tienes un Pi antiguo con 256 MB, mejor usa Pi-hole.

¿Puedo migrar desde Pi-hole a AdGuard Home?

Sí, puedes exportar tus blocklists de Pi-hole e importarlas en AdGuard Home. Sin embargo, la configuración de clientes y reglas personalizadas no se puede migrar automáticamente.

¿AdGuard Home bloquea anuncios en YouTube?

No, AdGuard Home no puede bloquear anuncios de YouTube porque YouTube sirve los anuncios desde el mismo dominio que el contenido. Para bloquear anuncios de YouTube, necesitas una extensión de navegador como uBlock Origin.

¿Cómo actualizo AdGuard Home?

BASH
# Si usas Docker
cd ~/docker/adguard
docker compose pull
docker compose up -d

¿AdGuard Home funciona sin Internet?

Sí, AdGuard Home puede resolver nombres locales sin Internet si configuras DNS rewrites. Sin embargo, para resolver nombres de Internet, necesitas conexión.

¿Puedo usar AdGuard Home con Tailscale/WireGuard?

Sí, pero debes configurar el DNS del sistema antes de conectar la VPN. No uses DNS = 127.0.0.1 en la configuración de WireGuard, ya que causa conflictos.

¿AdGuard Home es más seguro que Pi-hole?

Ambos son seguros. La ventaja de AdGuard Home es el DNS encriptado nativo, que previene que tu ISP vea tus consultas DNS. En términos de bloqueo de anuncios, ambos son igual de efectivos.

¿Puedo usar AdGuard Home en producción?

Sí, AdGuard Home es estable y se usa en producción. Sin embargo, para entornos críticos, considera tener un servidor DNS de respaldo.

¿Cómo hago backup de AdGuard Home?

BASH
# Backup de configuración
cp ~/docker/adguard/conf/AdGuardHome.yaml ~/backup/AdGuardHome-$(date +%Y%m%d).yaml

# Backup completo (config + datos)
tar -czf ~/backup/adguard-$(date +%Y%m%d).tar.gz ~/docker/adguard/

¿AdGuard Home soporta IPv6?

Sí, AdGuard Home soporta IPv6 completamente. Puedes configurar upstreams IPv6 y clientes IPv6.

¿Puedo usar AdGuard Home con un reverse proxy?

Sí, puedes usar Nginx Proxy Manager o Traefik como reverse proxy. Configura el proxy para pasar las peticiones a AdGuard Home en el puerto 80.

¿Cómo desactivo el logging en AdGuard Home?

En Settings → Query log, puedes desactivar el logging o configurar rotación automática. Para desactivar completamente, desmarca «Enable query log».

Imagen 6

Conclusión {#conclusion}

AdGuard Home es una excelente alternativa a Pi-hole para usuarios que necesitan:

  • DNS encriptado nativo (DoH/DoT/DoQ) sin configuración adicional
  • Filtrado avanzado por cliente para parental controls
  • UI moderna e intuitiva
  • Safe search forzado para proteger a los niños
  • API REST completa para automatización

Si tienes un homelab moderno con recursos suficientes (al menos 1 GB RAM), AdGuard Home es la mejor opción por su DNS encriptado nativo y funciones avanzadas. Si tienes hardware muy limitado o prefieres la comunidad más grande de Pi-hole, quédate con Pi-hole.

Próximos pasos:

  1. Instala AdGuard Home siguiendo esta guía
  2. Configura DNS encriptado (DoH/DoT)
  3. Añade blocklists según tus necesidades
  4. Configura filtrado por cliente si tienes niños
  5. Integra con tu stack de monitoreo (Prometheus/Grafana)

¿Necesitas ayuda? Revisa la sección de troubleshooting o consulta la documentación oficial de AdGuard Home.

Artículos relacionados:

¿Ya usas AdGuard Home? ¿Qué configuración te funciona mejor? Cuéntame en los comentarios.

Por ziru

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
El Diario IA
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.