GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Come impostare Pihole in un contenitore Docker

Forse sei infastidito da annunci pop-up ogni volta che leggi un articolo su un sito web. Con tutti quegli annunci, come bloccarli? Installa Pi-hole in Docker e usa Pi-hole come ad blocker a livello di rete e migliora le prestazioni della tua rete.

In questo tutorial imparerai come configurare ed eseguire Pi-hole in un contenitore Docker per bloccare annunci e siti Web. Suona eccitante? Continua a leggere per saperne di più!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se desideri continuare, assicurati di avere quanto segue:

  • Docker installato su Windows 10 (ma qualsiasi sistema operativo supportato funzionerà).
  • Un PC Windows 10:questo tutorial utilizza la build 19042.1165 del sistema operativo Windows 10.

Creazione di due volumi Docker persistenti

Quando configuri Pi-hole nel contenitore Docker, devi prima creare un volume Docker per archiviare l'applicazione Pi-hole e la configurazione DNS.

Apri PowerShell come amministratore, quindi esegui i comandi seguenti per Docker per creare due volumi (volume create ) denominato pihole_app e dns_config . Puoi anche modificare i nomi in base alle tue preferenze.

docker volume create pihole_app
docker volume create dns_config

Successivamente, verifica che i volumi Docker siano stati creati correttamente eseguendo il comando seguente che elenca tutti i volumi Docker disponibili sulla tua macchina.

docker volume ls

Di seguito, vedi due volumi appena creati denominati pihole_app e dns_config .

Esecuzione di Pi-hole in Docker Container con variabili d'ambiente

Ora che hai due volumi persistenti disponibili, sei pronto per eseguire un container Docker utilizzando l'immagine Docker di base di Pi-hole. Ma prima devi annotare il tuo indirizzo IP locale.

Esegui il comando seguente per ottenere il tuo indirizzo IP locale. Il tuo indirizzo IP locale è necessario per eseguire correttamente il singolo comando Docker.

ipconfig /all

Quindi, esegui il comando seguente per estrarre il pihole/pihole immagine di base dall'hub Docker. Sostituire i valori di conseguenza utilizzando la tabella seguente come riferimento. La tabella seguente spiega ogni flag dello scopo 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

Bandiere di comando Docker a foro passante

Comandi Flag Definizione
—nome=pihole Nomina un container Docker come pihole. Si verificherà un errore se esiste già un contenitore con lo stesso nome sulla tua macchina
-e TZ=Asia/Manila Variabile d'ambiente per il fuso orario. Asia/Manila è stato utilizzato per questo tutorial, ma puoi inserire qualsiasi cosa che abbia lo stesso formato elencato in un GitHub Gist.
-e WEBPASSWORD=password Imposta una password per l'interfaccia Pi-hole.
-e SERVERIP=Il tuo indirizzoIP qui Imposta il tuo indirizzo IP per il contenitore Docker. Lo userai di nuovo in seguito per far funzionare Pi-hole.
-v pihole_app:/etc/pihole Monta il volume pihole_app e usa la sottodirectory /etc/pihole per memorizzare i file Pi-hole
-v dns_config:/etc/dnsmasq.d Monta il volume dns_config e usa la sottodirectory /etc/dnsmasq. d per memorizzare le configurazioni DNS come richiesto.
p 81:80 -p 53:53/tcp -p 53:53/udp Mappa le porte della macchina host alle porte del container Docker (la porta 81 nella macchina host esegue il mapping alla porta 80 del container Docker)
—restart=a meno che non sia stato interrotto Imposta un criterio di riavvio in modo che il contenitore Docker si riavvii sempre a meno che non venga interrotto manualmente dall'utente.
pihole/pihole Dice al comando di esecuzione della finestra mobile di utilizzare l'immagine ufficiale della base pihole/pihole dall'hub Docker.

Di seguito, puoi vedere il comando che estrae il pihole/pihole immagine di base da Docker Hub. Una volta che il pihole/pihole image viene scaricata sulla tua macchina, il comando prosegue automaticamente e segue i parametri impostati nel comando.

Dopo aver tirato il pihole/pihole immagine di base, vedrai un output come quello qui sotto, che indica che puoi già eseguire la dashboard Pi-hole dal container.

Accesso all'interfaccia web di Pi-hole Dashboard

