AdGuard Home con Docker - Parte 3: Instalación y Configuración
En esta parte, desplegaremos AdGuard Home usando Docker, completaremos el asistente de configuración inicial y configuraremos tu red para usarlo como DNS.
Tabla de Contenidos
- Instalando AdGuard Home
- Configuración Inicial
- Configuraciones Recomendadas por Defecto
- Configurando Tus Dispositivos
Instalando AdGuard Home
Entendiendo los Puertos de AdGuard Home
AdGuard Home requiere varios puertos para funcionar. Esto es lo que necesitas saber:
Puertos Requeridos:
- Puerto 53 (TCP/UDP) - Servicio DNS (NO puede cambiarse - aquí es donde ocurren las consultas DNS)
- Puerto 80 (TCP) - Panel web (puede cambiarse a 8080, 8081, etc. si es necesario)
- Puerto 3000 (TCP) - Asistente de configuración inicial (puede cambiarse a 3001, etc. si es necesario)
- Puerto 443 (TCP/UDP) - HTTPS/DNS-over-HTTPS (opcional, puede cambiarse a 8443 si es necesario)
Por Qué el Puerto 53 No Puede Cambiarse: DNS opera en el puerto 53 por estándares de internet. Los dispositivos esperan que DNS esté en el puerto 53, así que cambiarlo rompería la resolución DNS para todos tus dispositivos.
Conflictos de Puertos Comunes:
- El puerto 80 a menudo es usado por servidores web (Apache, Nginx)
- El puerto 3000 a menudo es usado por servidores de desarrollo (apps Node.js)
- El puerto 53 podría entrar en conflicto con systemd-resolved en Ubuntu/Debian
Método 1: Usando Docker Run (Más Simple)
Esta es la forma más rápida de comenzar:
docker run --name adguardhome \
--restart unless-stopped \
-v /opt/adguardhome/work:/opt/adguardhome/work \
-v /opt/adguardhome/conf:/opt/adguardhome/conf \
-p 53:53/tcp -p 53:53/udp \
-p 80:80/tcp \
-p 443:443/tcp \
-p 443:443/udp \
-p 3000:3000/tcp \
-d adguard/adguardhome
Qué hace este comando:
--name adguardhome: Nombra el container--restart unless-stopped: Reinicio automático si el sistema se reinicia-v: Crea almacenamiento persistente para configuraciones y datos-p: Abre los puertos necesarios-d: Se ejecuta en segundo plano
Método 2: Usando Docker Compose (Recomendado)
Docker Compose hace más fácil gestionar y actualizar tu container usando un archivo de configuración.
Paso 1: Instalar Docker Compose
Copia y pega este comando:
sudo apt install docker-compose -y
Paso 2: Crear una Carpeta para AdGuard Home
Estos comandos crean una nueva carpeta con los permisos apropiados:
mkdir -p ~/adguardhome
cd ~/adguardhome
mkdir -p -m 700 work
mkdir -p -m 700 conf
Qué hace esto:
- Crea una carpeta llamada “adguardhome” en tu directorio home
- Crea los directorios
workyconfcon permisos 700 (solo el propietario puede leer/escribir/ejecutar) - Los permisos 700 son recomendados por AdGuard Home para seguridad
Paso 3: Crear un Archivo de Configuración
Ahora crearemos un archivo llamado docker-compose.yml. Este archivo le dice a Docker cómo ejecutar AdGuard Home.
Escribe este comando:
vim docker-compose.yml
Se abrirá vim. Presiona i para entrar en modo insertar, luego copia y pega este bloque completo:
services:
adguardhome:
image: adguard/adguardhome
container_name: adguardhome
restart: unless-stopped
ports:
- '53:53/tcp'
- '53:53/udp'
- '80:80/tcp'
- '443:443/tcp'
- '443:443/udp'
- '3000:3000/tcp'
volumes:
- ./work:/opt/adguardhome/work
- ./conf:/opt/adguardhome/conf
Ahora guarda el archivo:
- Presiona
Escpara salir del modo insertar - Escribe
:wqy presionaEnter
¡Éxito! Has creado tu archivo de configuración.
Alternativa: Puertos Personalizados (Opcional - Solo si tienes conflictos de puertos)
Omite esta sección si: Los puertos 80 y 3000 están libres en tu sistema.
Usa esta sección si: Obtienes errores como “port already in use” o estás ejecutando otros servicios (servidores web, otros containers, etc.).
¿Cuándo Necesitas Puertos Personalizados?
Necesitas puertos personalizados si:
- Ejecutas otros servicios web (Apache, Nginx, otro container en el puerto 80)
- Tienes otra aplicación usando el puerto 3000
- Ves errores como:
bind: address already in use
Cómo Usar Puertos Personalizados
En lugar del docker-compose.yml anterior, usa esta versión con puertos personalizados:
Abre tu archivo docker-compose.yml de nuevo:
vim docker-compose.yml
Reemplaza el contenido con esto:
Presiona i para entrar en modo insertar, borra el contenido existente, y pega esto:
services:
adguardhome:
image: adguard/adguardhome
container_name: adguardhome
restart: unless-stopped
ports:
- '53:53/tcp' # DNS - Debe permanecer en puerto 53
- '53:53/udp' # DNS - Debe permanecer en puerto 53
- '8080:80/tcp' # Web UI - Cambiado de 80 a 8080
- '3001:3000/tcp' # Setup wizard - Cambiado de 3000 a 3001
- '8443:443/tcp' # HTTPS (opcional)
- '8443:443/udp' # DNS-over-HTTPS (opcional)
volumes:
- ./work:/opt/adguardhome/work
- ./conf:/opt/adguardhome/conf
Luego presiona Esc y escribe :wq para guardar.
Entendiendo el Mapeo de Puertos:
El formato es: "PUERTO_HOST:PUERTO_CONTAINER"
- Lado izquierdo (puerto host): El puerto en tu computadora/Raspberry Pi
- Lado derecho (puerto container): El puerto dentro de Docker (¡no cambies esto!)
Ejemplos:
"80:80"= Puerto 80 en ambos host y container (estándar)"8080:80"= Puerto 8080 en host, pero container aún usa 80"3001:3000"= Puerto 3001 en host, pero container aún usa 3000
Notas Importantes:
⚠️ El puerto 53 NO puede cambiarse - DNS debe usar el puerto 53, o los dispositivos no podrán usarlo
- PUEDES cambiar: 80, 443, 3000 (interfaz web y configuración)
- NO PUEDES cambiar: 53 (servicio DNS)
Accediendo a AdGuard Home con Puertos Personalizados
Con puertos predeterminados:
- Asistente de configuración:
http://TU_IP:3000 - Panel:
http://TU_IP:80(o solohttp://TU_IP)
Con puertos personalizados (como el ejemplo anterior):
- Asistente de configuración:
http://TU_IP:3001← Nota el :3001 - Panel:
http://TU_IP:8080← Nota el :8080
Ejemplo con IP real:
Configuración: http://192.168.1.100:3001
Panel: http://192.168.1.100:8080
Alternativas de Puertos Comunes
Si los puertos están ocupados, aquí hay buenas alternativas:
| Servicio | Puerto Predeterminado | Alternativa | Uso |
|---|---|---|---|
| Web UI | 80 | 8080, 8888, 8081 | Panel |
| Setup Wizard | 3000 | 3001, 3002, 8000 | Configuración inicial |
| HTTPS | 443 | 8443, 4443 | Web segura |
Verificando si un Puerto Ya Está en Uso
Antes de comenzar, verifica si los puertos están libres:
# Verificar si el puerto 80 está en uso
sudo lsof -i :80
# Verificar si el puerto 3000 está en uso
sudo lsof -i :3000
- Si ves salida: El puerto está en uso (necesitas puertos personalizados)
- Si no ves nada: El puerto está libre (puedes usar el predeterminado)
O verifica todos los puertos a la vez:
sudo netstat -tulpn | grep -E ':(80|3000|53) '
Guardando Tu Configuración Personalizada
Después de editar:
- Presiona
Ctrl+X - Presiona
Ypara guardar - Presiona
Enterpara confirmar
Paso 4: Iniciar AdGuard Home
¡Ahora iniciemos AdGuard Home! Ejecuta este comando:
docker-compose up -d
Qué hace esto: Inicia AdGuard Home en segundo plano. El -d significa “modo desacoplado” (se ejecuta en segundo plano).
Verás a Docker descargando e iniciando todo. Esto toma 1-2 minutos.
Verificando la Instalación
Verifiquemos si AdGuard Home está ejecutándose. Escribe:
docker ps
Qué buscar: Deberías ver una línea con adguardhome en ella. Si es así, ¡felicitaciones! ¡Está ejecutándose!
Configuración Inicial
Paso 1: Acceder a la Interfaz Web
¡Ahora configuraremos AdGuard Home usando un navegador web!
Encuentra la dirección IP de tu dispositivo:
En la terminal, escribe:
hostname -IVerás algo como:
192.168.1.100¡Anota este número! Esta es la dirección de tu dispositivo en tu red.
Abre un navegador web
- Puedes usar cualquier dispositivo en el mismo WiFi/red (teléfono, tablet, computadora)
- Abre Chrome, Firefox, Safari o cualquier navegador
Escribe en la barra de direcciones:
Escribe:
http://IP_DE_TU_DISPOSITIVO:3000Ejemplo: Si tu IP era
192.168.1.100, escribe:http://192.168.1.100:3000Presiona Enter.
Consejo: Si no carga, asegúrate de que:
- Tu dispositivo esté en la misma red que el Raspberry Pi/laptop
- Escribiste la dirección IP correctamente
- El puerto 3000 esté incluido al final (o usa tu puerto personalizado si lo cambiaste)
Paso 2: Asistente de Configuración
Verás el asistente de configuración de AdGuard Home:
Pantalla de Bienvenida: Clic en “Get Started”
Configuración de Interfaz Web Admin:
- Elige puerto 80 (o mantén 3000 si prefieres)
- Clic en “Next”
Configuración de Servidor DNS:
- Mantén puerto 53 (predeterminado)
- Clic en “Next”
Crear Cuenta Admin:
- Nombre de usuario: Elige tu nombre de usuario admin
- Contraseña: Crea una contraseña fuerte
- Clic en “Next”
Configuración Completa: Clic en “Open Dashboard”
Paso 3: Iniciar Sesión
Usa las credenciales que acabas de crear para iniciar sesión.
Configuraciones Recomendadas por Defecto
Después de completar el asistente de configuración inicial, aquí están las configuraciones recomendadas para la mayoría de usuarios:
Servidores DNS Upstream
Qué usar: Elige una opción enfocada en privacidad
- Cloudflare (recomendado para velocidad):
1.1.1.1y1.0.0.1 - Quad9 (recomendado para seguridad):
9.9.9.9y149.112.112.112
Dónde: Settings → DNS settings → Upstream DNS servers
¿Por qué estos? Ambos están enfocados en privacidad, son rápidos y confiables. Cloudflare es ligeramente más rápido, Quad9 incluye bloqueo de malware.
Blocklists
Comienza con estas dos (no te sobresuscribas):
AdGuard DNS filter (preinstalado) - Bloqueo general de anuncios
- Ya habilitado por defecto
OISD Big List - Lista comprensiva y bien mantenida
- Agregar vía: Filters → DNS blocklists → Add blocklist
- URL:
https://big.oisd.nl/
¿Por qué solo 2? Más listas = búsquedas DNS más lentas. Estas dos cubren el 95% de anuncios y rastreadores. Siempre puedes agregar más después si es necesario.
Query Logging
Configuración recomendada: Retención de 24 horas
Dónde: Settings → DNS settings → Query log retention
¿Por qué 24 horas?
- Suficiente para solucionar problemas
- No tanto que ralentice el sistema
- Buen balance entre utilidad y rendimiento
Nota de privacidad: Los logs permanecen en tu dispositivo, nunca salen de tu red.
Configuraciones de Interfaz
- Puerto de interfaz admin: Mantén en puerto 80 (a menos que tengas conflictos, entonces usa 8080)
- Puerto DNS: Debe permanecer en puerto 53 (no puede cambiarse)
- HTTPS: Opcional para uso doméstico, recomendado si se expone a internet (ver Parte 4 para configuración)
¡Eso es todo! Estas configuraciones predeterminadas funcionan bien para la mayoría de redes domésticas. Siempre puedes ajustar después conforme aprendas más sobre qué funciona para tu configuración.
Configurando Tus Dispositivos
Ahora que AdGuard Home está ejecutándose con las configuraciones recomendadas, necesitas configurar tus dispositivos para usarlo.
Opción 1: Configurar Tu Router (Recomendado)
Esto aplica AdGuard Home a TODOS los dispositivos en tu red automáticamente.
Nota: ¡Cada router es diferente! Los pasos exactos varían por fabricante y modelo.
Pasos Generales:
Accede al panel de administración de tu router
- Usualmente:
192.168.1.1,192.168.0.1, o192.168.1.254 - O verifica la etiqueta en tu router
- Ingresa nombre de usuario/contraseña (a menudo en la etiqueta del router)
- Usualmente:
Encuentra las configuraciones DNS
- Busca en estas secciones (varía por router):
- “DHCP Settings” o “DHCP Server”
- “LAN Settings”
- “Internet Settings”
- “Network Settings”
- “Advanced” → “DNS”
- Busca en estas secciones (varía por router):
Cambiar DNS Primario
- Ingresa la dirección IP de tu AdGuard Home (la que encontraste antes)
- Ejemplo:
192.168.1.100
DNS Secundario (opcional)
- Mejor práctica: Dejar en blanco
- Alternativa: Usa un DNS de respaldo como
1.1.1.1(Cloudflare) o8.8.8.8(Google) - Advertencia: Si estableces un secundario, los dispositivos pueden eludir AdGuard Home cuando el primario esté lento
Guardar y Reiniciar
- Guardar configuraciones
- Reiniciar tu router (algunos routers hacen esto automáticamente)
Encontrando Instrucciones Específicas del Router:
¿No encuentras configuraciones DNS? Busca en Google:
"TU_MODELO_ROUTER" change DNS server"TU_MODELO_ROUTER" custom DNS DHCP
Ejemplos:
- “Netgear Nighthawk change DNS server”
- “TP-Link Archer C7 custom DNS”
- “Asus RT-AC68U DHCP DNS”
Sistemas Mesh:
- TP-Link Deco 6: App Deco → More → Advanced → DHCP Server → Establecer DNS Primario a tu IP de AdGuard Home
- Otros Sistemas Mesh (Google WiFi, Eero, Netgear Orbi, etc.): Revisa la app de tu sistema mesh bajo “Advanced,” “Network Settings,” o “DNS Settings.” Busca en Google: “TU_MODELO_MESH change DNS” si es necesario.
Opción 2: Configurar Dispositivos Individuales
Si no puedes configurar tu router o quieres probar en dispositivos específicos primero:
En Windows:
- Settings → Network & Internet → Change adapter options
- Clic derecho en tu conexión → Properties
- Selecciona “Internet Protocol Version 4 (TCP/IPv4)” → Properties
- Selecciona “Use the following DNS server addresses”
- DNS Preferido: Tu IP de AdGuard Home (ej.,
192.168.1.100) - Clic en OK
En macOS:
- System Preferences → Network
- Selecciona tu conexión → Advanced → DNS
- Clic en “+” y agrega tu IP de AdGuard Home
- Clic en OK y Apply
En iOS/Android:
- Settings → WiFi
- Toca tu red
- Configure DNS → Manual
- Agrega tu IP de AdGuard Home
- Guardar
Probando Tu Configuración
Después de configurar tu router o dispositivos, verifiquemos que todo esté funcionando:
Prueba 1: Verificar Query Log
- Abre el panel de AdGuard Home:
http://TU_IP - Ve a “Query Log”
- Navega un sitio web en tu teléfono o computadora
- Deberías ver consultas DNS apareciendo en tiempo real
Si no ves consultas: Tus dispositivos no están usando AdGuard Home. Verifica de nuevo las configuraciones DNS de tu router/dispositivo.
Prueba 2: Visitar un Sitio Web con Muchos Anuncios
- Visita un sitio conocido por anuncios (sitios de noticias, blogs, etc.)
- Los anuncios deberían estar bloqueados
- Verifica el panel de AdGuard Home - deberías ver consultas bloqueadas
Prueba 3: Probar Bloqueo de Anuncios
Visita: https://canyoublockit.com/
Este sitio prueba si tu bloqueador de anuncios está funcionando. Deberías ver mayormente marcas de verificación verdes.
Próximos Pasos
¡Tu AdGuard Home ahora está protegiendo toda tu red! En la Parte 4, exploraremos funciones avanzadas, aprenderemos sobre mantenimiento y solucionaremos problemas comunes.
Continuar a la Parte 4: Funciones Avanzadas y Mantenimiento →