HardwareHomelabNetworkingLinux

Pi-hole: bloquea anuncios en toda tu red casera

· · 10 min de lectura

Ver todo: Hardware & Homelab

Los bloqueadores de anuncios del navegador son parches. Bloquean publicidad en un dispositivo, en un navegador, siempre y cuando el usuario los haya instalado. Tu televisor inteligente sigue enviando telemetría. Tu consola sigue cargando anuncios. Los dispositivos IoT siguen contactando servidores de rastreo. Y cuando alguien en tu casa abre Safari en su iPhone sin extensiones, ve todo.

Pi-hole resuelve esto de raíz: actúa como servidor DNS de tu red local e intercepta las peticiones hacia dominios conocidos de publicidad y rastreo antes de que el paquete siquiera salga a internet. El resultado es bloqueo de anuncios en todos los dispositivos conectados — sin instalar nada en ninguno de ellos.

Lo esencial antes de instalar

  • Pi-hole opera a nivel DNS — bloquea antes de que el request llegue al servidor de anuncios, no después de que llegue al navegador
  • Cubre toda la red — smartphones, smart TVs, consolas, tablets, dispositivos IoT sin tocar ninguno individualmente
  • Hardware mínimo: funciona en una Raspberry Pi Zero 2W, en un contenedor Docker sobre cualquier Linux, o en una VM
  • Pi-hole v6 (junio 2026) eliminó lighttpd y ahora incluye su propio servidor web integrado — instalación más simple
  • No bloquea el 100% de los anuncios — los anuncios embebidos en el mismo dominio que el contenido (Google Search Ads, YouTube pre-roll) no se pueden filtrar por DNS
  • IP estática en el servidor es obligatoria — si la IP de Pi-hole cambia, toda tu red pierde DNS

Si quieres ver más opciones de hardware y proyectos para tu homelab, visita Hardware & Homelab en GeekShop.


Por qué DNS y no una extensión del navegador

Para entender por qué Pi-hole es diferente, necesitas entender cómo funciona una petición a un servidor de anuncios.

Cuando tu navegador carga una página con publicidad, antes de hacer cualquier conexión HTTP tiene que resolver el nombre del servidor de anuncios a una dirección IP. Esa resolución pasa por el servidor DNS configurado en tu sistema. Normalmente es el de tu ISP o los de Google/Cloudflare.

Pi-hole se coloca en ese paso. Toma esa petición DNS, verifica el dominio contra sus listas de bloqueo (las “gravity lists”), y si coincide responde con una dirección vacía o con la IP local del propio Pi-hole. El cliente recibe una respuesta “no existe” o una página en blanco, y nunca llega a conectarse con el servidor de anuncios.

CÓMO FUNCIONA

El bloqueo ocurre antes de que el paquete salga de tu red

El flujo completo es: dispositivo hace petición DNS → Pi-hole recibe la petición → consulta su base de datos (gravity) → si el dominio está bloqueado, responde con NXDOMAIN o 0.0.0.0 → el dispositivo nunca establece conexión con el servidor de anuncios.

Esto tiene consecuencias importantes. Primero, el ahorro de ancho de banda es real: las peticiones bloqueadas no llegan a internet, así que no consumes datos descargando recursos de anuncios. Segundo, funciona en cualquier protocolo — no solo HTTP/HTTPS en navegadores, sino cualquier aplicación que use DNS para resolver nombres. La telemetría de tu smart TV, las analíticas de tu consola, los pings de tus dispositivos IoT.

La desventaja es también consecuencia del mismo mecanismo: solo puede bloquear por dominio completo. Si el servidor de anuncios comparte dominio con el contenido (como ocurre con los anuncios propios de Google en google.com, o los pre-roll de YouTube servidos desde youtube.com), Pi-hole no puede discriminar y no bloquea esas peticiones.


Hardware recomendado para Pi-hole

Pi-hole no necesita hardware potente. El componente FTL (Faster Than Light), el motor de resolución DNS escrito en C, responde queries en microsegundos y tiene un footprint de memoria de menos de 50 MB en instalaciones típicas.

PLATAFORMAS

Desde una Raspberry Pi hasta un contenedor Docker

Las opciones más comunes para correr Pi-hole:

Raspberry Pi (cualquier modelo con ethernet): La combinación histórica. Una Raspberry Pi Zero 2W (~$15 USD) es suficiente para una red doméstica de 30-50 dispositivos. Una Pi 4 o Pi 5 es overkill para solo Pi-hole, pero tiene sentido si también corres otros servicios en el mismo hardware.

