Guía completa para instalar AdGuard Home con Docker

Última actualización: 15/09/2026

  • Un DNS público secundario puede permitir que algunos equipos eviten el bloqueo.
  • Para usar el DHCP de AdGuard Home se recomienda network_mode: host en Linux.
  • AdGuard Home bloquea dominios, pero no sustituye a una VPN ni elimina todos los anuncios.
  • La actualización correcta con Compose es docker compose pull seguida de docker compose up -d.

AdGuard Home permite bloquear publicidad, rastreadores y dominios maliciosos en toda la red doméstica desde un único servidor. En lugar de instalar una extensión en cada navegador, los móviles, ordenadores, televisores y demás dispositivos utilizan AdGuard Home como servidor DNS.

Instalarlo mediante Docker Compose simplifica la puesta en marcha, separa el servicio del resto del sistema y permite conservar su configuración en directorios persistentes. También facilita las actualizaciones y la creación de copias de seguridad.

Conviene aclarar desde el principio que AdGuard Home no funciona como una VPN: no oculta tu dirección IP ni vuelve anónima la navegación. Además, el bloqueo basado en DNS no puede eliminar anuncios que se sirven desde el mismo dominio que el contenido, como sucede con parte de la publicidad de YouTube, Twitch y algunas redes sociales.

Qué necesitas antes de instalar AdGuard Home

que se necesita para instalar AdGuard

Puedes ejecutar AdGuard Home en un ordenador, servidor doméstico, NAS compatible o placa ARM como Raspberry Pi u Orange Pi. El equipo debe permanecer encendido siempre que quieras disponer de resolución DNS y filtrado en la red.

Antes de empezar, comprueba que dispones de:

  • Un sistema Linux con Docker Engine y Docker Compose instalados.
  • Una cuenta con permisos para ejecutar Docker.
  • Una dirección IP local fija para el servidor o una reserva DHCP configurada en el router.
  • Acceso al panel de administración del router.
  • Los puertos 53 TCP y UDP disponibles.

Puedes comprobar la instalación de Docker con estos comandos:

docker --version
docker compose version

También resulta recomendable descargar la imagen antes de modificar el DNS del propio servidor:

docker pull adguard/adguardhome:latest

Cómo solucionar el conflicto del puerto 53

AdGuard Home necesita escuchar en el puerto 53 mediante TCP y UDP. En Ubuntu y otras distribuciones que utilizan systemd-resolved, este puerto puede estar ocupado por el servicio DNS local.

Comprueba qué proceso lo está utilizando:

sudo lsof -i :53

No desactives ningún servicio hasta identificarlo. Si el resultado muestra systemd-resolved escuchando en 127.0.0.53:53, puedes deshabilitar su escucha local siguiendo el procedimiento recomendado por AdGuard.

Primero, crea el directorio y abre el archivo de configuración:

sudo mkdir -p /etc/systemd/resolved.conf.d
sudo nano /etc/systemd/resolved.conf.d/adguardhome.conf

Introduce estas líneas:

[Resolve]
DNS=127.0.0.1
DNSStubListener=no

Después, sustituye el enlace de resolv.conf y reinicia el servicio:

sudo mv /etc/resolv.conf /etc/resolv.conf.backup
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl reload-or-restart systemd-resolved

A partir de este momento, el servidor puede quedarse temporalmente sin resolución de nombres hasta que AdGuard Home comience a funcionar. Por eso es conveniente descargar previamente la imagen y mantener abierta la terminal.

Contenido exclusivo - Clic Aquí  Como Funciona Apple Care

Si el puerto 53 está ocupado por otro programa, tendrás que revisar su configuración en lugar de aplicar automáticamente estos cambios.

Cómo instalar AdGuard Home con Docker Compose

Cables de red conectados a un switch que representa la conexión de AdGuard Home con la red doméstica.

Crea un directorio para el proyecto y dos carpetas destinadas a los datos persistentes:

mkdir -p ~/adguardhome/work
mkdir -p ~/adguardhome/conf
cd ~/adguardhome

Dentro de ese directorio, crea un archivo llamado compose.yaml con el siguiente contenido:

services:
  adguardhome:
    image: adguard/adguardhome:latest
    container_name: adguardhome
    restart: unless-stopped
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "80:80/tcp"
      - "3000:3000/tcp"
    volumes:
      - ./work:/opt/adguardhome/work
      - ./conf:/opt/adguardhome/conf