Una volta che il container Docker che hai creato è in esecuzione, ora puoi accedere al dashboard Pi-hole. La dashboard di Pi-hole è un'interfaccia grafica che ti consente di configurare quali annunci bloccare tramite la tua blacklist o le blacklist gestite dalla community.

Vai a http://localhost:81 sul tuo browser poiché in precedenza hai mappato la porta 81 della macchina host sulla porta 80 del contenitore Docker. In tal modo, il tuo browser web reindirizza la pagina alla dashboard di Pi-hole.

Se imposti una porta diversa durante l'esecuzione della precedente docker comando, cambia la porta per accedere alla dashboard Pi-hole. Ad esempio, http://localhost:n dove 'n' rappresenta il numero di porta.

Ora accedi alla dashboard di Pi-hole con la password che hai impostato eseguendo il docker comando nella sezione "Esecuzione del contenitore Docker Pi-hole con variabili di ambiente". Per questo tutorial, la password è "password" (senza virgolette).

Come puoi vedere di seguito, il contenitore Pi-hole non sta bloccando attivamente gli annunci ed è in modalità standby in attesa di ciò che chiama "query" o richieste di annunci da valutare.

Indirizzamento del server DNS dell'host all'indirizzo IP Pi-hole

Con il server Pi-hole in esecuzione, come inizi a bloccare gli annunci sul tuo sistema locale? Devi dire al tuo sistema locale di instradare tutte le richieste all'indirizzo IP Pi-hole e bloccare eventuali annunci corrispondenti. Continua a leggere per sapere come!

1. Fai clic con il pulsante destro del mouse sull'icona delle impostazioni di rete nella barra delle applicazioni di Windows e scegli Apri impostazioni di rete e Internet per visualizzare l'elenco di tutte le schede di rete nella macchina.

2. Quindi, fai clic con il pulsante destro del mouse sulla scheda di rete e scegli Proprietà . Verrà visualizzata la finestra delle impostazioni della scheda di rete.

3. Seleziona Protocollo Internet versione 4 (TCP/IPv4) dall'elenco in Rete scheda, quindi fai clic su Proprietà pulsante.

4. Configurare le proprietà IPv4 con quanto segue:

  • Seleziona l'opzione Utilizza il seguente indirizzo IP per impostare un indirizzo IP statico. L'assegnazione dell'IP statico alla macchina host consente ad altri dispositivi di connettersi e utilizzare l'adblocker. Il gateway predefinito per il router varia a seconda delle impostazioni del tuo provider ISP nel tuo paese.
  • Seleziona l'opzione Utilizza i seguenti indirizzi del server DNS opzione per configurare il server DNS e aggiungere un server DNS nel server DNS preferito campo. Inserisci l'indirizzo IP del server Docker che hai impostato dalla docker precedente comando nella sezione "Esecuzione del contenitore Docker Pi-hole con variabili di ambiente".
  • Aggiungi un server alternativo come il server Google 8.8.8.8 nel server DNS alternativo campo e fai clic su OK . Il server DNS alternativo funge da server DNS nel caso in cui il contenitore Pi-hole Docker si interrompa per qualche motivo. Puoi dare un altro valore al server DNS alternativo che preferisci.

Configurazione del DNS di un singolo dispositivo

Supponendo che tu abbia uno smartphone o qualsiasi altro dispositivo connesso alla stessa rete, puoi indirizzare il server DNS di quel dispositivo in modo che corrisponda all'indirizzo IP dell'host. In questo tutorial, uno smartphone è connesso alla stessa rete.

1. Nelle impostazioni della rete wireless dello smartphone, tocca Manuale e inserire l'indirizzo IP della macchina host. Puoi anche aggiungere indirizzi IP alternativi nel caso in cui Pi-hole fallisse.

L'interfaccia delle impostazioni di rete wireless sugli smartphone differisce l'una dall'altra.

2. Ora visita alcuni siti Web ricchi di pubblicità nel browser Web del tuo smartphone.

Per questo esempio, i siti web del Daily Mail e del New York Times sono stati visitati ripetutamente per 5-10 minuti. L'amministratore del browser live sulla dashboard di Pi-hole mostra il numero di annunci bloccati dal dispositivo, come mostrato di seguito.

I grafici a barre sono una recente aggiunta all'ultima versione di Pi-hole al momento della stesura di questo articolo. Alcune versioni precedenti hanno invece grafici a linee.

Abilitazione del blocco a livello di rete domestica tramite le impostazioni del router