Mini-PC con Linux / Docker: Si ya tienes un servidor homelab corriendo, Pi-hole como contenedor Docker es la ruta más simple. Consumes cero hardware adicional, y la gestión vía Docker Compose facilita las actualizaciones.

VM en Proxmox: Si tienes Proxmox, una VM Debian/Ubuntu pequeña (1 vCPU, 512 MB RAM) es perfecta. Obtienes aislamiento completo y puedes hacer snapshots antes de actualizar.

VPS barato: Técnicamente funciona, pero añade latencia a todas las resoluciones DNS de tu red y expone el servicio a internet, lo que requiere configuración de firewall cuidadosa. Para uso doméstico, la opción local siempre es mejor.

La regla es simple: el servidor donde corra Pi-hole debe tener IP estática dentro de tu red (o reserva DHCP en el router). Sin esto, cuando la IP cambie, todos los dispositivos configurados para usar Pi-hole perderán DNS.


Instalación en Linux (método bare-metal)

Pi-hole se instala con un solo comando. En junio de 2026, la versión estable es Core v6.4.2 / FTL v6.6.2 / Web v6.5, que introdujo el servidor web embebido propio — ya no depende de lighttpd.

curl -sSL https://install.pi-hole.net | bash

El instalador interactivo te pregunta:

  1. Interfaz de red a usar (selecciona la que tiene conectividad — eth0 si estás en Raspberry Pi con cable)
  2. Servidor DNS upstream para peticiones no bloqueadas (Cloudflare 1.1.1.1, Google 8.8.8.8, Quad9 9.9.9.9, o cualquier otro)
  3. Listas de bloqueo por defecto (StevenBlack’s Unified Hosts — recomendado para empezar)
  4. Si quieres instalar la interfaz web de administración (sí, siempre)
  5. Si quieres habilitar logging de queries (sí para empezar — te da visibilidad total)

Al terminar, el instalador te muestra la URL de la interfaz web y la contraseña generada. Guarda ambas.

  1. Verifica que Pi-hole responde correctamente

    Prueba que el servidor DNS bloquea correctamente desde la misma máquina:

    # Dominio que debería resolverse normalmente
    dig @127.0.0.1 github.com
    
    # Dominio de anuncios que debería ser bloqueado
    dig @127.0.0.1 doubleclick.net

    La respuesta de doubleclick.net debería ser 0.0.0.0 o NXDOMAIN.

  2. Configura la IP estática del servidor

    Antes de apuntar tu red a Pi-hole, asegúrate de que el servidor donde está instalado tiene IP fija. Lo más simple en una red doméstica es crear una reserva DHCP en tu router, asociando la MAC address del servidor a una IP específica.

    Evita configurar la IP estática directamente en el sistema operativo si tu router no lo requiere — la reserva DHCP es más portable y más fácil de cambiar.

  3. Apunta tu red a Pi-hole como servidor DNS

    La forma más efectiva: entra a la configuración de tu router y cambia el servidor DNS primario que el DHCP entrega a los clientes. Usa la IP de tu Pi-hole. Deja el secundario en blanco o usa un DNS externo como fallback (si el Pi-hole cae, quieres que la red siga resolviendo).

    Si tu router no permite cambiar el DNS entregado por DHCP (algunos routers de ISP están restringidos), tendrás que configurar Pi-hole como DNS manualmente en cada dispositivo.

  4. Actualiza la base de datos de bloqueo (gravity)

    La gravity database es el corazón de Pi-hole — contiene todos los dominios a bloquear. Se actualiza automáticamente, pero puedes forzar una actualización manual desde la interfaz web (Gravity → Update) o desde terminal:

    pihole -g

    La instalación por defecto incluye la lista de StevenBlack, que cubre unos 130,000 dominios de publicidad, rastreo y malware. En instalaciones con listas adicionales, es común llegar a 1-3 millones de dominios bloqueados.


Instalación con Docker Compose

Si tu servidor homelab ya corre Docker, esta es la ruta más limpia. No contaminas el sistema base, las actualizaciones son triviales y el rollback es instantáneo.

# compose.yaml — Pi-hole en Docker
services:
  pihole:
    image: pihole/pihole:2026.06.0
    container_name: pihole
    restart: unless-stopped
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "80:80/tcp"
    environment:
      TZ: "America/Mexico_City"
      WEBPASSWORD: "cambia-esto-por-una-password-segura"
    volumes:
      - ./pihole/etc-pihole:/etc/pihole
      - ./pihole/etc-dnsmasq.d:/etc/dnsmasq.d
    cap_add:
      - NET_ADMIN
docker compose up -d