Este archivo publica solamente los puertos necesarios para una instalación doméstica básica:

  • 53 TCP y UDP: consultas DNS.
  • 3000 TCP: asistente de instalación inicial.
  • 80 TCP: panel de administración después de completar el asistente.

Si el puerto 80 ya está ocupado, cambia la línea correspondiente por:

      - "8080:80/tcp"

En ese caso, el panel quedará disponible en el puerto 8080 del servidor.

Inicia el contenedor en segundo plano:

docker compose up -d

Comprueba su estado:

docker compose ps

Si el contenedor no arranca correctamente, consulta los registros:

docker compose logs adguardhome

Completar la configuración inicial

Ordenador utilizado para configurar de forma segura el panel de AdGuard Home.

Abre un navegador desde otro dispositivo conectado a la misma red y visita:

http://IP-DEL-SERVIDOR:3000

Sustituye IP-DEL-SERVIDOR por la dirección local del equipo donde se ejecuta Docker, por ejemplo 192.168.1.50.

Durante el asistente:

  1. Selecciona la interfaz en la que debe escuchar el panel de administración.
  2. Mantén el puerto interno 80 para la interfaz web, salvo que hayas preparado otra configuración.
  3. Configura el servidor DNS para escuchar en el puerto 53.
  4. Crea un nombre de usuario y una contraseña larga y exclusiva.
  5. Termina el asistente y abre el panel en http://IP-DEL-SERVIDOR.

Si utilizaste el mapeo 8080:80, tendrás que entrar mediante:

http://IP-DEL-SERVIDOR:8080

Dentro de un contenedor suele ser necesario seleccionar todas las interfaces para que los puertos publicados por Docker respondan correctamente. La exposición debe limitarse después mediante el cortafuegos del servidor y la configuración del router.

Configurar el router para utilizar AdGuard Home

Administradora configurando un servidor DNS doméstico desde un ordenador portátil.

Instalar el contenedor no hace que los dispositivos de la red empiecen a utilizarlo automáticamente. Debes entrar en el panel del router y localizar los ajustes de LAN, DHCP o servidor DNS.

Introduce como DNS principal la dirección IP fija del servidor donde está instalado AdGuard Home. Después, renueva la conexión de los dispositivos o reinicia el router para que reciban la nueva configuración.

No introduzcas Google DNS, Cloudflare u otro servidor público como DNS secundario si quieres que todas las consultas pasen por AdGuard Home. Muchos dispositivos alternan entre ambos servidores y podrían saltarse el filtrado. Para disponer de redundancia real, necesitarías una segunda instancia de AdGuard Home.

Contenido exclusivo - Clic Aquí  ¿Cómo puedo solucionar problemas de teclado o ratón en mi PC?

Si la red utiliza IPv6, también debes configurar el servidor DNS anunciado mediante IPv6. De lo contrario, algunos dispositivos pueden enviar sus consultas por esa vía y evitar AdGuard Home.

Puedes comprobar qué servidor está utilizando un equipo con:

nslookup example.org

La dirección mostrada en el campo correspondiente al servidor debe coincidir con la IP de AdGuard Home. La consulta también debería aparecer en el registro de consultas del panel.

Configurar filtros sin romper páginas web

AdGuard Home incluye filtros suficientes para comenzar. Antes de añadir varias listas enormes, utiliza durante unos días la configuración predeterminada y revisa el registro de consultas.

Añadir demasiadas listas no siempre mejora la protección. Muchas contienen dominios repetidos y una configuración excesivamente agresiva puede impedir el funcionamiento de aplicaciones, televisores, sistemas de inicio de sesión o dispositivos inteligentes.

Si una página deja de funcionar:

  1. Abre el registro de consultas de AdGuard Home.
  2. Reproduce el problema desde el dispositivo afectado.
  3. Localiza las peticiones bloqueadas.
  4. Desbloquea únicamente el dominio necesario.
  5. Comprueba que el servicio vuelve a funcionar.

Las reglas de excepción deben añadirse de forma específica. Permitir un dominio completo sin comprobar su función puede volver a habilitar rastreadores o publicidad innecesaria.

Cómo usar AdGuard Home como servidor DHCP

AdGuard Home también puede entregar direcciones IP a los dispositivos, pero esta función requiere acceder al tráfico de difusión de la red. La documentación oficial recomienda ejecutar el contenedor con el modo de red del host en Linux.

