GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo configurar Pihole en un contenedor Docker

Quizás te molesten los anuncios emergentes cada vez que lees un artículo en un sitio web. Con todos esos anuncios, ¿cómo bloquearlos? Instale Pi-hole en Docker y use Pi-hole como un bloqueador de anuncios en toda la red y mejore el rendimiento de su red.

En este tutorial, aprenderá a configurar y ejecutar Pi-hole en un contenedor Docker para bloquear anuncios y sitios web. ¿Suena emocionante? ¡Sigue leyendo para obtener más información!

Requisitos

Este tutorial será una demostración práctica. Si desea seguirnos, asegúrese de tener lo siguiente:

  • Docker instalado en Windows 10 (pero cualquier sistema operativo compatible funcionará).
  • Una PC con Windows 10:este tutorial utiliza la compilación 19042.1165 del sistema operativo Windows 10.

Creación de dos volúmenes persistentes de Docker

Al configurar Pi-hole en el contenedor Docker, primero deberá crear un volumen Docker para almacenar la aplicación Pi-hole y la configuración de DNS.

Abra PowerShell como administrador, luego ejecute los siguientes comandos para que Docker cree dos volúmenes (volume create ) llamado pihole_app y dns_config . También puede cambiar los nombres según sus preferencias.

docker volume create pihole_app
docker volume create dns_config

A continuación, verifique que los volúmenes de Docker se hayan creado correctamente ejecutando el siguiente comando que enumera todos los volúmenes de Docker disponibles en su máquina.

docker volume ls

A continuación, verá dos volúmenes recién creados llamados pihole_app y dns_config .

Ejecución de Pi-hole en Docker Container con variables de entorno

Ahora que tiene dos volúmenes persistentes disponibles, está listo para ejecutar un contenedor Docker utilizando la imagen base de Docker de Pi-hole. Pero primero, deberá anotar su dirección IP local.

Ejecute el siguiente comando para obtener su dirección IP local. Su dirección IP local es necesaria para ejecutar correctamente el único comando de Docker.

ipconfig /all

A continuación, ejecute el siguiente comando para extraer el pihole/pihole imagen base de Docker hub. Reemplace los valores según corresponda utilizando la siguiente tabla como referencia. La siguiente tabla explica cada bandera del propósito del comando.

docker run --name=pihole -e TZ=Asia/Manila -e WEBPASSWORD=password -e SERVERIP=YourIPAddressHere -v pihole_app:/etc/pihole -v dns_config:/etc/dnsmasq.d -p 81:80 -p 53:53/tcp -p 53:53/udp --restart=unless-stopped pihole/pihole

Indicadores de comando de Docker Pi-hole

A continuación, puede ver que el comando extrae el pihole/pihole imagen base de Docker Hub. Una vez que el pihole/pihole la imagen se descarga en su máquina, el comando continúa automáticamente y sigue los parámetros que configuró en el comando.

Después de tirar del pihole/pihole imagen base, verá un resultado como el que se muestra a continuación, lo que indica que ya puede ejecutar el panel de Pi-hole desde el contenedor.

Acceso a la interfaz web del panel de Pi-hole

Una vez que el contenedor Docker que creó se está ejecutando, ahora puede acceder al panel de control de Pi-hole. El panel de Pi-hole es una interfaz gráfica que le permite configurar qué anuncios bloquear, ya sea a través de su propia lista negra o listas negras mantenidas por la comunidad.

Vaya a http://localhost:81 en su navegador desde que mapeó previamente el puerto 81 de la máquina host al puerto 80 del contenedor Docker. Al hacerlo, su navegador web redirige la página al panel de Pi-hole.

Si configura un puerto diferente al ejecutar el docker anterior comando, cambie el puerto para acceder al panel de Pi-hole. Por ejemplo, http://localhost:n donde 'n' representa el número de puerto.

Ahora, inicie sesión en el panel de control de Pi-hole con la contraseña que estableció al ejecutar docker en la sección "Ejecución del contenedor Docker Pi-hole con variables de entorno". Para este tutorial, la contraseña es "contraseña" (sin comillas).

Como puede ver a continuación, el contenedor Pi-hole no bloquea activamente los anuncios y está en modo de espera esperando lo que llama "consultas" o solicitudes de anuncios para evaluar.

Apuntar el servidor DNS del host a la dirección IP de Pi-hole

Con el servidor Pi-hole ejecutándose, ¿cómo comienza a bloquear anuncios en su sistema local? Debe indicarle a su sistema local que enrute todas las solicitudes a la dirección IP de Pi-hole y bloquee los anuncios que coincidan. ¡Sigue leyendo para saber cómo!

