Pi-hole: Servidor DNS que transforma tu red
Si trabajas con infraestructura de red, probablemente ya sabes que el DNS es uno de los protocolos más infravalorados — y más explotados — de internet. Cada vez que abres una página, una app o incluso cuando tu smart TV decide mostrar publicidad, hay una consulta DNS de por medio. Pi-hole se aprovecha exactamente de eso: intercepta esas consultas y decide si dejarlas pasar o bloquearlas antes de que lleguen a su destino.
¿Qué es Pi-hole?
Pi-hole es un servidor DNS con capacidad de sinkhole (sumidero). Funciona como un resolvedor DNS que recibe consultas de toda tu red, las coteja contra listas de dominios no deseados (adlists) y responde con NXDOMAIN (0.0.0.0 / ::1) para los que están bloqueados. El resultado: los anuncios, rastreadores y dominios maliciosos simplemente no se resuelven, y el contenido bloqueado nunca llega a cargarse.
Originalmente diseñado para ejecutarse en una Raspberry Pi (de ahí el nombre), hoy es un proyecto maduro que corre en cualquier sistema Linux, en contenedores Docker, y se integra perfectamente con infraestructura más grande.
Diagrama de arquitectura
El siguiente diagrama muestra cómo se integra Pi-hole en una infraestructura de red con múltiples dispositivos y dos instancias (producción y staging) que comparten un mismo upstream DNS:
flowchart TD
subgraph Clientes[Red Local 10.2.2.0/24]
C1[Dispositivo 1]
C2[Dispositivo 2]
C3[Dispositivo N]
end
subgraph Prod[Pi-hole Admin - Produccion]
PH_P[Pi-hole 10.2.2.100]
ADL_P{Adlists}
CACHE_P[Cache DNS]
PH_P --> ADL_P
ADL_P -->|bloqueado| NX_P[NXDOMAIN]
ADL_P -->|permitido| CACHE_P
end
subgraph Test[Pi-hole Test - Staging]
PH_T[Pi-hole 10.2.2.200]
ADL_T{Adlists}
CACHE_T[Cache DNS]
PH_T --> ADL_T
ADL_T -->|bloqueado| NX_T[NXDOMAIN]
ADL_T -->|permitido| CACHE_T
end
subgraph Upstream[Resolucion Externa]
UP[Upstream DNS recursivo con filtrado]
end
C1 --> PH_P
C2 --> PH_P
C3 --> PH_P
CACHE_P --> UP
CACHE_T -.->|solo staging| UP
Instalación rápida con Docker
Pi-hole tiene un mantenedor oficial en Docker Hub que facilita enormemente su despliegue. Con Docker Compose puedes tenerlo funcionando en menos de un minuto:
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
ports:
- "53:53/tcp"
- "53:53/udp"
- "80:80/tcp"
- "443:443/tcp"
environment:
TZ: 'America/Panama'
FTLCONF_webserver_api_password: 'tu-contrasena-segura'
FTLCONF_dns_listeningMode: 'ALL'
volumes:
- './etc-pihole:/etc/pihole'
cap_add:
- NET_ADMIN
- SYS_TIME
- SYS_NICE
restart: unless-stopped
Guarda el archivo como compose.yml y ejecuta:
docker compose up -d
Tras el arranque, accede al panel web en http://localhost:80/admin con la contraseña que definiste en FTLCONF_webserver_api_password. Desde ahí puedes configurar adlists, ver estadísticas en tiempo real y gestionar whitelist/blacklist.
Nota: El contenedor incluye
cronintegrado que actualiza las listas de bloqueo automáticamente una vez por semana. Los volúmenes persistentes garantizan que los datos sobrevivan a actualizaciones del contenedor.
¿Por qué es importante?
La propuesta de valor de Pi-hole va mucho más allá de “bloquear anuncios”:
Protección a nivel de red. A diferencia de las extensiones de navegador o los bloqueadores por app, Pi-hole opera en la capa de DNS. Esto significa que protege todos los dispositivos conectados: laptops, teléfonos, tablets, smart TVs, consolas de videojuegos, IoT… cualquier cosa que haga consultas DNS. No importa el sistema operativo ni el navegador.
Privacidad real. Al centralizar la resolución DNS en tu propia infraestructura, dejas de depender de los resolvedores DNS públicos que muchas veces venden tus datos de navegación. Tú controlas qué consultas pasan y cuáles no. Además, Pi-hole ofrece cuatro modos de privacidad que determinan qué información se guarda en los logs: desde registro completo hasta anonimización total de direcciones IP y dominios.
Rendimiento de red. Cada anuncio bloqueado es una petición HTTP que no se hace, un script que no se descarga, un rastreador que no se ejecuta. En redes con ancho de banda limitado (planes móviles, enlaces satelitales, conexiones compartidas), esto se traduce en una mejora tangible en la velocidad de navegación.
Caché DNS. Pi-hole almacena en caché las respuestas DNS exitosas respetando los TTL de cada registro. Esto significa que las consultas repetitivas a un mismo dominio se resuelven desde la caché local sin necesidad de alcanzar el upstream, reduciendo la latencia de resolución y el tráfico DNS saliente.
Estadísticas y visibilidad. Pi-hole incluye un panel web con estadísticas en tiempo real: qué dominios se consultan más, qué dispositivos generan más tráfico DNS, qué porcentaje de consultas se bloquean, qué upstream responde más rápido. Es una ventana a lo que realmente está pasando en tu red.
Cómo funciona el sinkhole DNS
Cuando un dispositivo de la red hace una consulta DNS:
- Pi-hole recibe la consulta y la evalúa contra sus listas de bloqueo (adlists).
- Si el dominio está en una adlist, responde inmediatamente con
NXDOMAINapuntando a0.0.0.0(IPv4) o::1(IPv6). El dispositivo nunca llega a contactar el servidor del anuncio o rastreador. - Si el dominio está en la whitelist, se salta las listas de bloqueo y se reenvía directamente al upstream.
- Si no está en ninguna lista, la consulta se reenvía (forwarding) al resolvedor upstream configurado, y la respuesta se almacena en caché para futuras consultas.
Este modelo de decisión en dos etapas (bloqueo local vs forwarding recursivo) es lo que hace a Pi-hole eficiente: las consultas a dominios no deseados se cortan de raíz, en milisegundos, sin consumir ancho de banda ni depender de servicios externos.
Cosas interesantes que puedes hacer con Pi-hole
1. Listas personalizadas (adlists). Pi-hole permite cargar múltiples listas de bloqueo de fuentes externas. Puedes combinarlas para cubrir publicidad, rastreadores, malware, phishing, dominios de telemetría, y más. Algunas listas populares: StevenBlack, OISD, Firebog, EasyList. Cada lista se actualiza automáticamente y Pi-hole las consolida en una sola base de datos de bloqueo.
2. Forwarding condicional. Pi-hole no solo bloquea — también decide a dónde reenviar las consultas que sí permite. Puedes configurar múltiples upstreams DNS y elegir entre forwarding estándar o DNS over HTTPS (DoH) para mayor privacidad en las consultas que salen de tu red.
3. Whitelist y blacklist con regex. No todo es blanco o negro. Pi-hole permite crear reglas con expresiones regulares para un control granular. Por ejemplo, puedes bloquear *.tracker.* pero permitir api.tracker.legitimo.com. Las regex se evalúan antes que las listas exactas, dándote control total sobre el orden de las decisiones.
4. DHCP integrado. Pi-hole puede funcionar como servidor DHCP, manteniendo toda la gestión de red en un solo lugar y asociando nombres de host a direcciones IP para un mejor diagnóstico en los logs. Esto permite ver en el panel no solo direcciones IP, sino nombres de dispositivo legibles.
5. API para integraciones. Pi-hole expone una API REST (api.php) que permite consultar estadísticas, gestionar listas, deshabilitar temporalmente el bloqueo y automatizar tareas. Ideal para integrar con paneles de monitoreo como Grafana, sistemas de alertas o scripts de automatización.
6. Deshabilitación temporal. Puedes deshabilitar el bloqueo por un período específico (30 segundos, 5 minutos, indefinido) desde el panel web o la API. Útil cuando un sitio legítimo no funciona correctamente porque depende de un dominio bloqueado y necesitas probar rápidamente.
7. Condiciones de grupo. Pi-hole permite asignar dispositivos a grupos y controlar qué listas de bloqueo aplican a cada grupo. Por ejemplo, puedes tener un grupo “Infantil” con listas más restrictivas y un grupo “Administración” con menos restricciones, todo desde la misma instancia.
En la práctica: DNS centralizado con sinkhole
En mi proyecto VPN + DNS - Infraestructura de Red Centralizada, Pi-hole es el corazón de la resolución DNS. La arquitectura se sostiene sobre dos instancias que operan como resolvedores autoritativos para toda la red:
- Pi-hole Admin (producción) — IP
10.2.2.100. Recibe todas las consultas DNS del segmento de red10.2.2.0/24, las filtra contra adlists y reenvía las permitidas a un upstream recursivo público con filtrado adicional. - Pi-hole Test — IP
10.2.2.200. Entorno aislado para validar adlists, whitelist, blacklist y upstreams alternativos sin afectar la resolución de los clientes activos en producción.
Ambos comparten el mismo upstream público recursivo y operan sobre el mismo segmento de red, pero el Pi-hole de pruebas permite ajustar políticas de filtrado antes de promoverlas a producción. Esto es especialmente valioso cuando se agregan listas nuevas: una adlist agresiva puede bloquear dominios legítimos, y tener un entorno de staging evita sorpresas.
El resultado: cualquier dispositivo en la red recibe la misma política de resolución DNS centralizada, sin importar desde dónde se conecte ni qué sistema operativo use. No hay que configurar DNS dispositivo por dispositivo. No hay que mantener listas de bloqueo en cada equipo. Todo se gestiona desde un solo punto.
Esta arquitectura elimina la necesidad de configurar resolución DNS por dispositivo, centraliza la política de filtrado en un solo punto y proporciona un entorno de staging (Pi-hole test) para ajustar adlists antes de promoverlas a producción.
Conclusión
Pi-hole es una de esas herramientas que, una vez que las pruebas, no entiendes cómo vivías sin ellas. Es ligero, gratuito, de código abierto, y tiene una comunidad activa que mantiene listas de bloqueo actualizadas constantemente. Ya sea en una Raspberry Pi en tu casa o como parte de una infraestructura contenerizada con múltiples instancias, Pi-hole ofrece un control sobre tu resolución DNS que simplemente no obtienes con soluciones comerciales.
Lo más valioso no es solo el bloqueo de anuncios — es la visibilidad. Saber qué dominios están consultando tus dispositivos, cuánto tráfico DNS genera cada uno, y tener la capacidad de decidir qué permitir y qué bloquear a nivel de red, es un nivel de control que cambia la forma en que entiendes y administras tu infraestructura.
Relacionado: - VPN + DNS - Infraestructura de Red Centralizada — Proyecto completo - Pi-hole.net — Sitio oficial - Docker Pi-hole — Repositorio oficial en GitHub