Cómo usar Pi-hole en una Raspberry Pi para bloquear publicidad

Última actualización: 28/01/2026
Autor: Isaac
  • Pi-hole actúa como servidor DNS filtrante en la Raspberry Pi para bloquear anuncios, rastreadores y dominios maliciosos a nivel de red.
  • La instalación requiere una Raspberry Pi con Raspberry Pi OS actualizado, conexión estable a Internet y configuración de IP estática.
  • Configurar el router o el DHCP para que use la IP de la Raspberry como DNS permite que todos los dispositivos pasen por Pi-hole sin configuraciones individuales.
  • El filtrado se puede reforzar con listas negras adicionales, DNS seguros como 1.1.1.1 for Families y DNS-over-HTTPS mediante cloudflared.

Instalar Pi-hole en Raspberry Pi

Si tienes una Raspberry Pi cogiendo polvo en un cajón, convertirla en un bloqueador de publicidad para toda tu red con Pi-hole es probablemente una de las mejores formas de darle una segunda vida. En pocas horas puedes tener un filtro de anuncios, rastreadores y dominios maliciosos funcionando para todos tus dispositivos sin tener que instalar extensiones en cada navegador.

Más allá de ahorrarte unos cuantos banners molestos, Pi-hole se ha vuelto muy popular porque ayuda a proteger la privacidad a nivel de DNS, evitando que un montón de empresas recopilen datos de tu navegación. Vamos a ver, paso a paso y con todo lujo de detalles, cómo usar Pi-hole en una Raspberry Pi: desde los prerrequisitos y la instalación, hasta configuraciones avanzadas como listas negras adicionales o DNS-over-HTTPS.

Qué es Pi-hole y por qué merece la pena montarlo en una Raspberry Pi

Pi-hole es, en esencia, un servidor DNS que filtra peticiones antes de que lleguen a Internet. Cuando un dispositivo de tu red quiere cargar un anuncio o contactar con un servidor de rastreo, la petición DNS pasa por Pi-hole, que consulta sus listas de bloqueo y, si el dominio está vetado, responde con una dirección inexistente o local, de modo que el anuncio nunca llega a descargar contenido.

Esta solución está compuesta por varias herramientas de software libre que trabajan juntas: un servidor ligero DNS/DHCP (antes dnsmasq, ahora integrado en FTL), un servidor web como lighttpd, PHP para la interfaz de administración y un panel basado en AdminLTE que permite ver estadísticas y gestionar la configuración desde el navegador.

Instalarlo en una Raspberry Pi tiene todo el sentido del mundo porque hablamos de un dispositivo de bajo consumo, silencioso y siempre encendido. Incluso una Raspberry Pi antigua con 512 MB de RAM va sobrada para manejar las peticiones DNS de una red doméstica normal, así que es una forma perfecta de aprovechar hardware que ya tienes en casa.

Pi-hole se apoya en listas negras de dominios con mala reputación (publicidad, malware, phishing, spam, tracking…) y permite añadir listas adicionales de terceros para afinar el filtrado. Además, se puede combinar con servicios de DNS filtrados (como 1.1.1.1 for Families) o con DNS-over-HTTPS para que las consultas vayan cifradas hasta el proveedor.

Prerrequisitos para usar Pi-hole en una Raspberry Pi

Antes de ponerte a teclear comandos, conviene asegurarte de que cumples una serie de requisitos básicos de hardware y red para que la instalación sea fluida y el sistema sea estable.

Lo primero que vas a necesitar es una Raspberry Pi con al menos 512 MB de RAM. Prácticamente cualquier modelo actual (desde la Raspberry Pi 2 en adelante, incluyendo Pi 3, 3B+, 4, etc.) sirve sin problemas. Incluso las más antiguas son capaces de gestionar Pi-hole sin despeinarse, siempre que no les pidas otras tareas pesadas.

