Instalar AdGuard Home con Docker: DNS Seguro y Bloqueo de Anuncios para Toda tu Red

AdGuard Home: DNS seguro y bloqueo de anuncios

AdGuard Home es un servidor DNS que bloquea anuncios, trackers y malware a nivel de red. No necesitas instalar extensiones en cada navegador ni en cada dispositivo — todo lo que se conecta a tu red (PCs, móviles, smart TVs, IoT) queda protegido automáticamente.

A diferencia de un bloqueador de anuncios en el navegador, AdGuard Home filtra el tráfico DNS antes de que llegue al dispositivo. Eso significa que también bloquea telemetría de apps, trackers de smart TVs, y dominios de malware conocidos — incluso en dispositivos donde no puedes instalar extensiones.

Además, AdGuard Home soporta DNS-over-HTTPS (DoH) y DNS-over-TLS (DoT) de forma nativa, cifrando tus consultas DNS para que tu ISP no pueda ver qué sitios visitas. En esta guía lo instalamos con Docker Compose y lo configuramos como DNS principal de toda tu red.

¿Por qué AdGuard Home y no Pi-hole?

Pi-hole es la opción clásica para bloqueo de DNS, pero AdGuard Home tiene ventajas claras en 2026:

AspectoAdGuard HomePi-hole
DNS cifrado (DoH/DoT)Nativo, sin config extraRequiere configuración adicional
Interfaz webModerna y responsiveFuncional pero anticuada
Reglas por dispositivoSí — puedes bloquear más en IoT y menos en tu PCLimitado
DHCP serverIntegradoIntegrado
ActualizacionesFrecuentes, un solo binarioDepende de varios componentes
Consumo de recursos~30 MB RAM~50 MB RAM

Ambos son excelentes. Si ya tienes Pi-hole y funciona, no necesitas cambiar. Si empiezas de cero, AdGuard Home es la opción más moderna.

Requisitos para instalar AdGuard Home con Docker

  • Docker y Docker Compose instalados
  • Puerto 53 libre (DNS). Si tu servidor usa systemd-resolved, necesitarás deshabilitarlo primero (lo explico abajo)
  • IP fija en tu servidor (el DNS de tu red no puede cambiar de IP)

Paso 1: Desactivar systemd-resolved

En Ubuntu/Debian modernos, systemd-resolved ocupa el puerto 53 por defecto. AdGuard Home necesita ese puerto, así que hay que desactivarlo primero:

# Verificar si systemd-resolved ocupa el puerto 53
sudo ss -lnp | grep :53
Puerto 53 ocupado por systemd-resolved antes de instalar AdGuard Home
systemd-resolved ocupando el puerto 53 — necesitamos liberarlo para AdGuard Home

Ahora desactívalo:

# Desactivar systemd-resolved
sudo systemctl disable --now systemd-resolved

# Configurar DNS temporal para que el servidor no pierda resolución
sudo rm /etc/resolv.conf
echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf

Después de instalar AdGuard Home, tu servidor usará su propio servicio DNS.

Paso 2: Docker Compose para AdGuard Home

Crea el directorio del proyecto y el archivo docker-compose.yml:

mkdir -p ~/adguard && cd ~/adguard
services:
  adguardhome:
    image: adguard/adguardhome
    container_name: adguardhome
    restart: unless-stopped
    ports:
      - "53:53/tcp"      # DNS (TCP)
      - "53:53/udp"      # DNS (UDP)
      - "3000:3000/tcp"  # Panel web (solo para setup inicial)
      - "80:80/tcp"      # Panel web (después del setup)
      - "443:443/tcp"    # DNS-over-HTTPS
      - "853:853/tcp"    # DNS-over-TLS
    volumes:
      - ./work:/opt/adguardhome/work
      - ./conf:/opt/adguardhome/conf

Levanta el contenedor:

docker compose up -d
Docker Compose desplegando AdGuard Home exitosamente
AdGuard Home desplegado correctamente con Docker Compose

Nota: el DNS no responderá consultas hasta que completes el asistente de configuración en el siguiente paso. Esto es normal.

Paso 3: Configuración inicial de AdGuard Home

Accede a http://tu-ip-del-servidor:3000 en tu navegador. El asistente de configuración te guiará por estos pasos:

Pantalla de bienvenida del asistente de configuración de AdGuard Home
Pantalla de bienvenida — haz clic en «Get Started»
  1. Interfaces de escucha: deja los valores por defecto (todas las interfaces, puerto 80 para la web UI)
  2. Credenciales: crea un usuario y contraseña para el panel de administración
