Pi-hole es un servidor DNS que bloquea publicidad y rastreadores a nivel de red: sin instalar nada en los dispositivos, sin extensiones de navegador, funcionando en móviles, smart TVs y cualquier dispositivo conectado. Funciona en una Raspberry Pi, en un VPS o en Docker.
Instalación
En Raspberry Pi / Ubuntu
curl -sSL https://install.pi-hole.net | bash
El asistente te preguntará:
- Interfaz de red (generalmente
eth0owlan0) - Proveedor DNS upstream (recomendado: Cloudflare 1.1.1.1 o Quad9 9.9.9.9)
- Listas de bloqueo (acepta las predeterminadas para empezar)
- IP estática (Pi-hole necesita IP fija)
Con Docker
version: '3.8'
services:
pihole:
image: pihole/pihole:latest
restart: unless-stopped
hostname: pihole
ports:
- "53:53/tcp"
- "53:53/udp"
- "80:80/tcp"
environment:
TZ: Europe/Madrid
WEBPASSWORD: "tu_contraseña_web"
PIHOLE_DNS_: "1.1.1.1;9.9.9.9"
DNSSEC: "true"
DNSMASQ_LISTENING: "all"
volumes:
- ./etc-pihole:/etc/pihole
- ./etc-dnsmasq:/etc/dnsmasq.d
cap_add:
- NET_ADMIN
docker compose up -d
Configurar los dispositivos para usar Pi-hole
Opción 1: Configurarlo en el router (recomendado)
En la configuración DHCP de tu router, cambia el servidor DNS al de Pi-hole:
- DNS primario: IP de Pi-hole (ej: 192.168.1.200)
- DNS secundario: déjalo vacío (o pon la misma IP dos veces)
Así todos los dispositivos de la red usarán Pi-hole automáticamente sin configurar nada en cada uno.
Opción 2: Manualmente en cada dispositivo
sudo nano /etc/resolv.conf
En Windows: Panel de control → Red → Propiedades → TCP/IPv4 → DNS preferido: IP de Pi-hole.
Listas de bloqueo recomendadas
En la UI: Adlists → añade las siguientes URLs:
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt
https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt
https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews+gambling+porn+social/hosts
https://urlhaus.abuse.ch/downloads/hostfile/
Tras añadir listas: Tools → Update Gravity para actualizar la base de datos.
Gestión desde la interfaz web
- Dashboard: peticiones totales, bloqueadas, clientes activos y top dominios bloqueados.
- Query Log: ver en tiempo real qué dominios consulta cada dispositivo.
- Whitelist/Blacklist: añadir excepciones para dominios que Pi-hole bloquea incorrectamente.
- Groups: diferentes políticas de bloqueo para distintos grupos de dispositivos (ej: más restrictivo para dispositivos de niños).
Gestión desde la línea de comandos
pihole -c # estadísticas en tiempo real
pihole -g # actualizar listas de bloqueo
pihole -w ads.miempresa.com
pihole -b dominio-malicioso.com
pihole -t # tail del log en tiempo real
pihole disable 300
pihole enable
Pi-hole como servidor DHCP (opcional)
Si tu router no permite cambiar el DNS fácilmente, Pi-hole puede actuar también como servidor DHCP y asignarse como DNS a todos los clientes:
Settings → DHCP → habilitar servidor DHCP de Pi-hole → desactivar DHCP en el router.
DNS-over-HTTPS con Cloudflared
Para cifrar las consultas DNS entre Pi-hole e internet:
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64
sudo mv cloudflared-linux-arm64 /usr/local/bin/cloudflared
sudo chmod +x /usr/local/bin/cloudflared
sudo tee /etc/cloudflared/config.yml << 'CONF'
proxy-dns: true
proxy-dns-port: 5053
proxy-dns-upstream:
- https://1.1.1.1/dns-query
- https://1.0.0.1/dns-query
CONF
sudo systemctl enable --now cloudflared
Resultados típicos
En una red doméstica o de oficina típica, Pi-hole bloquea entre el 15% y el 30% de todas las peticiones DNS: anuncios, rastreadores, telemetría de aplicaciones y conexiones a dominios potencialmente maliciosos.
Pi-hole es una de las mejores inversiones de tiempo en un home lab: 20 minutos de configuración y toda la red tiene bloqueo de publicidad, mejora de privacidad y una capa extra de seguridad contra dominios maliciosos. En entornos de empresa, añadir listas de dominios de malware conocidos convierte Pi-hole en una primera línea de defensa DNS muy efectiva.