En cuanto al almacenamiento, basta con una tarjeta SD con un mínimo de 2 GB libres, aunque en la práctica lo habitual es usar tarjetas de 8, 16 o 32 GB. El consumo de espacio de Pi-hole es muy bajo: lo que más ocupan son los logs si dejas largo histórico de consultas, pero para un uso doméstico no tendrás apuros.

Tu Raspberry Pi debe tener una conexión estable a Internet, ya sea por Wi-Fi o cable Ethernet. Si puedes elegir, el cable es más recomendable para evitar cortes, sobre todo si Pi-hole también va a hacer de servidor DHCP y quieres que sea el “cerebro” de la red.

También es muy importante que tengas acceso al panel de administración de tu router. Necesitarás entrar a la configuración para indicar que el DNS de la red es la IP de tu Raspberry Pi, o para desactivar el DHCP del router en caso de que quieras que Pi-hole gestione también ese servicio. Si no sabes cómo entrar, revisa el manual de tu router o la pegatina de la parte inferior, donde suelen venir la IP y las credenciales por defecto.

Preparar la Raspberry Pi y su sistema operativo

Para que Pi-hole funcione sin problemas, es recomendable partir de una instalación limpia y actualizada de Raspberry Pi OS (Raspbian). Puedes optar por la versión Lite (sin entorno gráfico) si solo la vas a usar como servidor, lo que ahorra recursos y hace el sistema más ligero.

En muchos casos lo más rápido es usar la herramienta oficial Raspberry Pi Imager, disponible para Windows, macOS y Linux, que permite seleccionar el modelo de Pi, el sistema operativo y el medio de instalación (tarjeta SD o disco USB externo) de forma muy guiada.

Si ya tenías una Pi vieja con una versión antigua de Raspbian (por ejemplo, basada en Debian Jessie), es posible que tengas que ajustar los repositorios a los repositorios legacy para poder actualizar. Esto implica editar el archivo /etc/apt/sources.list para añadir entradas del tipo deb http://legacy.raspbian.org/raspbian/ jessie main contrib y después lanzar una actualización completa con sudo apt-get update && sudo apt-get upgrade seguido de un reinicio.

En determinados modelos como la Raspberry Pi 3B es frecuente querer arrancar desde una unidad USB externa en lugar de una microSD, bien por rendimiento o porque es la unidad que tienes a mano. En estos casos se puede configurar el modo de arranque USB editando el archivo /boot/config.txt y añadiendo la línea program_usb_boot_mode=1, reiniciando y comprobando con vcgencmd otp_dump | grep 17: que la opción se ha activado correctamente.

  Cómo cambiar el orden de arranque en dual boot Windows y Linux

Una vez que tengas el sistema funcionando desde la unidad elegida, conviene realizar una actualización completa del sistema con los clásicos comandos sudo apt-get update && sudo apt-get upgrade para asegurarte de que tienes todos los parches de seguridad y paquetes al día antes de instalar Pi-hole.

Acceso remoto, SSH y configuración inicial del sistema

Para gestionar tu Raspberry Pi cómodamente lo ideal es habilitar acceso remoto por SSH, de modo que no tengas que tenerla conectada permanentemente a un monitor, teclado y ratón. Así podrás administrarla desde tu ordenador principal mediante un terminal o herramientas como PuTTY en Windows.

Desde Raspberry Pi OS puedes activar el servidor SSH usando la herramienta de configuración raspi-config, entrando en el menú de Interfacing Options y activando la opción SSH. El sistema te confirmará que el servicio queda habilitado y, a partir de ese momento, podrás conectarte desde la red local utilizando la IP de la Pi.

Para saber qué dirección IP tiene asignada tu Raspberry Pi en la red, puedes usar el comando hostname -I en la propia terminal de la Pi. Anota esa IP porque la necesitarás tanto para conectarte por SSH como más adelante para acceder a la interfaz web de Pi-hole.

