Qué hace Pi-hole en la práctica

Pi-hole no es un bloqueador de anuncios de navegador: es un resolvedor DNS. Todo dispositivo de tu red que use su dirección como servidor DNS pasa cada consulta por gravity, la lista compilada de dominios de publicidad y rastreo. Si el dominio está en la lista, Pi-hole responde con 0.0.0.0 en vez de reenviar la pregunta a Internet; si no lo está, la reenvía a un resolvedor real (en este lab, 1.1.1.1 y 8.8.8.8) y te devuelve la respuesta legítima. Por eso el bloqueo funciona igual en el navegador, en una app del móvil o en el firmware de una smart TV: no depende de una extensión instalada por dispositivo.

Por qué el contenedor necesita las variables FTLCONF_*

La versión 6 sustituyó variables de entorno como WEBPASSWORD por el prefijo FTLCONF_, que mapea directamente a las claves del fichero de configuración de FTL. En este lab fijamos la contraseña del panel con FTLCONF_webserver_api_password, abrimos el DNS a cualquier interfaz con FTLCONF_dns_listeningMode=ALL y, algo que se olvida a menudo, declaramos los resolvedores upstream con FTLCONF_dns_upstreams: sin esa variable Pi-hole no reenvía nada.

Complementa otras piezas de tu stack self-hosted

Ya vimos cómo instalar Pi-hole con Docker paso a paso y, si buscas una alternativa con su propio cifrado DNS-over-HTTPS integrado, repasa cómo instalar AdGuard Home con Docker. Encontrarás más piezas de infraestructura casera en la categoría Herramientas y el resto de procedimientos comprobados de principio a fin en nuestros laboratorios prácticos.

Referencias oficiales

Para el detalle de cada variable de entorno consulta el repositorio oficial de docker-pi-hole, para el comportamiento exacto del modo de bloqueo NULL la documentación de FTLDNS, y para las versiones publicadas de la imagen el repositorio en Docker Hub.

Preguntas frecuentes

¿Qué es Pi-hole y cómo bloquea anuncios a nivel de DNS?

Pi-hole es un resolvedor DNS que actúa como sinkhole: compara cada consulta con sus listas de dominios de publicidad y rastreo (gravity) y, si coincide, responde él mismo en lugar de reenviarla a Internet. El dispositivo nunca llega a contactar con el servidor del anuncio, así que este no llega a cargar, en cualquier app o dispositivo que use ese DNS.

¿Por qué un dominio bloqueado resuelve a 0.0.0.0 en lugar de fallar?

0.0.0.0 es el modo de bloqueo por defecto de Pi-hole, llamado NULL: es una dirección que ningún servicio real usa, así que la petición del navegador o la app falla al instante en lugar de quedarse esperando un tiempo de espera agotado. Es una respuesta rápida y predecible, no un error de red.

¿Hay que cambiar el DNS del router para bloquear anuncios en todos los dispositivos?

Para un bloqueo verdaderamente de toda la red, sí: apuntas el DNS del router a la IP del contenedor de Pi-hole y cada dispositivo que se conecte lo hereda automáticamente por DHCP. En este lab publicamos el puerto 53 y lo consultamos directamente con dig porque el contenedor no tiene una red de router real a la que apuntar.

¿Puedo ver el registro de consultas sin entrar al panel web?

Sí: Pi-hole v6 guarda cada consulta en una base SQLite (pihole-FTL.db) que puedes leer con pihole-FTL sqlite3 desde la línea de comandos, junto con el estado de cada una (bloqueada, reenviada o servida desde caché). El panel web solo visualiza esos mismos datos.