1. Haga clic con el botón derecho en el icono de configuración de su red en la bandeja del sistema de Windows y seleccione Abrir configuración de red e Internet. para ver la lista de todos los adaptadores de red en su máquina.

2. A continuación, haga clic con el botón derecho en su adaptador de red y seleccione Propiedades. . Aparecerá la ventana de configuración de su adaptador de red.

3. Seleccione Protocolo de Internet versión 4 (TCP/IPv4) de la lista debajo de Redes pestaña, luego haga clic en Propiedades botón.

4. Configure las propiedades de IPv4 con lo siguiente:

  • Seleccione la opción Usar la siguiente dirección IP para establecer una dirección IP estática. La asignación de IP estática a la máquina host permite que otros dispositivos se conecten y usen el bloqueador de anuncios. La puerta de enlace predeterminada para el enrutador difiere según la configuración de su proveedor de ISP en su país.
  • Seleccione la opción Usar las siguientes direcciones de servidor DNS opción para configurar su servidor DNS y agregar un servidor DNS en el Servidor DNS preferido campo. Ingrese la dirección IP del servidor Docker que configuró desde el docker anterior comando en la sección "Ejecución del contenedor Docker Pi-hole con variables de entorno".
  • Agregue un servidor alternativo como el servidor de Google 8.8.8.8 en el Servidor DNS alternativo y haga clic en Aceptar . El servidor DNS alternativo sirve como servidor DNS en caso de que el contenedor Pi-hole Docker se caiga por algún motivo. Puede dar otro valor al servidor DNS alternativo que prefiera.

Configurar el DNS de un solo dispositivo

Suponiendo que tiene un teléfono inteligente o cualquier otro dispositivo conectado a la misma red, puede apuntar el servidor DNS de ese dispositivo para que coincida con la dirección IP del host. En este tutorial, un teléfono inteligente está conectado a la misma red.

1. En la configuración de red inalámbrica del teléfono inteligente, toque Manual e ingrese la dirección IP de la máquina host. También puede agregar direcciones IP alternativas en caso de que Pi-hole falle.

La interfaz de configuración de la red inalámbrica en los teléfonos inteligentes difiere entre sí.

2. Ahora visite algunos sitios web que tienen muchos anuncios en el navegador web de su teléfono inteligente.

Para este ejemplo, los sitios web de Daily Mail y New York Times fueron visitados repetidamente durante 5 a 10 minutos. El administrador del navegador en vivo en el tablero de Pi-hole muestra la cantidad de anuncios bloqueados del dispositivo, como se muestra a continuación.

Los gráficos de barras son una adición reciente a la última versión de Pi-hole en el momento de escribir este artículo. Algunas versiones anteriores tienen gráficos de líneas en su lugar.

Habilitación del bloqueo de toda la red doméstica a través de la configuración del enrutador

En lugar de configurar un servidor DNS en un solo dispositivo, intente configurar servidores DNS para todos los dispositivos en la configuración de su enrutador. Dependiendo de su enrutador, puede haber o no una disposición para usar la dirección IP.

Para esta demostración, el enrutador no permitía el acceso a servidores DNS cambiantes y DHCP. Por lo tanto, las redes domésticas no se exploraron en detalle en este tutorial debido a las limitaciones del enrutador.

En una vista de administrador de muestra, es posible que pueda codificar la IP del servidor DNS de la misma manera que se hizo en un solo dispositivo. Esta demostración utiliza un enrutador Prolink PRS1841U-v2 bloqueado para ISP.

La interfaz de configuración de DNS difiere de un enrutador a otro, pero la configuración se parece a la siguiente.

También puede deshabilitar el servidor DHCP en el enrutador y luego habilitar el servidor DHCP en Pi-hole. Una discusión de muestra en la comunidad de Pi-hole muestra esto con más detalle.

Bloqueo de sitios web a través del panel Pi-hole

La instalación predeterminada de Pi-hole bloquea alrededor de 92 725 sitios web de forma predeterminada, pero también puede agregar más sitios web a través de listas negras del creador de Pi-hole y otras listas compartidas por los fanáticos de Pi-hole.

1. Guarde los sitios web para bloquear en un archivo de texto con su nombre preferido. Para este ejemplo, el archivo se llama blocklist.txt .