Si usas Windows, una forma muy habitual de conectarse es mediante PuTTY como cliente SSH, introduciendo la IP de la Raspberry, el puerto 22 y las credenciales del usuario configurado en el primer arranque. Desde Linux o macOS, basta con un ssh usuario@direccion_IP desde la terminal.

No olvides realizar algunos ajustes básicos de seguridad como cambiar la contraseña por defecto del usuario que usas para entrar en la Raspberry Pi y, si quieres ser un poco más fino, limitar servicios innecesarios o hacer que el sistema arranque por defecto en modo consola en lugar de entorno gráfico para ahorrar recursos.

Instalar Pi-hole en la Raspberry Pi

Con la Raspberry Pi actualizada, accesible por SSH y conectada a Internet, llega el momento de instalar Pi-hole propiamente dicho. Hay varios enfoques: un instalador automático de una línea o un proceso más manual descargando el código desde GitHub.

La forma más popular y rápida es usar el instalador automatizado de una línea. Antes de nada, asegúrate de tener curl instalado ejecutando sudo apt-get install curl. Una vez comprobado, puedes lanzar la instalación con:

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

Este comando descarga y ejecuta el script oficial de instalación, que te irá guiando a través de un asistente interactivo para configurar los puntos clave: proveedor DNS superior, listas de bloqueo, modo de privacidad, IP estática, etc. Es muy cómodo, pero hay que ser consciente de que implica ejecutar directamente un script remoto, algo que a algunos administradores no les entusiasma por motivos de seguridad.

Si prefieres tener más control, puedes optar por una instalación semimanual descargando el proyecto desde GitHub. Para ello, instala git con sudo apt install git y después clona el repositorio con git clone –depth 1 https://github.com/pi-hole/pi-hole.git Pi-hole. Una vez clonado, entra en la carpeta Pi-hole/automated install/ y ejecuta sudo bash ./basic-install.sh para lanzar el mismo instalador pero desde código que tienes almacenado localmente.

El script de instalación se encargará de verificar dependencias y paquetes necesarios (lighttpd, PHP, FTL, etc.), descargarlos si hace falta y configurar los servicios. A lo largo del proceso te pedirá que escojas un proveedor de DNS upstream, como Google, Cloudflare, Quad9 u otros, que será el servidor al que Pi-hole reenviará las consultas de dominios que no estén bloqueados.

Durante el asistente también se define si la Raspberry Pi tendrá una dirección IP estática. Es fundamental que Pi-hole mantenga siempre la misma IP interna, ya que todos tus dispositivos y/o el router se configurarán para enviar las peticiones DNS a esa dirección. Puedes fijar la IP en el propio instalador o reservarla desde el servidor DHCP de tu router.

Al final de la instalación, el asistente mostrará de forma destacada la dirección de acceso a la interfaz web y la contraseña de administración. Es muy importante que apuntes esta información porque la necesitarás para entrar al panel y hacer cambios posteriores. De todos modos, siempre podrás cambiar la contraseña más adelante con el comando pihole -a -p.

Solución de errores frecuentes durante la instalación (FTL, DNS, etc.)

En la mayoría de casos la instalación termina sin problemas, pero puede ocurrir que te encuentres con mensajes del tipo “Error unable to get latest release location from GitHub – FTL Engine not installed”. Esto suele indicar que durante la instalación se han quedado sin DNS funcional y Pi-hole no puede descargar el componente FTL.

El motivo típico es que el archivo /etc/resolv.conf se ha quedado sin servidores DNS válidos o apunta a 127.0.0.1 cuando todavía no está funcionando Pi-hole. Para salir del atasco, edita ese archivo con sudo nano /etc/resolv.conf y establece una línea como nameserver 8.8.8.8, o bien 1.1.1.1 o 9.9.9.9, según el DNS público que prefieras usar de manera temporal.