Gotcha importante en Ubuntu y Debian modernos: el servicio systemd-resolved usa el puerto 53 por defecto. Si ves un error de “puerto ya en uso” al levantar el contenedor, tienes que deshabilitar el stub resolver de systemd:

sudo sed -i 's/#DNSStubListener=yes/DNSStubListener=no/' /etc/systemd/resolved.conf
sudo systemctl restart systemd-resolved

Tabla comparativa: Pi-hole vs AdGuard Home vs bloqueo en router

Característica Pi-hole v6 AdGuard Home Blocklist en router
Bloqueo a nivel DNS Depende del firmware
Interfaz web Sí, integrada Sí, integrada Varía
Soporte DoH/DoT upstream Sí (via dnsmasq) Sí, nativo Raro
Configuración por cliente Grupos y clientes Por cliente No
Logs de queries Sí, detallados Sí, detallados Limitados
Antigravity (allowlist suscrita) Sí (v6+) No No
Instalación en Docker Imagen oficial Imagen oficial N/A
Comunidad Muy grande Grande N/A
Licencia EUPL 1.2 GPL 3.0 Propietario
Pi-hole no bloquea anuncios que comparten dominio con el contenido — YouTube pre-roll y Google Search Ads no desaparecen. Eso no es un bug, es una limitación inherente del filtrado DNS.

Errores comunes al instalar Pi-hole


La interfaz web de Pi-hole v6 incluye estadísticas en tiempo real de queries resueltos y bloqueados, log filtrable y gestión de listas — sin dependencia externa de lighttpd desde v6.

Pi-hole como primer proyecto de homelab

Si estás considerando armar tu primer homelab y no sabes por dónde empezar, Pi-hole es la respuesta estándar por buenas razones: el beneficio es tangible desde el primer minuto (menos anuncios en todos tus dispositivos), el hardware requerido es mínimo, y el proceso de instalación obliga a entender conceptos fundamentales de redes — DNS, DHCP, IP estática, NAT — que se usan en cualquier proyecto más complejo.

Para contexto sobre qué hardware elegir y qué más puedes correr en el mismo servidor, revisa la guía para empezar tu homelab. Si el siguiente paso que tienes en mente es almacenamiento centralizado, la guía para montar un NAS casero cubre TrueNAS, OpenMediaVault, RAID y la regla 3-2-1 de respaldos.


FAQ

¿Pi-hole funciona con la mayoría de routers domésticos?

Sí, siempre que tu router permita cambiar el servidor DNS que entrega a los clientes via DHCP. La mayoría de routers de marcas como TP-Link, ASUS, Netgear, Ubiquiti y similares lo permiten. Los routers de ISP (los que te presta el proveedor de internet) frecuentemente bloquean esta opción. En ese caso puedes configurar Pi-hole manualmente en cada dispositivo, o conectar tu propio router en cascada.

¿Cuántos dominios bloquea Pi-hole por defecto?

La instalación por defecto incluye la lista de StevenBlack Unified Hosts, que cubre alrededor de 130,000 dominios. Con listas adicionales de comunidades como OISD, hagezi o AdGuard List, es común llegar a 1-3 millones de dominios bloqueados. Más dominios no siempre es mejor — más listas agresivas significan más falsos positivos.

¿Pi-hole afecta la velocidad de internet?

En la práctica, no. La resolución DNS con Pi-hole en una red local es más rápida que con un servidor externo porque el servidor está a microsegundos de latencia en lugar de decenas de milisegundos. La percepción de velocidad puede incluso mejorar porque el navegador no espera cargar recursos publicitarios bloqueados.

¿Puedo correr Pi-hole en el mismo servidor que mi NAS o servidor de medios?

Sí, especialmente si usas Docker. Pi-hole como contenedor consume menos de 100 MB de RAM en uso típico y prácticamente cero CPU fuera de los momentos de actualización de gravity. Puede coexistir sin problemas con Jellyfin, Nextcloud o cualquier otro servicio en el mismo host, siempre y cuando el puerto 53 esté disponible para Pi-hole.

¿Cómo actualizo Pi-hole?

En instalación bare-metal:

pihole updatePihole

En Docker, cambia el tag de imagen en tu compose.yaml a la versión más reciente y ejecuta docker compose pull && docker compose up -d. La gravity database (lista de bloqueo) se actualiza automáticamente via cron semanalmente, o manualmente con pihole -g.

Fuentes

La información sobre Pi-hole se apoya en la fuente oficial del proyecto:

  • Pi-holePi-hole (bloqueador de anuncios a nivel de red)

¿Te late lo que viene?

Regístrate y entérate cuando abramos.

Avísenme cuando abran