Instalación y configuración de AdGuard Home en Debian 13

adguard-home

¿Que es AdGuard Home?

AdGuard Home es un servidor DNS de código abierto que actúa como filtro de anuncios y rastreadores para toda la red. En lugar de instalar un bloqueador en cada dispositivo, configuramos AdGuard Home como servidor DNS de la red y bloqueará los dominios de publicidad, telemetría y rastreo antes de que lleguen a nuestros equipos, móviles o televisores. Además incluye un panel web con estadísticas, registro de consultas y la posibilidad de definir reglas y reescrituras DNS para nombres locales.

En este tutorial vamos a instalar AdGuard Home en Debian 13. En mi caso corre sobre una Raspberry Pi 5 (arquitectura ARM de 64 bits, aarch64); AdGuard Home publica binarios para arm64, así que el instalador oficial descargará automáticamente la versión correcta para esta arquitectura.

Requisitos

  • Debian 13 instalado (en este caso sobre Raspberry Pi 5, aarch64).
  • Los puertos 53 (DNS) y 80 (interfaz web) libres.
  • Privilegios de sudo o root.

Liberar el puerto 53

Muchas instalaciones de Debian tienen systemd-resolved escuchando en el puerto 53, que necesitamos para AdGuard Home. Comprobamos si está ocupado:

root@adguard:~# ss -tlnp | grep :53

Si systemd-resolved está ocupando el puerto, desactivamos su escucha editando /etc/systemd/resolved.conf y poniendo:

[Resolve]
DNSStubListener=no

Y reiniciamos el servicio:

root@adguard:~# systemctl restart systemd-resolved

Instalación de AdGuard Home

AdGuard Home ofrece un script de instalación oficial que detecta la arquitectura (en nuestro caso arm64), descarga el binario, lo instala en /opt/AdGuardHome y crea el servicio de systemd:

root@adguard:~# curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

Cuando termine, comprobamos la versión instalada:

root@adguard:~# /opt/AdGuardHome/AdGuardHome --version
AdGuard Home, version v0.107.78

Y que el servicio está activo:

root@adguard:~# systemctl status AdGuardHome
● AdGuardHome.service - AdGuard Home: Network-level blocker
     Loaded: loaded (/etc/systemd/system/AdGuardHome.service; enabled)
     Active: active (running)

Asistente de configuración inicial

La primera vez, AdGuard Home levanta un asistente web en el puerto 3000. Abrimos un navegador y accedemos a la IP del servidor seguida del puerto 3000. El asistente nos da la bienvenida:

adguard-setup1

En el segundo paso definimos los puertos de escucha: la interfaz web de administración (en nuestro caso el puerto 80) y el servidor DNS (el puerto 53). AdGuard también nos recuerda que el servidor debe tener una dirección IP estática:

adguard-setup2

A continuación configuramos el usuario y la contraseña con los que protegeremos el panel de administración:

adguard-setup3

Tras completar los dos últimos pasos, el asistente termina y el panel se traslada al puerto que hayamos indicado (el 80). A partir de ahora accederemos directamente por http://IP-del-servidor, que nos pedirá iniciar sesión con las credenciales que acabamos de crear:

adguard-login

El panel de AdGuard Home

Una vez dentro, el panel principal nos muestra el número de consultas DNS, cuántas se han bloqueado, los clientes más activos y los dominios más consultados (en un servidor recién instalado las estadísticas aparecen a cero hasta que empiece a recibir tráfico):

adguard-dashboard

Configurar los servidores DNS upstream

En Configuración → Configuración DNS indicamos los servidores DNS a los que AdGuard reenviará las consultas que no bloquee. Podemos usar el router de la red o un servidor con cifrado (DoH/DoT). Por ejemplo:

192.168.50.1
https://dns10.quad9.net/dns-query

Listas de bloqueo

El filtrado se basa en listas de bloqueo. En Filtros → Listas de bloqueo DNS AdGuard trae algunas activadas por defecto (como AdGuard DNS filter), y podemos añadir más pegando su URL:

adguard-filtros

Reescrituras DNS para nombres locales

Una función muy útil en un homelab son las reescrituras DNS: permiten resolver nombres internos a las IP de nuestra red. En Filtros → Reescrituras DNS podemos añadir, por ejemplo, servidor.home.lan192.168.50.2, y AdGuard responderá con esa IP a los clientes de la red.

Prueba de funcionamiento

Para comprobar que el filtrado funciona, hacemos una consulta DNS directamente contra AdGuard Home de un dominio de publicidad conocido. Debería devolver 0.0.0.0 (bloqueado):

root@debian:~# nslookup doubleclick.net 192.168.50.106
Server:		192.168.50.106
Address:	192.168.50.106#53

Name:	doubleclick.net
Address: 0.0.0.0

Si configuramos la IP de AdGuard Home como servidor DNS en el router (o en cada equipo), toda la red empezará a filtrar anuncios y rastreadores. En el panel, dentro del Registro de consultas, veremos en tiempo real qué dominios se están consultando y bloqueando.

Con esto ya tenemos AdGuard Home funcionando en Debian 13 como servidor DNS con filtrado para toda la red local.