Cómo autoalojar AdGuard Home en Proxmox LXC — Guía de filtrado DNS 2026
Homelab

Cómo autoalojar AdGuard Home en Proxmox LXC — Guía de filtrado DNS 2026

Ricardo Gil
2 de noviembre de 2026
11 min de lectura

Traducido del original en inglés. Read this article in English →

#proxmox #lxc #self-hosting #adguard #dns
🛒

Productos en este artículo

Enlaces de afiliado

Como Afiliado de Amazon, gano comisiones por compras que califican, sin costo extra para ti.

AdGuard Home convierte un único contenedor LXC de Proxmox en un servidor DNS de filtrado para toda la red — todos los dispositivos de tu LAN obtienen bloqueo de anuncios y protección contra rastreadores sin instalar nada en teléfonos, laptops ni televisores individuales. Es uno de los servicios más útiles que puedes añadir a un homelab, y en Proxmox funciona en un contenedor sin privilegios muy ligero con casi ningún mantenimiento continuo.

Esta guía cubre la configuración completa: crear el LXC, instalar AdGuard Home, apuntar tu router hacia él como resolvedor DNS principal y habilitar DNS-over-HTTPS para que las consultas viajen cifradas. Si quieres una visión general de la gestión de contenedores LXC antes de empezar, el guía completa de self-hosting con Proxmox LXC cubre todo en detalle.

AdGuard Home vs Pi-hole: ¿Cuál deberías usar en 2026?

Tanto Pi-hole como AdGuard Home bloquean anuncios a nivel DNS, pero tienen funcionalidades significativamente distintas. Pi-hole existe desde 2014 y cuenta con una gran comunidad y un ecosistema extenso de listas de bloqueo. AdGuard Home, según su documentación oficial, añade soporte integrado de DNS-over-HTTPS, DNS-over-TLS y DNSCrypt sin software adicional — en Pi-hole necesitarías instalar un dnscrypt-proxy por separado para obtener la misma funcionalidad.

AdGuard Home también incluye control parental y protección de navegación segura integrados en la misma interfaz, y sus reglas de reescritura DNS (redirecciones personalizadas para nombres de host internos) son más sencillas de configurar desde la web. Para un homelab con contenedores Proxmox LXC, AdGuard Home es la opción más autocontenida: un contenedor, un binario enlazado estáticamente en Go, sin una cadena de dependencias de PHP ni lighttpd que mantener.

El argumento principal para Pi-hole es su comunidad más grande y más integraciones de terceros — si ya lo tienes funcionando en una Raspberry Pi 5 8GB (~$80) y funciona bien, no hay ninguna razón de peso para migrar. Pero para una instalación nueva en 2026 sobre Proxmox, mi recomendación es AdGuard Home. Es un único binario con una huella de recursos mínima según los propios benchmarks de AdGuard, y el runtime de Go no añade una sobrecarga apreciable a los volúmenes de consultas DNS domésticas.

Qué necesitas antes de empezar

Los requisitos previos de esta configuración son mínimos comparados con la mayoría de servicios autoalojados:

  • Un nodo Proxmox VE 7.x u 8.x en funcionamiento
  • Una plantilla LXC de Ubuntu 22.04 o Debian 12 descargada en tu almacenamiento local
  • Acceso de administrador a tu router doméstico para cambiar la configuración del servidor DNS
  • Una IP estática asignada al LXC — AdGuard Home debe ser accesible en una dirección constante

Los requisitos de hardware son genuinamente mínimos. Según la documentación oficial de AdGuard, AdGuard Home gestiona decenas de miles de consultas DNS por segundo en un solo núcleo de CPU. Incluso un nodo Proxmox modesto — por ejemplo, un mini PC reutilizado como el GMKtec G3 PRO Mini PC (~$199) — ejecutará AdGuard Home junto con una pila completa de servicios sin ningún impacto apreciable. Mi Beelink GTi13 Ultra (i9-13900HK, 64 GB) corre un buen número de contenedores LXC en paralelo incluyendo este tipo de servicios ligeros, y el DNS es genuinamente lo último que genera presión en la CPU.

