Instalación y configuración de AdGuard Home en un VPS: creación de un servidor DNS personal con DoH y protección contra publicidad
TL;DR
En esta guía, analizaremos el proceso de despliegue de AdGuard Home en un servidor virtual para crear un servidor DNS personal de alto rendimiento. Esta solución permite bloquear publicidad y rastreadores a nivel de solicitudes de red para todos sus dispositivos simultáneamente, garantizando la privacidad a través de los modernos protocolos de cifrado DNS-over-HTTPS (DoH) y DNS-over-TLS (DoT). Como resultado, obtendrá un control total sobre su tráfico, acelerará la carga de páginas y protegerá sus datos contra la interceptación por parte del proveedor de servicios de internet.
- Objetivo: Bloqueo total de publicidad y rastreadores a nivel de DNS.
- Protocolos: Configuración de DoH, DoT y DNS-over-QUIC para la máxima seguridad.
- Plataforma: VPS con Ubuntu 24.04 LTS o 26.04 LTS.
- Resultado: Punto único de filtrado para smartphones, PC y dispositivos inteligentes.
- Dificultad: Media (se requieren conocimientos básicos de la terminal de Linux).
1. Qué estamos configurando y por qué: la filosofía de un DNS privado
DNS (Domain Name System) es el "directorio telefónico" de internet. Cada vez que introduce la dirección de un sitio web, su dispositivo pregunta a un servidor DNS: "¿Cuál es la dirección IP de google.com?". Tradicionalmente, estas solicitudes se envían en texto plano a través de los servidores de su proveedor de servicios de internet (ISP). Esto crea dos problemas críticos: el proveedor ve todas sus acciones en la red y las redes publicitarias pueden usar las consultas DNS para rastrear sus intereses.
AdGuard Home es un complejo de software de red para bloquear publicidad y rastreo. A diferencia de las extensiones de navegador, funciona a nivel de sistema. Si una aplicación en su smartphone intenta enviar análisis al servidor del desarrollador, AdGuard Home simplemente devuelve una respuesta vacía (IP 0.0.0.0) y la solicitud se bloquea antes de que salga de su red.
¿Por qué elegir una solución self-hosted en un VPS en lugar de usar DNS públicos (como AdGuard DNS o Cloudflare)?
- Control total: Usted decide qué listas de filtrado usar y qué dominios incluir en la lista blanca.
- Privacidad: Sus registros de consultas no se almacenan en servidores de terceros. Puede desactivar completamente el registro de logs.
- Flexibilidad: Posibilidad de configurar DNS-over-HTTPS (DoH), lo que hace que su tráfico DNS sea indistinguible del tráfico HTTPS normal, evadiendo bloqueos y censura.
- Rendimiento: Un servidor propio en un canal de comunicación de calidad suele responder más rápido que los nodos públicos sobrecargados.
En 2026, cuando la cantidad de rastreadores en aplicaciones móviles y Smart TV ha alcanzado su punto máximo, tener un filtro DNS propio no es un lujo, sino un elemento básico de higiene digital.
2. Qué configuración de VPS se necesita para esta tarea
AdGuard Home es una aplicación extremadamente eficiente y poco exigente en recursos, escrita en el lenguaje Go. Es capaz de procesar miles de solicitudes por segundo incluso en el hardware más modesto. Sin embargo, para un funcionamiento estable con el cifrado activado y listas de filtrado voluminosas (más de 500,000 reglas), se requieren ciertos parámetros.
| Recurso |
Requisitos mínimos |
Recomendados (para más de 50 dispositivos) |
| Procesador (CPU) |
1 núcleo (Shared) |
1-2 núcleos (Dedicated preferiblemente) |
| Memoria RAM (RAM) |
512 MB |
1 GB - 2 GB |
| Espacio en disco |
10 GB SSD/NVMe |
20 GB NVMe (para almacenamiento de logs) |
| Red |
100 Mbit/s, IPv4 + IPv6 |
1 Gbit/s, ping bajo hacia su ubicación |
Para la mayoría de los escenarios (uso personal + familia), un servidor en la nube de nivel de entrada es ideal. Puede elegir un VPS con las características indicadas en una ubicación lo más cercana posible a su ubicación física. El ping (latencia) es un factor crítico para el DNS. Si el servidor está a 200 ms de usted, cada carga de un sitio web comenzará con ese retraso.
¿Cuándo se necesita un servidor Dedicated? Solo si planea levantar un servidor DNS público para una gran audiencia o una red corporativa con miles de usuarios, donde el aislamiento de hardware y la ausencia de "vecinos ruidosos" en el hipervisor sean importantes.
3. Preparación del servidor: seguridad y utilidades del sistema
Después de alquilar el VPS y obtener acceso por SSH, lo primero es asegurar el sistema. Utilizaremos Ubuntu 24.04/26.04 LTS.
Actualicemos los paquetes del sistema a las versiones actuales de 2026:
sudo apt update && sudo apt upgrade -y
Instalaremos el conjunto básico de utilidades que necesitaremos para el diagnóstico y el trabajo:
sudo apt install -y curl wget git ufw tar net-tools dnsutils build-essential
Configuraremos el firewall básico (UFW). Necesitamos abrir los puertos para SSH, la interfaz web de AdGuard Home y los propios protocolos DNS:
# Permitimos SSH (asegúrese de que su puerto sea el 22, si no lo ha cambiado)
sudo ufw allow 22/tcp
# Puerto para la configuración inicial de AdGuard Home
sudo ufw allow 3000/tcp
# DNS estándar (UDP/TCP)
sudo ufw allow 53/udp
sudo ufw allow 53/tcp
# DNS-over-TLS (DoT)
sudo ufw allow 853/tcp
# DNS-over-HTTPS (DoH) e interfaz web (HTTPS)
sudo ufw allow 443/tcp
sudo ufw allow 80/tcp
# DNS-over-QUIC (DoQ)
sudo ufw allow 7844/udp
# Activamos el firewall
sudo ufw enable
Consejo: Se recomienda también configurar la autorización por llaves SSH y desactivar el acceso por contraseña en /etc/ssh/sshd_config para prevenir ataques de fuerza bruta.
4. Resolución del conflicto con systemd-resolved en el puerto 53
En las distribuciones modernas de Ubuntu, el servicio systemd-resolved ocupa por defecto el puerto 53, usándolo para la resolución local. Esto impedirá que AdGuard Home se inicie. Necesitamos liberar este puerto.
Crearemos el directorio para la configuración, si no existe, y editaremos el archivo:
sudo mkdir -p /etc/systemd/resolved.conf.d
sudo nano /etc/systemd/resolved.conf
Realice los siguientes cambios en el archivo /etc/systemd/resolved.conf:
[Resolve]
DNS=127.0.0.1
DNSStubListener=no
Ahora crearemos un symlink para el correcto funcionamiento de /etc/resolv.conf y reiniciaremos el servicio:
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl restart systemd-resolved
Verifique que el puerto 53 esté ahora libre con el comando sudo lsof -i :53. Si la salida está vacía, todo se ha hecho correctamente.
5. Instalación de AdGuard Home: algoritmo paso a paso
Utilizaremos el método oficial de instalación a través de un script automatizado que descarga la compilación binaria actual, configura los permisos y crea el servicio de sistema systemd.
Ejecute el comando de instalación:
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
Este comando realizará las siguientes acciones:
- Identificará la arquitectura de su procesador (x86_64, ARM, etc.).
- Descargará la última versión estable de AdGuard Home (actualizada a 2026).
- Desempaquetará los archivos en el directorio
/opt/AdGuardHome.
- Registrará el servicio
AdGuardHome en el sistema.
Verifique el estado del servicio para asegurarse de que esté funcionando:
sudo systemctl status AdGuardHome
Si ve active (running), significa que el servidor está listo para la configuración inicial.
6. Configuración inicial a través de la interfaz web
Ahora abra su navegador y vaya a la dirección: http://IP_DE_SU_SERVIDOR:3000.
Le recibirá el asistente de configuración de AdGuard Home:
- Inicio: Haga clic en "Comenzar".
- Configuración de interfaces:
- Interfaz web: elija "Todas las interfaces" (All Interfaces) y el puerto 3000 (o el 80, si está libre).
- Servidor DNS: elija "Todas las interfaces" y el puerto 53.
- Creación de administrador: Introduzca un nombre de usuario y una contraseña segura. Estos datos se utilizarán para entrar al panel de control.
- Finalización: El sistema le mostrará instrucciones sobre cómo configurar el DNS en varios dispositivos.
Una vez finalizado, el panel de control estará disponible en http://IP_DE_SU_SERVIDOR:3000. Inicie sesión con las credenciales creadas.
7. Configuración del cifrado: SSL, DoH y DoT
Usar DNS convencional a través del puerto 53 en el internet abierto no es seguro; cualquier nodo intermedio puede interceptar o suplantar sus consultas. En 2026, el estándar es el uso de protocolos cifrados.
Obtención de un certificado SSL (Let's Encrypt)
Para que DoH y DoT funcionen, necesitará un nombre de dominio apuntando a la IP de su VPS. Utilizaremos certbot para obtener un certificado gratuito:
# Instalación de certbot
sudo apt install -y certbot
# Obtención del certificado (reemplace dns.example.com por su dominio)
sudo certbot certonly --standalone -d dns.example.com
Sus certificados se guardarán en /etc/letsencrypt/live/dns.example.com/.
Configuración en AdGuard Home
Vaya a la sección "Configuración" -> "Configuración de cifrado" en la interfaz web:
- Marque la casilla "Activar cifrado".
- Nombre del servidor: introduzca su dominio (por ejemplo,
dns.example.com).
- Puerto HTTPS: 443.
- Puerto DNS-over-TLS: 853.
- Ruta al archivo del certificado:
/etc/letsencrypt/live/dns.example.com/fullchain.pem.
- Ruta al archivo de la clave privada:
/etc/letsencrypt/live/dns.example.com/privkey.pem.
Haga clic en "Guardar configuración". Ahora su servidor soporta:
- DoH:
https://dns.example.com/dns-query
- DoT:
tls://dns.example.com
8. Ajuste fino de filtros y optimización del rendimiento
Vaya a la sección "Filtros" -> "Filtros DNS". Por defecto, solo está activado el filtro AdGuard DNS, pero para una máxima eficacia conviene añadir listas adicionales.
Listas recomendadas (2026):
- OISD (Big): Una de las listas más completas y de mayor calidad, que minimiza los falsos positivos.
- Steven Black's List: Excelente base para bloquear publicidad y sitios maliciosos.
- NoTrack: Lista especializada contra rastreadores.
Configuración de servidores upstream
En la sección "Configuración" -> "Configuración de DNS", especifique a dónde reenviará AdGuard Home las consultas permitidas. Para una máxima privacidad, use upstreams cifrados:
https://dns.cloudflare.com/dns-query
https://dns.google/dns-query
tls://9.9.9.9
Elija el método "Consultas paralelas" (Parallel requests) para minimizar la latencia: AdGuard Home enviará la consulta a todos los upstreams simultáneamente y elegirá la respuesta más rápida.
Caché
Establezca el tamaño de la caché en al menos 64 MB (o más si la RAM lo permite). Esto permitirá entregar instantáneamente respuestas a consultas repetidas de dominios populares sin recurrir a servidores externos.
9. Copias de seguridad, actualización y mantenimiento del sistema
AdGuard Home almacena todas las configuraciones y datos en un solo directorio /opt/AdGuardHome. Esto simplifica el proceso de copia de seguridad.
Script de copia de seguridad automática
Crearemos un script sencillo que archivará la configuración y la enviará a un lugar seguro:
#!/bin/bash
BACKUP_DIR="/home/usuario/backups"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
mkdir -p $BACKUP_DIR
# Detenemos el servicio para la consistencia de los datos
sudo systemctl stop AdGuardHome
tar -czf $BACKUP_DIR/agh_backup_$TIMESTAMP.tar.gz /opt/AdGuardHome
sudo systemctl start AdGuardHome
# Eliminamos copias de seguridad de más de 30 días
find $BACKUP_DIR -type f -mtime +30 -delete
Añada este script a crontab -e para que se ejecute una vez por semana.
Actualización de AdGuard Home
La actualización se realiza directamente desde la interfaz web. Cuando sale una nueva versión, aparece un botón "Actualizar" en la parte superior del panel. El proceso dura unos 10 segundos y se realiza de forma automática.
10. Troubleshooting + FAQ: resolución de problemas comunes
¿Cuál es el error más común durante la instalación?
El problema más frecuente es bind: address already in use en el puerto 53. Esto casi siempre significa que systemd-resolved u otro resolutor DNS (como dnsmasq) todavía está en ejecución. Verifíquelo con el comando sudo netstat -tulpn | grep :53 y asegúrese de haber seguido los pasos de la sección 4 de esta guía.
¿Qué hacer si algunos sitios dejan de abrirse?
Esto se llama "overblocking" (sobrebloqueo). Vaya a la sección "Registro de consultas", busque el dominio bloqueado (estará resaltado en rojo) y haga clic en el botón "Añadir a la lista de exclusiones". AdGuard Home añadirá automáticamente la regla a su lista blanca personal.
¿Qué configuración de VPS es el mínimo aceptable?
Para un funcionamiento estable de un solo usuario, 512 MB de RAM y 1 núcleo de CPU son suficientes. Sin embargo, si planea almacenar logs por un período prolongado (varios meses), necesitará más espacio en disco (desde 20 GB) y preferiblemente 1 GB de RAM para un funcionamiento fluido de la interfaz web al visualizar registros grandes.
¿Qué elegir: VPS o dedicado para esta tarea?
Para un servidor DNS personal, un VPS es la elección ideal. Un servidor dedicado sería excesivo en potencia y costo. El único caso en que un servidor dedicado está justificado es para crear un servicio DNS público con protección contra ataques DDoS a nivel de canal y la necesidad de procesar millones de consultas por hora.
¿Cómo verificar que DoH está funcionando?
Puede usar servicios en línea de verificación de DNS (como dnsleaktest.com) o la utilidad de consola kdig:
kdig -d @dns.example.com +https / google.com
Si ve una respuesta exitosa con una dirección IP, significa que el cifrado está configurado correctamente.
¿Afecta AdGuard Home a la velocidad de internet?
Al ancho de banda en sí (Mbit/s), no. A la velocidad de carga de las páginas, sí, positivamente. Al bloquear scripts publicitarios pesados y banners antes de su carga, ahorra tráfico y recursos del procesador de su dispositivo. La latencia puede aumentar ligeramente en la primera consulta, pero gracias a la caché, las consultas posteriores se realizarán instantáneamente.
11. Conclusiones y próximos pasos
Instalar AdGuard Home en su propio VPS es un paso poderoso hacia la garantía de la privacidad y seguridad digital. Ha creado una barrera robusta contra la publicidad y el rastreo que funciona en todos sus dispositivos, desde su computadora portátil hasta su bombilla inteligente.
¿Qué hacer a continuación?
- Integración con Unbound: Puede instalar
unbound en este mismo VPS para convertir AdGuard Home en un servidor DNS recursivo completo. Esto le permitirá no tener que confiar ni siquiera en upstreams como Google o Cloudflare.
- Configuración de dispositivos móviles: Añada su dirección DoH en los ajustes de "DNS privado" en Android o use perfiles de configuración para iOS.
- Monitoreo: Configure notificaciones en Telegram a través de la API de AdGuard Home si el servidor deja de estar disponible o si el número de amenazas bloqueadas aumenta drásticamente.
Revise regularmente la actualidad de sus listas de filtrado y no olvide actualizar el sistema de seguridad de su VPS. Ahora su internet es más limpio y seguro.