Si te encuentras que en resolv.conf ya tienes nameserver 127.0.0.1, basta con sustituirlo por uno de los DNS públicos comentados. Guarda los cambios con la combinación de teclas de nano (Ctrl+O para escribir el archivo y Ctrl+X para salir) u otro editor que prefieras como vim. Luego repite el comando de instalación de Pi-hole para que pueda descargar correctamente FTL y el resto de componentes.

  Cómo conocer el hostname asociado a una dirección IP: métodos y consejos prácticos

Otro punto delicado es asegurarte de que la Raspberry Pi tiene salida a Internet y horario correctamente configurado. Una zona horaria incorrecta o un desfase importante entre la hora del sistema y la real pueden hacer que fallen comprobaciones TLS de los servidores remotos. Por eso es recomendable ajustar la zona horaria y verificar que la hora es correcta antes de lanzar la instalación.

Una vez resuelto cualquier problema con FTL y DNS, podrás terminar el asistente y acceder con normalidad a la consola de administración web, donde ya podrás comprobar en el dashboard si se están registrando consultas DNS y bloqueos en tiempo real.

Primeros pasos tras instalar Pi-hole: acceso web y contraseña

Con Pi-hole ya instalado, el siguiente paso natural es entrar en la interfaz web de administración para revisar que todo está en orden y ajustar la configuración a tu gusto. Por defecto, la consola se encuentra en la URL http://IP_DE_TU_PI/admin, sustituyendo IP_DE_TU_PI por la dirección local de tu Raspberry Pi.

La primera vez que accedas, se te pedirá la contraseña que el instalador mostró al finalizar. Si no la apuntaste o quieres cambiarla por algo más fácil de recordar (pero igualmente seguro), puedes hacerlo desde la terminal de la Pi ejecutando pihole -a -p, que te permitirá definir una nueva clave de acceso.

Una vez dentro, el panel principal muestra estadísticas muy visuales sobre peticiones totales, dominios bloqueados, porcentajes de bloqueo y los clientes que más consultan el DNS. Es una buena forma de verificar, en cuestión de segundos, que la Raspberry está respondiendo peticiones y que el filtrado está activo.

En el menú lateral encontrarás secciones para gestionar listas de bloqueo, listas blancas, configuración DNS, DHCP, actualizaciones y muchas más opciones. Lo recomendable es dar primero un vistazo general sin tocar nada crítico y asegurarte de que el sistema, tal y como ha quedado tras el asistente, ya está haciendo su trabajo con las listas por defecto.

Desde el panel también puedes activar o desactivar Pi-hole temporalmente, por ejemplo si necesitas probar una web concreta que crees que está siendo bloqueada indebidamente. Esta función de pausa es muy útil para resolver falsos positivos sin tener que desmontar toda la configuración de DNS en tus dispositivos.

Configurar la red para que todos los dispositivos usen Pi-hole

Para que Pi-hole tenga sentido, no basta con tenerlo funcionando en la Raspberry Pi; es imprescindible que todos los dispositivos de tu red envíen sus peticiones DNS a la IP de Pi-hole. Hay dos formas principales de conseguirlo: a través del router (vía DHCP) o configurando manualmente el DNS en cada equipo.

La opción más cómoda es entrar en el panel de administración del router y cambiar el servidor DNS primario que entrega el DHCP. Normalmente, en una sección de LAN o DHCP encontrarás campos como “Servidor DNS primario” y “Servidor DNS secundario”. En el primero debes introducir la IP de tu Raspberry Pi con Pi-hole. Algunos routers también permiten dejar en blanco el DNS secundario o colocar un DNS externo de respaldo, aunque si haces esto último es posible que ciertas consultas se salten el filtro.

En routers de marcas como Asus, este ajuste suele estar en la pestaña de Servidor DHCP dentro de la configuración de LAN. Cambiando ese valor y guardando los cambios, los próximos dispositivos que renueven o obtengan una nueva concesión IP empezarán a usar Pi-hole como resolutor DNS por defecto.

