AdGuard Home Docker Compose es la solución definitiva para bloquear anuncios y rastreadores en toda tu red doméstica desde un único punto centralizado. Esta guía completa te enseñará cómo desplegar este potente servidor DNS que protege todos tus dispositivos automáticamente, incluyendo smartphones, tablets, ordenadores y dispositivos IoT que no pueden instalar bloqueadores tradicionales.
¿Qué es AdGuard Home y Por Qué Usarlo?
AdGuard Home es un software de código abierto que funciona como servidor DNS bloqueando dominios publicitarios y de rastreo a nivel de red. A diferencia de extensiones del navegador como uBlock Origin, esta solución protege todos los dispositivos conectados a tu red sin necesidad de instalar software individual en cada uno.
Con más de 24.000 estrellas en GitHub y una comunidad activa, este proyecto se ha convertido en una alternativa moderna a Pi-hole, ofreciendo una interfaz más pulida, estadísticas avanzadas y funcionalidades como DNS cifrado (DNS-over-HTTPS y DNS-over-TLS).
Ventajas de AdGuard Home Docker Compose
- Protección completa de red: Bloquea anuncios en todos los dispositivos automáticamente
- DNS cifrado: Soporta DoH, DoT y DNSCrypt para mayor privacidad
- Control parental integrado: Filtra contenido adulto y peligroso
- Configuración por dispositivo: Reglas personalizadas para cada equipo de tu red
- Servidor DHCP incluido: Gestiona la asignación de IPs en tu red
- Interfaz web moderna: Dashboard intuitivo con estadísticas en tiempo real
- Listas personalizables: Añade tus propias reglas de bloqueo
- Bajo consumo de recursos: Perfecto para Raspberry Pi o servidores modestos
AdGuard Home vs Pi-hole: Principales Diferencias
Aunque ambas soluciones ofrecen bloqueo de anuncios a nivel DNS, AdGuard Home se diferencia por:
- Interfaz más moderna: Dashboard responsive y visualmente atractivo
- DNS cifrado nativo: Sin necesidad de configuraciones adicionales
- Estadísticas detalladas: Gráficos más completos sobre consultas bloqueadas
- Mejor gestión de clientes: Configuración individual más intuitiva
- Control parental incluido: Sin extensiones adicionales
- Configuración YAML: Más fácil de versionar y automatizar
Si ya usas Pi-hole Docker Compose, la migración es sencilla y podrás aprovechar estas funcionalidades adicionales.
Requisitos Previos
Antes de implementar esta configuración, asegúrate de tener:
- Docker y Docker Compose instalados en tu sistema
- Puerto 53 (DNS) disponible en tu servidor
- Acceso root o privilegios sudo
- Conocimientos básicos de redes y DNS
Configuración AdGuard Home Docker Compose
Aquí está la configuración completa y optimizada para desplegar el servicio. Crea un archivo docker-compose.yml con el siguiente contenido:
version: '3.8'
services:
adguardhome:
image: adguard/adguardhome:latest
container_name: adguardhome
restart: unless-stopped
network_mode: host
volumes:
- ./adguard-work:/opt/adguardhome/work
- ./adguard-conf:/opt/adguardhome/conf
environment:
- TZ=Europe/Madrid
labels:
- "com.centurylinklabs.watchtower.enable=true"
Explicación de la Configuración
- network_mode: host: Permite que el servicio vea las IPs reales de los clientes y use el puerto 53 sin conflictos
- ./adguard-work: Almacena datos, estadísticas y logs del servidor
- ./adguard-conf: Guarda la configuración en
AdGuardHome.yaml - TZ=Europe/Madrid: Ajusta la zona horaria a España (modifícala según tu ubicación)
- restart: unless-stopped: Reinicia automáticamente el contenedor tras reinicios del sistema
Configuración Alternativa con Puertos Específicos
Si prefieres no usar network_mode: host o necesitas ejecutar múltiples servicios DNS, usa esta versión con mapeo de puertos explícito:
version: '3.8'
services:
adguardhome:
image: adguard/adguardhome:latest
container_name: adguardhome
restart: unless-stopped
ports:
- "53:53/tcp" # DNS
- "53:53/udp" # DNS
- "80:80/tcp" # Web UI (inicial)
- "443:443/tcp" # HTTPS
- "443:443/udp" # HTTP/3
- "3000:3000/tcp" # Setup inicial
- "853:853/tcp" # DNS-over-TLS
- "853:853/udp" # DNS-over-QUIC
- "5443:5443/tcp" # DNSCrypt
- "5443:5443/udp" # DNSCrypt
- "67:67/udp" # DHCP server
- "68:68/udp" # DHCP client
volumes:
- ./adguard-work:/opt/adguardhome/work
- ./adguard-conf:/opt/adguardhome/conf
environment:
- TZ=Europe/Madrid
Nota importante: En sistemas con systemd-resolved activo, deberás desactivar el DNSStubListener para liberar el puerto 53.
Despliegue e Instalación Paso a Paso
1. Crear Estructura de Directorios
mkdir -p ~/adguardhome/{adguard-work,adguard-conf}
cd ~/adguardhome
2. Crear el Archivo docker-compose.yml
Copia la configuración mostrada anteriormente en un nuevo archivo:
nano docker-compose.yml
3. Liberar Puerto 53 (si es necesario)
En Ubuntu/Debian con systemd-resolved:
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo rm /etc/resolv.conf
echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf
4. Iniciar el Contenedor
docker-compose up -d
5. Verificar Estado del Servicio
docker-compose logs -f adguardhome
Configuración Inicial del Panel Web
Una vez desplegado el contenedor, accede al asistente de configuración inicial:
- Abre tu navegador y ve a
http://[IP-SERVIDOR]:3000 - El asistente te pedirá configurar las interfaces de red
- Configura la interfaz web (puedes cambiarla del puerto 80 al 8080 si lo prefieres)
- Configura la interfaz DNS (normalmente puerto 53)
- Crea tu usuario administrador y contraseña segura
- Selecciona el servidor DNS upstream (recomendado: Cloudflare 1.1.1.1 o Google 8.8.8.8)
Tras completar el asistente, accederás al panel principal en http://[IP-SERVIDOR] (o el puerto que hayas configurado).
Configuración Avanzada de AdGuard Home
Añadir Listas de Bloqueo Personalizadas
Ve a Filtros → Listas DNS y añade listas adicionales como:
- EasyList: Bloqueo general de anuncios
- EasyPrivacy: Protección contra rastreadores
- AdGuard DNS filter: Lista optimizada del propio AdGuard
- Steven Black’s Hosts: Combinación de múltiples listas populares
Configurar DNS Cifrado (DNS-over-HTTPS)
En Configuración → Configuración DNS → Servidores DNS upstream, añade servidores DoH:
https://dns.cloudflare.com/dns-query
https://dns.google/dns-query
https://dns.quad9.net/dns-query
Habilitar Control Parental
Ve a Filtros → Control parental y activa el filtro integrado para bloquear automáticamente contenido para adultos y sitios peligrosos.
Configurar Reglas por Cliente
En Configuración → Clientes puedes:
- Asignar nombres personalizados a cada dispositivo
- Aplicar reglas de filtrado específicas
- Establecer límites de velocidad
- Configurar servidores DNS upstream diferentes por cliente
Configurar Dispositivos para Usar AdGuard Home
Opción 1: Configuración en el Router (Recomendado)
El método más eficiente es configurar el DNS directamente en tu router:
- Accede al panel de administración de tu router
- Busca la sección DHCP o DNS
- Establece el DNS primario como la IP de tu servidor
- Guarda los cambios y reinicia el router
- Todos los dispositivos usarán automáticamente el filtrado
Opción 2: Configuración Manual por Dispositivo
Windows:
- Panel de control → Red e Internet → Conexiones de red
- Botón derecho en tu conexión → Propiedades
- Protocolo de Internet versión 4 (TCP/IPv4) → Propiedades
- Usar las siguientes direcciones de servidor DNS
- DNS preferido: [IP de tu servidor]
Android:
- Ajustes → Red e Internet → WiFi
- Mantén pulsada tu red → Modificar red
- Opciones avanzadas → DNS privado
- Introduce la IP de tu servidor
Monitorización y Estadísticas
El dashboard principal muestra:
- Consultas totales: Número de peticiones DNS procesadas
- Bloqueadas: Porcentaje de consultas bloqueadas
- Tiempo de respuesta promedio: Latencia del servidor DNS
- Principales clientes: Dispositivos más activos en tu red
- Dominios bloqueados: Lista de sitios más bloqueados
- Gráficos temporales: Actividad por horas/días
Para ver logs detallados en tiempo real, usa:
docker-compose logs -f --tail=50 adguardhome
Mantenimiento y Actualizaciones
Actualizar a la Última Versión
docker-compose pull
docker-compose down
docker-compose up -d
Realizar Backup de la Configuración
tar -czf adguard-backup-$(date +%Y%m%d).tar.gz adguard-work adguard-conf
Restaurar Backup
docker-compose down
tar -xzf adguard-backup-20250101.tar.gz
docker-compose up -d
Solución de Problemas Comunes
El Puerto 53 Está en Uso
Verifica qué proceso usa el puerto:
sudo lsof -i :53
sudo netstat -tuln | grep :53
Si es systemd-resolved, desactívalo siguiendo las instrucciones del apartado de instalación.
No Veo las IPs Reales de los Clientes
Asegúrate de usar network_mode: host en tu configuración. Si usas un proxy inverso como Nginx Proxy Manager, necesitarás configuración adicional.
Algunos Sitios No Cargan
Listas demasiado agresivas pueden bloquear dominios legítimos. Ve a Registro de consultas, identifica el dominio bloqueado y añádelo a la lista blanca en Filtros → Lista blanca.
Alta Latencia en las Consultas DNS
Prueba cambiar los servidores DNS upstream por otros más cercanos geográficamente o con mejor rendimiento:
# Cloudflare (rápido)
1.1.1.1
1.0.0.1
# Google (confiable)
8.8.8.8
8.8.4.4
# Quad9 (seguridad)
9.9.9.9
149.112.112.112
Integración con Otros Servicios Docker
Puedes combinar esta solución con otros servicios de tu stack de Docker Compose para crear un homelab completo:
- Portainer: Gestiona todos tus contenedores desde una interfaz web
- Traefik o Caddy: Proxy inverso con SSL automático
- Uptime Kuma: Monitoriza la disponibilidad del servicio
- Homepage: Dashboard centralizado para acceder a todos tus servicios
Preguntas Frecuentes (FAQ)
¿AdGuard Home afecta la velocidad de navegación?
No, al contrario. Al bloquear solicitudes publicitarias y de rastreo, las páginas cargan más rápido al descargar menos contenido. La latencia DNS añadida es mínima (normalmente menos de 10ms).
¿Funciona con Netflix, YouTube y otros servicios de streaming?
Sí, funcionan perfectamente. Estos servicios seguirán mostrando algunos anuncios integrados en el contenido (como los de YouTube), pero bloqueará rastreadores y anuncios externos de terceros.
¿Puedo usar AdGuard Home junto con Pi-hole?
Técnicamente sí, pero no tiene sentido ejecutar ambos simultáneamente en la misma red, ya que cumplen la misma función. Si quieres probar ambos, configúralos en puertos diferentes y cambia según tus preferencias.
¿Es compatible con IPv6?
Sí, soporta completamente IPv6. Puedes configurar servidores DNS upstream con IPv6 y filtrar consultas AAAA.
¿Puedo acceder al panel desde fuera de mi red local?
Sí, pero necesitarás configurar un proxy inverso con autenticación y HTTPS. Te recomiendo usar Authelia para añadir autenticación de dos factores antes de exponer el panel públicamente.
Conclusión
AdGuard Home Docker Compose es una solución robusta, moderna y fácil de implementar para bloquear anuncios y proteger la privacidad de toda tu red doméstica. Su interfaz intuitiva, funcionalidades avanzadas como DNS cifrado y control parental, junto con su bajo consumo de recursos, lo convierten en una opción excelente para cualquier homelab en 2025.
Con esta guía completa tienes todo lo necesario para desplegar, configurar y mantener tu propio servidor DNS con bloqueo de anuncios. Recuerda mantenerlo actualizado regularmente y ajustar las listas de filtrado según tus necesidades específicas.
¿Has implementado este servicio en tu red? ¿Qué mejoras has notado en tu experiencia de navegación? Comparte tu experiencia en los comentarios.