Una consideración de red: si tu homelab usa un switch de 100 Mbps de bajo costo, la latencia DNS desde el LXC hasta los resolvedores upstream no será un cuello de botella, pero actualizar a un switch TP-Link 2.5G de 8 puertos (~$49) prepara tu LAN para el futuro en transferencias de archivos grandes entre nodos Proxmox, algo que vale la pena si también ejecutas servicios NAS o migraciones frecuentes de VMs.

Crear el contenedor LXC en Proxmox

Abre la interfaz web de Proxmox y haz clic en Create CT. Ponle un nombre reconocible como adguard o dns. En Memory, 256 MB es suficiente para un despliegue doméstico, aunque 512 MB te da más margen para el registro de consultas y las estadísticas de largo plazo. Un vCPU es más que suficiente.

La configuración de red es la parte importante. Asigna al contenedor una IP estática en una dirección predecible y con número bajo dentro de la subred de tu LAN — algo como 192.168.1.2 — porque apuntarás toda tu red a esta IP para DNS. Si el contenedor recibe alguna vez una concesión diferente, el DNS se rompe para todos los dispositivos de la red. En la configuración de red del LXC en Proxmox, establece la dirección IPv4 en la IP estática elegida y deja el gateway apuntando al router.

AdGuard Home no requiere ningún privilegio especial en el LXC. Un contenedor sin privilegios con la configuración predeterminada de Proxmox funciona perfectamente — sin nesting, sin modo privilegiado, sin excepciones especiales de AppArmor. Una vez que el contenedor esté iniciado, abre su consola desde la interfaz de Proxmox o conéctate por SSH para proceder con la instalación.

Instalar AdGuard Home

AdGuard proporciona un script de instalación oficial que descarga el binario correcto para tu arquitectura y configura un servicio de systemd. Ejecútalo como root dentro del LXC:

bash
apt update && apt install -y curl
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

El script instala el binario en /opt/AdGuardHome/ y crea un servicio de systemd llamado AdGuardHome. Verifica que esté en ejecución:

bash
systemctl status AdGuardHome

Si prefieres una instalación manual fijada a una versión concreta — útil cuando necesitas reproducibilidad — descarga el tarball directamente desde la página de releases de AdGuard Home en GitHub:

bash
VERSION="v0.107.56"   # Comprueba GitHub para la última versión
ARCH="linux_amd64"    # Usa linux_arm64 en hosts ARM
curl -L "https://github.com/AdguardTeam/AdGuardHome/releases/download/${VERSION}/AdGuardHome_${ARCH}.tar.gz" -o agh.tar.gz
tar -xzf agh.tar.gz
cd AdGuardHome
./AdGuardHome -s install

Cualquiera de los dos métodos deja AdGuard Home ejecutándose como servicio de systemd y escuchando en el puerto 3000 para el asistente de configuración inicial. El servicio está configurado para arrancar automáticamente al inicio, así que no hay nada más que configurar para la persistencia.

Ejecutar el asistente de configuración inicial

Navega a http://<ip-del-lxc>:3000 en un navegador. El asistente de configuración recorre cinco pasos. Las decisiones clave están en la pantalla de interfaces de red:

  • Puerto de la interfaz web de administración: configúralo en 80 (o 8080 si piensas poner un proxy inverso por delante) — el puerto predeterminado 3000 también funciona si solo accedes desde tu LAN
  • Servidor DNS: configura la dirección de escucha en la IP estática del LXC en el puerto 53 (p. ej. 192.168.1.2:53) en lugar de 0.0.0.0:53 — vincularse a la interfaz específica es más limpio y evita ambigüedades en sistemas con múltiples interfaces

Crea un nombre de usuario de administrador y una contraseña robusta en la siguiente pantalla. Tras completar el asistente, AdGuard Home se reinicia y abre el panel principal. Los resolvedores DNS upstream predeterminados son Cloudflare (1.1.1.1) y Google (8.8.8.8). Funcionan para un uso básico, pero en la siguiente sección los ajustaremos para mayor privacidad. El panel principal ofrece un feed en tiempo real de consultas, solicitudes bloqueadas y porcentaje de bloqueo — esto es lo que confirma que todo funciona una vez que apuntas tu router a AdGuard Home.

Apuntar tu router a AdGuard Home