Si por cualquier motivo no puedes modificar la configuración DNS del router (por ejemplo, en equipos de operador muy capados), queda la alternativa de configurar el DNS manualmente en cada dispositivo. En la configuración de red de tu ordenador, móvil, consola, Smart TV, etc., puedes especificar como DNS primario la IP de la Raspberry. Es algo más laborioso, pero garantiza que ese dispositivo concreto se beneficia del filtrado.

Otra posibilidad es dejar que Pi-hole actúe también como servidor DHCP principal de la red. En este escenario, tendrías que desactivar el servicio DHCP del router y activar el de Pi-hole desde “Settings -> DHCP”. A partir de ahí, será Pi-hole quien asigne IPs y DNS a los equipos que se conecten. Es una solución muy limpia, pero requiere asegurarte de que solo hay un servidor DHCP en la red para evitar conflictos.

Tras cambiar la configuración, es buena idea forzar en tus dispositivos una renovación de la concesión de red (apagando y encendiendo Wi-Fi, desconectando y conectando el cable o reiniciando el dispositivo) para que recojan los nuevos parámetros de DNS y comiencen a pasar por Pi-hole.

Mantenimiento, actualizaciones y ajustes de seguridad

Una vez que tu red ya está usando Pi-hole, es importante no olvidarse de mantener el sistema al día para beneficiarte de mejoras y parches de seguridad. El propio Pi-hole incluye un comando muy sencillo para actualizar tanto el core como la web y FTL: pihole -up.

Si quieres simplemente comprobar si hay actualizaciones sin instalarlas de inmediato, puedes usar el mismo comando con el parámetro –check-only. Esto te mostrará si existen nuevas versiones disponibles de los distintos componentes sin tocar la instalación actual.

Para automatizar el proceso hay quien prefiere añadir una entrada en el crontab de root ejecutando pihole -up una vez a la semana a una hora en la que apenas se use la red, por ejemplo los lunes a las 5 de la mañana. De esta forma, las mejoras se aplican solas sin necesidad de acordarse de lanzar manualmente el comando.

No olvides que, más allá de Pi-hole, también conviene mantener Raspberry Pi OS y el resto de paquetes del sistema actualizados con los clásicos sudo apt-get update && sudo apt-get upgrade de vez en cuando. Así reduces riesgos de seguridad en el propio sistema operativo.

  Cómo listar LWPs y procesos en Linux y controlarlos al detalle

Desde el punto de vista de seguridad, además de cambiar la contraseña de la interfaz web de Pi-hole y la de acceso a la Raspberry, puedes considerar restringir el acceso al panel web únicamente a la red local y evitar exponerlo a Internet. Si necesitas administración remota desde fuera, siempre es mejor usar un túnel VPN o SSH que abrir el puerto de la consola web.

Listas negras adicionales y afinado del filtrado

Las listas de bloqueo que vienen por defecto en Pi-hole ya ofrecen un nivel de protección contra anuncios y rastreo bastante decente, pero muchos usuarios deciden ir un paso más allá añadiendo listas externas especializadas. Esto permite bloquear no solo publicidad, sino también dominios relacionados con malware, phishing, ransomware o spam.

Una de las fuentes populares de listas es The Blocklist Project, que ofrece colecciones de dominios clasificadas por categorías como ads, malware, phishing, spam, tracking y otras. Cada lista se suministra en forma de URL que puedes copiar y pegar en la configuración de Pi-hole para que se descargue y utilice como origen de bloqueo.

Para añadir listas adicionales, basta con ir en la interfaz web de Pi-hole a “Settings -> Blocklists” e introducir en los campos correspondientes las URLs de las listas que quieras incorporar. Tras guardar los cambios, puedes forzar la actualización de listas desde el propio panel o mediante el comando pihole -g en la terminal para regenerar la base de datos de dominios bloqueados.