Para hacerlo con Compose, sustituye el apartado ports por:

    network_mode: host

No combines network_mode: host con el mapeo de puertos, ya que Docker ignora las reglas de ports cuando el contenedor comparte la red del sistema anfitrión.

Antes de activar el DHCP de AdGuard Home, deshabilita el servidor DHCP del router. Nunca deben funcionar dos servidores DHCP sin una planificación previa, porque podrían asignar configuraciones contradictorias.

Esta modalidad es recomendable principalmente en un servidor Linux dedicado. En NAS, Docker Desktop y entornos virtualizados pueden existir limitaciones adicionales.

DNS cifrado, Unbound y límites de privacidad

AdGuard Home admite servidores upstream mediante DNS-over-HTTPS, DNS-over-TLS y DNS-over-QUIC. Estas opciones cifran las consultas entre AdGuard Home y el proveedor DNS elegido, pero ese proveedor seguirá pudiendo procesarlas. Tampoco ocultan las conexiones posteriores a las páginas web.

Otra posibilidad es utilizar Unbound como resolver recursivo. Esto reduce la dependencia de un proveedor DNS centralizado, aunque añade complejidad y no convierte la navegación en anónima.

Si ejecutas Unbound en Docker, ambos servicios deben compartir una red de Compose y AdGuard Home debe conectarse mediante el nombre del servicio y su puerto. No conviene introducir directamente la IP interna del contenedor, ya que puede cambiar cuando Docker lo recrea.

Contenido exclusivo - Clic Aquí  Como Hacer Una Cuenta Paypal

Para una instalación doméstica inicial, Unbound no es imprescindible. Es preferible comprobar primero que AdGuard Home funciona correctamente y añadir el resolver recursivo en una segunda fase.

Actualizar y crear copias de seguridad

Servidor doméstico que ejecuta AdGuard Home mediante Docker.

Los datos importantes se encuentran en los directorios work y conf. El segundo contiene el archivo AdGuardHome.yaml, que no debe modificarse mientras el servicio está funcionando porque la aplicación puede sobrescribir los cambios.

Antes de actualizar, crea una copia de ambos directorios. Para obtener una copia consistente, puedes detener temporalmente el contenedor:

cd ~/adguardhome
docker compose stop
tar -czf adguardhome-backup.tar.gz compose.yaml work conf
docker compose start

Para descargar la versión estable más reciente y recrear el servicio:

docker compose pull
docker compose up -d

Compose sustituirá el contenedor cuando cambie la imagen, pero mantendrá los datos almacenados en los directorios persistentes.

Después de actualizar, comprueba:

  • Que el contenedor aparezca como activo.
  • Que el panel de administración sea accesible.
  • Que una consulta de prueba aparezca en el registro.
  • Que los filtros y clientes configurados sigan disponibles.

Errores frecuentes al instalar AdGuard Home con Docker

Los problemas más habituales son los siguientes:

  • El puerto 53 está ocupado: identifica el proceso con lsof y revisa systemd-resolved.
  • El contenedor funciona, pero no responde: comprueba el cortafuegos y que estén publicados los puertos 53 TCP y UDP.
  • Las consultas no aparecen: el router o el dispositivo continúa utilizando otro servidor DNS.
  • Algunos equipos evitan el bloqueo: revisa el DNS secundario, IPv6 y las funciones de DNS privado del dispositivo.
  • Se pierden los ajustes al recrear el contenedor: verifica los montajes de work y conf.
  • El DHCP no encuentra clientes: utiliza el modo de red host en Linux y comprueba que el DHCP del router esté desactivado.
  • Una aplicación deja de funcionar: consulta qué dominio ha sido bloqueado antes de desactivar todos los filtros.

Por último, no redirijas desde el router los puertos 53, 80, 3000 o 6060 hacia Internet. Un servidor DNS abierto puede ser utilizado en ataques de amplificación, mientras que un panel de administración público aumenta innecesariamente la superficie de ataque.

Con una IP fija, volúmenes persistentes y el DNS del router correctamente configurado, AdGuard Home puede filtrar las consultas de toda la red de forma centralizada. Docker Compose facilita su mantenimiento, pero la disponibilidad del servidor pasa a ser esencial: si se apaga y no existe una segunda instancia, los dispositivos pueden quedarse temporalmente sin resolución DNS.