La forma más rápida de desplegar el filtrado DNS en toda la red es cambiar la configuración del servidor DNS de tu router. Cada interfaz de administración de router es diferente, pero la opción suele estar en LAN → Servidor DHCP → Servidor DNS. Establece el DNS principal en la IP estática del LXC de AdGuard Home. Deja el DNS secundario en blanco — si configuras un fallback como 1.1.1.1, algunos dispositivos podrían saltarse AdGuard Home cuando no sea alcanzable temporalmente, lo cual anula el propósito. Lo correcto es mantener AdGuard Home con alta disponibilidad, que es fácil dado su mínima huella de recursos.

Los dispositivos reciben el nuevo DNS cuando renuevan su concesión DHCP. Para probar inmediatamente en una sola máquina, vacía su caché DNS (ipconfig /flushdns en Windows, sudo dscacheutil -flushcache en macOS) o configura manualmente el DNS a la IP de AdGuard Home en la configuración de red de ese dispositivo. Confirma que las consultas fluyen observando la pestaña Query Log en el panel de AdGuard Home — las solicitudes de tu dispositivo deberían aparecer en segundos.

Un caso particular que merece atención: algunos smart TVs, reproductores Android TV y dispositivos IoT tienen resolvedores DNS codificados en el firmware (habitualmente 8.8.8.8 o 1.1.1.1) que ignoran por completo el DNS proporcionado por DHCP. La solución es una regla de firewall que intercepta todo el tráfico UDP/TCP saliente en el puerto 53 y lo redirige a la IP de AdGuard Home. Si ejecutas OPNsense en Proxmox — la guía de OPNsense en Proxmox cubre la configuración completa — esto es una regla NAT de redirección de dos pasos que lleva unos cinco minutos configurar.

Ajustar el DNS upstream y las listas de filtros