Invece di configurare un server DNS su un singolo dispositivo, prova a configurare i server DNS per tutti i dispositivi nelle impostazioni del router. A seconda del router, potrebbe esserci o meno una disposizione per l'utilizzo dell'indirizzo IP.

Per questa demo, il router non ha consentito l'accesso alla modifica dei server DNS e DHCP. Quindi la rete domestica non è stata esplorata in dettaglio in questo tutorial a causa dei vincoli del router.

In una vista amministratore di esempio, potresti essere in grado di codificare l'IP del server DNS nello stesso modo in cui è stato eseguito in un singolo dispositivo. Questa demo utilizza un router Prolink PRS1841U-v2 bloccato su ISP.

L'interfaccia di configurazione DNS differisce da router a router, ma le impostazioni sono simili a quella riportata di seguito.

Puoi anche disabilitare il server DHCP nel router e quindi abilitare il server DHCP in Pi-hole. Una discussione di esempio nella community di Pi-hole lo mostra in modo più dettagliato.

Blocco di siti Web tramite dashboard Pi-hole

L'installazione predefinita di Pi-hole blocca circa 92.725 siti Web per impostazione predefinita, ma puoi anche aggiungere più siti Web tramite liste nere dal creatore Pi-hole e altri elenchi condivisi dai fan di Pi-hole.

1. Salva i siti Web da bloccare in un file di testo con il tuo nome preferito. Per questo esempio, il file è denominato blocklist.txt .

2. Esegui la docker comando seguente per copiare il blocklist.txt file (cp blocklist.txt ) al volume del contenitore Docker in un file denominato blacklist.txt . Conserva il blacklist.txt file sul volume Docker in modo che Pi-hole lo rilevi automaticamente.

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

3. Infine, accedi di nuovo alla dashboard di amministrazione di Pi-hole. Fai clic su Strumenti menu nel pannello di sinistra e poi Aggiorna gravità collegamento. Infine, fai clic su Aggiorna per recuperare un elenco aggiornato di URL da bloccare per Pi-hole.

Un aggiornamento riuscito sarà simile a quello qui sotto.

Aggiornamento della Blocklist dei siti Web tramite Console

Forse preferisci eseguire i comandi della console piuttosto che navigare nel dashboard di Pi-hole. In tal caso, puoi eseguire un comando Docker in PowerShell per bloccare i siti Web. Esegui docker exec comando seguente per creare una sessione terminale interattiva per pihole_app Contenitore Docker, che consente l'esecuzione di comandi.

docker exec -it pihole_app /bin/bash

Una volta aperta la sessione del terminale, esegui il comando seguente per aggiornare la lista nera degli URL di Pi-hole.

pihole -g

Esegui nuovamente pihole -g di tanto in tanto in modo che il blocco degli annunci rimanga aggiornato.

Blocco di siti Web tramite liste nere di URL gestite dalla community

Alcuni URL sono dedicati ad essere aggiornati regolarmente dai loro contributori, mentre altri no, quindi il caricamento di una lista nera da una vecchia lista potrebbe non riflettere le ultime modifiche.

Sfrutta la funzione di gestione dei gruppi di elenchi di blocco di Adlist di Pi-hole. Nella dashboard di Pi-hole, fai clic su Gestione gruppoElenchi di annunci menu nel pannello di sinistra, quindi fai clic su Aggiungi per scegliere l'elenco di URL che desideri aggiungere in Pi-hole.

Conclusione

In questo tutorial, hai imparato come scaricare un'immagine Pi-Hole Docker, testare un'interfaccia Web Pi-hole in ascolto attivo, testare un dispositivo esterno per connettersi a Pi-hole. Hai anche imparato a bloccare annunci e siti Web, hai visto la dashboard Pi-hole in azione mentre li blocca.

Con questa conoscenza, perché non utilizzare un computer host per bloccare gli annunci su altri dispositivi collegati nella stessa rete?


Docker
  1. Come eseguire un programma all'interno di un contenitore Docker?

  2. Come eseguire un comando su un contenitore Docker in esecuzione

  3. Come assegnare un IP statico a un contenitore Docker

  4. Come distribuire PostgreSQL come contenitore Docker

  5. Come elencare i contenitori Docker

Cos'è Docker? Come funziona?

Come eseguire PHPMyAdmin in un contenitore Docker

Come eseguire Grafana in un contenitore Docker

Come aggiungere un volume a un contenitore Docker esistente

Come configurare un container Docker Apache

Come eseguire i contenitori Docker