Es conveniente no volverse loco añadiendo listas a lo loco, ya que un exceso de fuentes puede aumentar la carga de la Raspberry y generar más falsos positivos. Lo sensato es empezar con unas pocas listas bien mantenidas y, si ves que se quedan cortas, ir ampliando poco a poco y revisando el impacto en tu navegación.

En cualquier momento puedes usar las secciones de listas blancas (whitelist) y listas negras locales para permitir o bloquear dominios específicos que no se comporten como esperas. Por ejemplo, si una aplicación deja de funcionar porque un dominio necesario está en alguna lista, basta con añadirlo a la whitelist desde el panel para que deje de ser bloqueado.

Combinar Pi-hole con DNS filtrados y DNS-over-HTTPS

Además del filtrado que hace Pi-hole a nivel de listas negras, puedes reforzar la seguridad configurando como DNS upstream servicios que también integran su propio filtrado. Un ejemplo muy conocido es “1.1.1.1 for Families” de Cloudflare, que ofrece variantes para bloquear malware o malware+contenido para adultos.

En la sección “Settings -> DNS” de la interfaz de Pi-hole puedes indicar manualmente los servidores DNS de Cloudflare para familias. Por ejemplo, para bloquear malware se utilizan direcciones como 1.1.1.2 y 1.0.0.2 (y sus equivalentes IPv6). Si quieres añadir también filtrado de contenido adulto, las direcciones serían 1.1.1.3 y 1.0.0.3, junto con sus variantes IPv6.

Con esto consigues un doble nivel de protección: primero, Pi-hole revisa si el dominio está en sus listas de bloqueo locales; si pasa ese filtro, la consulta se reenvía al DNS de Cloudflare con sus propias políticas de seguridad. Es una combinación bastante potente para un entorno doméstico o de pequeña oficina.

Si además te preocupa que las consultas DNS vayan en texto claro por la red, puedes dar un paso más y configurar DNS-over-HTTPS (DoH) usando la herramienta cloudflared de Cloudflare. Esta utilidad actúa como proxy DNS: recibe las consultas en una dirección local y las encapsula en HTTPS hacia los servidores de Cloudflare.

El proceso consiste en descargar el binario de cloudflared (por ejemplo, el paquete estable para Linux ARM), extraerlo, copiarlo a /usr/local/bin y darle permisos de ejecución. Después se crea un archivo de configuración en /etc/cloudflared/config.yml donde se define proxy-dns: true, un puerto local (por ejemplo 5053) y los DNS upstream en formato HTTPS como https://1.1.1.1/dns-query y https://1.0.0.1/dns-query.

Una vez configurado, se instala el servicio de cloudflared para systemd con cloudflared service install, se arranca con systemctl start cloudflared y se comprueba su estado con systemctl status cloudflared para confirmar que está “active (running)”. A partir de ese momento, el proxy queda a la escucha en localhost:5053.

El último paso es ir de nuevo a la configuración DNS de Pi-hole y establecer como DNS upstream la dirección 127.0.0.1#5053. De esta manera todas las consultas que gestione Pi-hole viajarán cifradas en un túnel HTTPS desde tu Raspberry Pi hasta Cloudflare, evitando que puedan ser interceptadas o manipuladas por terceros en el camino.

Probando el sistema con dominios de prueba proporcionados por estos servicios (como malware.testcategory.com o phishing.testcategory.com) puedes verificar rápidamente si el filtrado adicional y el túnel DoH están funcionando como debería.

Una vez completados todos estos pasos, tendrás una Raspberry Pi convertida en el auténtico centro neurálgico de la privacidad y el bloqueo de publicidad de tu red, combinando Pi-hole, listas especializadas y, si lo deseas, DNS cifrado y servicios de filtrado avanzados. A partir de ahí solo queda ir afinando las listas y ajustes según tus necesidades y controlar de vez en cuando el panel para ver cómo disminuyen los anuncios y el rastreo en todos tus dispositivos.