AdGuard Home Docker Compose: Bloquea Anuncios en Toda tu Red 2025

AdGuard Home Docker Compose configuración bloqueo anuncios red

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:

  1. Abre tu navegador y ve a http://[IP-SERVIDOR]:3000
  2. El asistente te pedirá configurar las interfaces de red
  3. Configura la interfaz web (puedes cambiarla del puerto 80 al 8080 si lo prefieres)
  4. Configura la interfaz DNS (normalmente puerto 53)
  5. Crea tu usuario administrador y contraseña segura
  6. 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:

  1. Accede al panel de administración de tu router
  2. Busca la sección DHCP o DNS
  3. Establece el DNS primario como la IP de tu servidor
  4. Guarda los cambios y reinicia el router
  5. Todos los dispositivos usarán automáticamente el filtrado

Opción 2: Configuración Manual por Dispositivo

Windows:

  1. Panel de control → Red e Internet → Conexiones de red
  2. Botón derecho en tu conexión → Propiedades
  3. Protocolo de Internet versión 4 (TCP/IPv4) → Propiedades
  4. Usar las siguientes direcciones de servidor DNS
  5. DNS preferido: [IP de tu servidor]

Android:

  1. Ajustes → Red e Internet → WiFi
  2. Mantén pulsada tu red → Modificar red
  3. Opciones avanzadas → DNS privado
  4. 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.

Avatar

Por Mid

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