Llevaba tiempo usando Pi‑hole en otros sistemas y he decidido montarlo directamente en Proxmox, dentro de un contenedor LXC, para tener un bloqueador de anuncios y rastreadores a nivel de red, siempre encendido y fácil de actualizar.
Aquí dejo mis apuntes por si los necesito en el futuro.
1. Crear el contenedor LXC en Proxmox
- En el panel de Proxmox, botón derecho sobre el nodo → Create CT.
- Nombre del contenedor: por ejemplo
pihole.
- Usuario root y contraseña (guardar bien).
- Plantilla: Debian 12 (o la que use en ese momento).
- Disco: 8–16 GB suele sobrar para Pi‑hole.
- CPU/RAM: con 1 vCPU y 512–1024 MB de RAM basta para casa.
- Red:
- Asigno IP estática en la red LAN, por ejemplo
192.168.1.10/24.
- Puerta de enlace: mi router (
192.168.1.1).
- DNS inicial: puedo dejar el del router o 1.1.1.1/8.8.8.8, luego el propio Pi‑hole será su DNS.
Termino el asistente y arranco el contenedor.
2. Preparar el contenedor (Debian)
Entro por consola desde Proxmox o por SSH y actualizo:
bashapt update && apt upgrade -y
apt install -y curl sudo
Compruebo que tengo conectividad a Internet:
bashping -c 3 google.com
Si responde, sigo.
3. Instalar Pi‑hole
La forma más sencilla sigue siendo el instalador oficial de Pi‑hole:
bashcurl -sSL https://install.pi-hole.net | bash
Durante el asistente elijo:
- Interfaz de red: la que tenga el contenedor (normalmente
eth0).
- Dirección IP estática: la que le puse al CT (
192.168.1.10).
- DNS upstream: por ejemplo Cloudflare (1.1.1.1) o Quad9 (9.9.9.9).
- Bloqueo: dejo activada la lista por defecto y la interfaz web.
Al finalizar, el instalador muestra la URL de administración y la contraseña de pi-hole.
La URL suele ser:
http://192.168.1.10/admin
4. Acceder al panel web
Desde un navegador en la LAN abro:
http://192.168.1.10/admin
Y entro con la contraseña que ha dado el instalador.
Si la pierdo, puedo cambiarla con:
bashpihole -a -p
5. Añadir listas de bloqueo adicionales
Pi‑hole trae una lista por defecto (StevenBlack) que ya bloquea bastante, pero se puede añadir alguna más sin pasarse para evitar romper webs.
En el panel de Pi‑hole:
- Voy a Group Management → Adlists.
- En el campo Address añado algunas listas recomendadas (ejemplos):
- Lista “stock” de StevenBlack:text
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
- Listas “green” recomendadas de Firebog (poco problema con falsos positivos):
- Publicidad:text
https://v.firebog.net/hosts/AdguardDNS.txt
- Rastreo y telemetría:text
https://v.firebog.net/hosts/Prigent-Ads.txt
- Malware:text
https://v.firebog.net/hosts/Prigent-Malware.txt
- En Comment pongo algo descriptivo (StevenBlack, Firebog Ads, etc.).
- Me aseguro de que el Group sea “Default”.
- Guardo.
Después, actualizo la “gravity” (la base de datos de dominios):
- Menú Tools → Update Gravity → Update.
Pi‑hole descargará las listas y las aplicará.
6. Hacer que los clientes usen Pi‑hole
Para que tenga efecto, los dispositivos de la red tienen que usar la IP del contenedor como DNS.
Dos formas:
- Cambiar DNS en el router:
- DNS primario:
192.168.1.10 (IP de Pi‑hole).
- DNS secundario: opcional, pero si quiero forzar el uso de Pi‑hole puedo dejarlo vacío o poner otro Pi‑hole.
- Cambiar DNS manualmente en un dispositivo de prueba:
- En el PC/móvil pongo DNS
192.168.1.10 y pruebo a navegar.
En el panel de Pi‑hole, en la página de Dashboard, debería empezar a ver consultas y bloqueos.
7. Actualizar Pi‑hole y las listas
Pi‑hole tiene comandos sencillos para mantenerlo al día:
bashpihole -up
- Volver a actualizar las listas (gravity):
bashpihole -g
En la interfaz web también se puede lanzar desde Tools → Update Gravity.
8. Notas finales
- Si alguna web deja de funcionar (por ejemplo, no carga parte de una página), la suelo mirar en el visor de consultas y, si es necesario, añado el dominio a la lista blanca.
- Conviene no volverse loco añadiendo listas “agresivas”; con StevenBlack + algunas listas “green” de Firebog normalmente es suficiente para un uso doméstico.