2. Ejecute el docker comando a continuación para copiar el blocklist.txt archivo (cp blocklist.txt ) al volumen del contenedor Docker en un archivo llamado blacklist.txt . Mantenga el blacklist.txt archivo en el volumen de Docker para que Pi-hole lo detecte automáticamente.

docker cp blocklist.txt d70:/etc/pihole/blacklist.txt

3. Finalmente, navegue nuevamente al panel de administración de Pi-hole. Haga clic en Herramientas menú en el panel izquierdo y luego Actualizar gravedad Enlace. Finalmente, haga clic en Actualizar para recuperar una lista actualizada de URL para que Pi-hole las bloquee.

Una actualización exitosa se verá como la siguiente.

Actualización de la lista de bloqueo de sitios web a través de la consola

Tal vez prefiera ejecutar los comandos de la consola en lugar de navegar por el panel de Pi-hole. Si es así, puede ejecutar un comando docker en PowerShell para bloquear sitios web. Ejecute docker exec Comando a continuación para crear una sesión de terminal interactiva para pihole_app Contenedor Docker, que permite la ejecución de comandos.

docker exec -it pihole_app /bin/bash

Una vez que la sesión de terminal esté abierta, ejecute el siguiente comando para actualizar la lista negra de URL de Pi-hole.

pihole -g

Vuelva a ejecutar pihole -g de vez en cuando para que su bloqueador de anuncios se mantenga actualizado.

Bloqueo de sitios web a través de listas negras de URL mantenidas por la comunidad

Algunas URL están dedicadas a ser actualizadas regularmente por sus colaboradores, y otras no, por lo que es posible que cargar una lista negra de una lista anterior no refleje los últimos cambios.

Aproveche la función de administración de grupos de listas de bloqueo de Adlist de Pi-hole. En el panel de control de Pi-hole, haga clic en Administración de gruposListas de anuncios menú en el panel izquierdo, luego haga clic en Agregar para elegir la lista de URL que desea agregar en Pi-hole.

Conclusión

En este tutorial, aprendió cómo descargar una imagen de Pi-Hole Docker, probar una interfaz web Pi-hole de escucha activa, probar un dispositivo externo para conectarse a Pi-hole. También ha aprendido a bloquear anuncios y sitios web, y ha visto el panel de Pi-hole en acción mientras los bloquea.

Con este conocimiento, ¿por qué no usar cualquier máquina host para bloquear anuncios en otros dispositivos conectados en la misma red?


Docker
  1. Cómo instalar WordPress usando Docker

  2. ¿Cómo ejecutar un programa dentro de un contenedor Docker?

  3. Cómo usar SSH en un contenedor Docker

  4. Cómo ejecutar un comando en un contenedor Docker en ejecución

  5. Cómo asignar una IP estática a un contenedor Docker

¿Qué es Docker? ¿Como funciona?

Cómo ejecutar PHPMyAdmin en un contenedor Docker

Cómo ejecutar Grafana en un contenedor Docker

Cómo agregar un volumen a un contenedor Docker existente

Cómo configurar un contenedor Apache Docker

Cómo ejecutar contenedores Docker

    Indicadores de comando Definición
    —name=pihole Nombra un contenedor Docker como pihole. Habrá un error si ya existe un contenedor con el mismo nombre en su máquina
    -e TZ=Asia/Manila Variable de entorno para la zona horaria. Asia/Manila se usó para este tutorial, pero puede ingresar cualquier cosa que tenga el mismo formato que aparece en una Gist de GitHub.
    -e WEBPASSWORD=contraseña Establece una contraseña para la interfaz Pi-hole.
    -e SERVERIP=TuDirecciónIPAquí Establezca su dirección IP para el contenedor Docker. Lo volverá a usar más tarde para hacer que Pi-hole funcione.
    -v pihole_app:/etc/pihole Monta el volumen pihole_app y usa el subdirectorio /etc/pihole para almacenar los archivos Pi-hole
    -v dns_config:/etc/dnsmasq.d Monta el volumen dns_config y usa el subdirectorio /etc/dnsmasq. d para almacenar configuraciones de DNS según sea necesario.
    p 81:80 -p 53:53/tcp -p 53:53/udp Asigna los puertos de la máquina host a los puertos del contenedor Docker (el puerto 81 en la máquina host se asigna al puerto 80 del contenedor Docker)
    —restart=a menos que se detenga Establece una política de reinicio para que el contenedor Docker siempre se reinicie a menos que el usuario lo detenga manualmente.
    agujero/agujero Le dice al comando docker run que use la imagen base oficial de pihole/pihole de Docker hub.