Antes de añadir listas de bloqueo, considera cambiar los resolvedores DNS upstream por opciones más centradas en la privacidad. En Settings → DNS settings → Upstream DNS servers, reemplaza los predeterminados con opciones que no registren consultas. Según sus respectivas políticas de privacidad, buenas opciones incluyen el resolvedor de privacidad de Cloudflare (https://cloudflare-dns.com/dns-query para DoH) o Quad9 (https://dns.quad9.net/dns-query), que además bloquea dominios maliciosos conocidos a nivel de resolvedor.

Para las listas de bloqueo, ve a Filters → DNS blocklists → Add blocklist. La lista integrada de AdGuard Home es un buen punto de partida, pero añadir algunas fuentes mantenidas por la comunidad mejora sensiblemente la cobertura:

  • AdGuard DNS filter (integrada) — dominios de anuncios y rastreadores generales
  • Steven Black's Hosts — una lista consolidada que fusiona múltiples fuentes, actualizada regularmente en https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
  • OISD Big — una de las listas de bloqueo más completas y actualizadas, disponible en https://big.oisd.nl

Empieza con dos o tres listas bien mantenidas en lugar de acumular decenas. Las listas demasiado agresivas generan falsos positivos que rompen sitios legítimos, y rastrear por qué un sitio concreto dejó de cargar es tedioso. Según benchmarks comunitarios publicados en los issues de GitHub de AdGuard Home, un hogar con patrones de navegación normales suele ver bloqueado entre un 15 y un 30 % de las consultas DNS — un punto de referencia útil para comparar una vez que tus listas estén activas. Para los falsos positivos, Filters → Custom filtering rules permite añadir una excepción para un dominio al instante con la sintaxis @@||example.com^.

Configurar HTTPS para el panel y DNS-over-HTTPS

Para una configuración solo en LAN, el HTTP simple para el panel y el DNS sin cifrar en el puerto 53 es aceptable — el tráfico nunca sale de tu red local. Pero si accedes a tu homelab de forma remota mediante Headscale o Tailscale, o si quieres usar AdGuard Home como resolvedor DNS-over-HTTPS en dispositivos móviles, habilitar TLS es el siguiente paso.

AdGuard Home soporta certificados de Let's Encrypt de forma nativa bajo Settings → Encryption settings. Necesitarás un dominio apuntando a la IP del LXC (o a tu IP pública con reenvío de puertos). Introduce el nombre de dominio y pega el certificado y la clave privada. Si usas Traefik como proxy inverso — cubierto en la guía de Traefik en Proxmox — un enfoque más limpio es colocar la interfaz web de AdGuard Home detrás de Traefik con un certificado de Let's Encrypt, mientras el puerto 53 y el 853 los gestiona directamente AdGuard Home.

Una vez configurado HTTPS, los clientes pueden usar AdGuard Home como resolvedor DoH en https://tu-dominio/dns-query. iOS 14+ y Android 9+ soportan DNS Privado (DoH/DoT) de forma nativa en la configuración de red del sistema, según la documentación de Apple y Google respectivamente. Esto significa que todas las consultas desde tu teléfono van cifradas y filtradas a través de AdGuard Home incluso cuando estás en una red Wi-Fi pública — muy útil si también tienes un túnel Tailscale que enruta tráfico hacia casa.

Reglas por cliente y reescrituras DNS internas

Dos de las funcionalidades más útiles de AdGuard Home son los perfiles de filtrado por cliente y las reescrituras DNS. En Settings → Client settings, añade entradas para dispositivos específicos por dirección MAC o IP. Puedes asignar a cada cliente un perfil de protección diferente — por ejemplo, habilitar el filtro de control parental en la tablet de un niño mientras mantienes tu máquina de trabajo en una lista permisiva que permite los dominios de análisis y reporte de errores que de otro modo quedarían bloqueados.

Las reescrituras DNS, bajo Filters → DNS rewrites, permiten sobreescribir la resolución de nombres de host específicos en toda la LAN. Es la forma más limpia de acceder a los servicios internos por nombre: añade una reescritura como jellyfin.home → 192.168.1.10 y todos los dispositivos de la red resuelven ese nombre sin necesidad de entradas en el fichero hosts ni una configuración completa de DNS dividido. Esto también elimina los problemas de hairpin NAT en los que los servicios detrás de un proxy inverso se comportan de forma diferente desde dentro versus fuera de la LAN. Combinado con Traefik gestionando la terminación HTTPS, obtienes acceso con nombre y consistente a cada servicio autoalojado.

Mantener AdGuard Home actualizado y con copias de seguridad

AdGuard Home incluye un mecanismo de autoactualización integrado directamente en el panel: ve a Settings → Update y haz clic en Check for updates. Cuando hay una nueva versión disponible, AdGuard Home descarga el binario, lo reemplaza y reinicia el servicio — sin necesidad de abrir una sesión SSH. Según el changelog de releases de AdGuard en GitHub, el proyecto publica actualizaciones aproximadamente cada cuatro o seis semanas, principalmente con mejoras en las reglas de listas de bloqueo y pequeñas incorporaciones de funcionalidades.

Antes de cualquier actualización, merece la pena hacer una copia de seguridad del fichero de configuración en /opt/AdGuardHome/AdGuardHome.yaml. Este fichero contiene todas tus reglas personalizadas, reescrituras y configuraciones upstream — es todo lo que necesitas para restaurar una instalación limpia. Un cron job diario sencillo que copie este fichero a una ubicación segura (o a un bucket de MinIO si ejecutas almacenamiento de objetos) mantiene un historial de configuración sin herramientas adicionales. Si ya has configurado el Proxmox Backup Server, añadir el LXC de AdGuard Home a su programación de copias de seguridad es la opción más directa — PBS crea un snapshot del estado completo del contenedor, incluyendo el fichero de configuración.

AdGuard Home también expone una API REST documentada en /api de tu instancia en ejecución, lo que facilita extraer estadísticas de consultas y tasas de bloqueo hacia un panel de monitorización. Combinado con la configuración de Grafana + Prometheus (en inglés), puedes construir un dashboard que muestre las tasas de bloqueo DNS junto con todas las métricas de los demás servicios del homelab en un mismo lugar — el exportador de Prometheus para AdGuard Home disponible en la comunidad de GitHub es una integración directa para esto.

¿Quieres algo así para tu negocio?

Instalo infraestructura privada y autoalojada en Proxmox: IA, automatización y herramientas internas en hardware que es tuyo, documentado y entregado. Ver el stack de IA privada →

¿No sabes qué necesitas? Agenda una llamada gratis.

Ricardo Gil es desarrollador full stack (.NET/Angular) con más de 6 años de experiencia. Tiene un homelab personal en un mini PC Beelink con Proxmox VE, donde autoaloja desde Jellyfin hasta LLMs locales con Ollama. Más sobre Ricardo →
📬Newsletter semanal

Recibe lo mejor de homelab e IA

Sin spam. Un correo por semana. Te das de baja cuando quieras.

Comparte este artículo