Configuración de interfaces de red y servidor DNS en AdGuard Home
Configura las interfaces de escucha para la web UI (puerto 80) y el servidor DNS (puerto 53)
  1. DNS upstream: configura los servidores DNS que AdGuard Home consultará. Recomendados:
    • 1.1.1.1 — Cloudflare (rápido, privado)
    • 9.9.9.9 — Quad9 (bloquea dominios maliciosos adicionales)

Creación de usuario y contraseña para el panel de AdGuard Home
Crea un usuario y contraseña seguros — los necesitarás para acceder al panel

Una vez completado el setup, el panel se mueve al puerto 80. Accede a http://tu-ip-del-servidor (sin puerto) e inicia sesión con el usuario y contraseña que acabas de crear. El puerto 3000 ya no se usa.

Pantalla de login del panel de administración de AdGuard Home
Pantalla de login — usa las credenciales que creaste en el paso anterior
Dashboard de AdGuard Home mostrando consultas DNS y dominios bloqueados
Dashboard en acción: consultas DNS resueltas y dominios de anuncios/trackers bloqueados automáticamente

Paso 4: Listas de bloqueo recomendadas

AdGuard Home viene con su lista por defecto, pero puedes agregar más para mayor cobertura. Ve a Filters > DNS Blocklists > Add blocklist. AdGuard Home te ofrece dos opciones: «Choose from the list» (listas predefinidas organizadas por categoría) o «Add a custom list» (URL manual). La opción más fácil es «Choose from the list» donde encontrarás las listas más populares ya categorizadas. Estas son las recomendadas:

Menú de listas de bloqueo predefinidas en AdGuard Home
Selecciona listas desde el menú integrado — no necesitas copiar URLs manualmente
  • AdGuard DNS filter — incluida por defecto, buena base
  • Steven Black’s Unified Hosts — la más completa para adware, malware y trackers. URL: https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
  • OISD (Big) — excelente balance entre bloqueo agresivo y pocos falsos positivos. URL: https://big.oisd.nl

Consejo: empieza con la lista de AdGuard + OISD. Si algo deja de funcionar (un sitio legítimo bloqueado), agrega la excepción en Filters > Custom filtering rules con la sintaxis @@||dominio.com^.

Paso 5: Configurar AdGuard Home como DNS de toda tu red

Para que todos los dispositivos usen AdGuard Home automáticamente, cambia el DNS en tu router:

  1. Accede al panel de tu router
  2. Busca la configuración de DHCP
  3. En DNS primario, pon la IP de tu servidor donde corre AdGuard Home
  4. Guarda y reinicia el router (o espera a que los dispositivos renueven su lease DHCP)

A partir de ese momento, cada dispositivo que se conecte a tu red recibirá la IP de AdGuard Home como DNS. Anuncios, trackers y malware se bloquean antes de llegar al dispositivo.

Paso 6: DNS cifrado con AdGuard Home (DoH/DoT)

Por defecto, las consultas DNS viajan en texto plano — tu ISP puede ver cada dominio que visitas. Para cifrar las consultas entre AdGuard Home y los servidores upstream, ve a Settings > DNS Settings > Upstream DNS servers y usa URLs cifradas:

# DNS-over-HTTPS (DoH)
https://dns.cloudflare.com/dns-query
https://dns.quad9.net/dns-query

# DNS-over-TLS (DoT)
tls://1dot1dot1dot1.cloudflare-dns.com
tls://dns.quad9.net

Después de guardar, verifica en Settings > DNS Settings > Test upstreams que los servidores cifrados respondan correctamente.

Verificación: ¿funciona AdGuard Home?

Para verificar que todo está funcionando:

  • Abre el dashboard de AdGuard Home — deberías ver consultas DNS llegando de los dispositivos de tu red
  • Visita un sitio con muchos anuncios — deberían desaparecer
  • Revisa los logs en Query Log — verás qué dominios se bloquean y cuáles se permiten
  • Test de DNS cifrado: usa Cloudflare’s encryption check para verificar que DoH/DoT funciona

Monitorear AdGuard Home

Si quieres recibir alertas cuando AdGuard Home deje de funcionar (lo cual dejaría a toda tu red sin DNS), configura un monitor en Uptime Kuma apuntando al puerto 80 de tu servidor.

Lecturas relacionadas

Deja una respuesta

*