Forse sei infastidito dalle pubblicità emergenti quando leggi un articolo su un sito web. Come bloccarle tutte? Installa Pi-hole in Docker e utilizzalo come bloccatore di pubblicità a livello di rete per migliorare le prestazioni della tua rete.
In questo tutorial, imparerai come configurare e eseguire Pi-hole in un contenitore Docker per bloccare annunci e siti web. Ti sembra interessante? Continua a leggere per saperne di più!
Prerequisiti
Questo tutorial sarà una dimostrazione pratica. Se desideri seguirla, assicurati di avere quanto segue:
- Docker installato su Windows 10 (ma qualsiasi sistema operativo supportato funzionerà).
- A Windows 10 PC – This tutorial uses Windows 10 OS Build 19042.1165.
Creazione di due volumi Docker persistenti
Quando si configura Pi-hole in un contenitore Docker, è necessario prima creare un volume Docker per archiviare l’applicazione Pi-hole e la configurazione DNS.
Apri PowerShell come amministratore, quindi esegui i seguenti comandi per Docker per creare due volumi (volume create
) chiamati pihole_app
e dns_config
. Puoi anche cambiare i nomi secondo le tue preferenze.
In seguito, verifica che i volumi di Docker siano stati creati correttamente eseguendo il seguente comando che elenca tutti i volumi di Docker disponibili sulla tua macchina.
Sotto, vedi due volumi appena creati chiamati pihole_app
e dns_config
.

Esecuzione di Pi-hole in un contenitore Docker con variabili di ambiente
Ora che hai due volumi persistenti disponibili, sei pronto per eseguire un contenitore Docker utilizzando l’immagine Docker di base di Pi-hole. Ma prima, dovrai annotare il tuo indirizzo IP locale.
Esegui il seguente comando per ottenere il tuo indirizzo IP locale. Il tuo indirizzo IP locale è necessario per eseguire correttamente il singolo comando Docker.
In seguito, esegui il comando seguente per scaricare l’immagine di base pihole/pihole
da Docker hub. Sostituisci i valori di conseguenza utilizzando la tabella sottostante come riferimento. La tabella sottostante spiega lo scopo di ciascuna bandiera del comando.
Bandiere del comando Docker di Pi-hole
Command Flags | Definition |
—name=pihole | Names a Docker container as pihole. There will be an error if a container with the same name already exists on your machine |
-e TZ=Asia/Manila | Environment variable for time zone. Asia/Manila was used for this tutorial, but you can input anything that has the same format listed in on a GitHub gist. |
-e WEBPASSWORD=password | Sets a password for the Pi-hole interface. |
-e SERVERIP=YourIPAddressHere | Set your IP address for the Docker container. You will use this again later for making Pi-hole work. |
-v pihole_app:/etc/pihole | Mounts the volume pihole_app and use subdirectory /etc/pihole for storing the Pi-hole files |
-v dns_config:/etc/dnsmasq.d | Mounts the volume dns_config and use subdirectory /etc/dnsmasq.d for storing DNS configurations as required. |
p 81:80 -p 53:53/tcp -p 53:53/udp | Maps the ports of host machine to the ports of the Docker container (port 81 in host machine maps to port 80 of Docker container) |
—restart=unless-stopped | Sets a restart policy so the Docker container always restarts unless it is manually stopped by the user. |
pihole/pihole | Tells the docker run command to use the official pihole/pihole base image from Docker hub. |
Di seguito, puoi vedere il comando che estrae l’immagine di base pihole/pihole
da Docker Hub. Una volta che l’immagine pihole/pihole
è stata scaricata sul tuo computer, il comando continua automaticamente e segue i parametri impostati nel comando.

Dopo aver estratto l’immagine di base pihole/pihole
, vedrai un output come quello di seguito, che indica che puoi già eseguire il dashboard di Pi-hole dal container.

Accesso all’interfaccia web del dashboard di Pi-hole
Una volta che il container Docker che hai creato è in esecuzione, puoi accedere al dashboard di Pi-hole. Il dashboard di Pi-hole è un’interfaccia grafica che ti consente di configurare quali annunci bloccare, sia tramite la tua blacklist personale che tramite blacklist mantenute dalla comunità.
Vai su http://localhost:81 nel tuo browser, poiché in precedenza hai mappato la porta 81
della macchina host alla porta 80
del container Docker. In questo modo, il browser web reindirizza la pagina al dashboard di Pi-hole.
Se hai impostato una porta diversa durante l’esecuzione del precedente comando
docker
, cambia la porta per accedere al dashboard di Pi-hole. Ad esempio, http://localhost:n dove ‘n’ rappresenta il numero di porta.
Ora accedi al dashboard di Pi-hole con la password impostata eseguendo il comando docker
nella sezione “Esecuzione del container Docker di Pi-hole con le variabili d’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.

Puntando il server DNS dell’host all’indirizzo IP di Pi-hole
Con il server Pi-hole in esecuzione, come si inizia a bloccare gli annunci sul sistema locale? È necessario indicare al sistema locale di instradare tutte le richieste all’indirizzo IP di Pi-hole e bloccare gli annunci corrispondenti. Continua a leggere per scoprire come fare!
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 vedere l’elenco di tutti gli adattatori di rete nel tuo computer.

2. Successivamente, fai clic con il pulsante destro del mouse sull’adattatore di rete e scegli Proprietà. Si aprirà la finestra delle impostazioni dell’adattatore di rete.

3. Seleziona Versione 4 del protocollo Internet (TCP/IPv4) dalla lista nella scheda Rete, quindi fai clic sul pulsante Proprietà.

4. Configura le proprietà IPv4 come segue:
- Seleziona l’opzione Usa il seguente indirizzo IP per impostare un indirizzo IP statico. L’assegnazione di un indirizzo IP statico alla macchina host consente ad altri dispositivi di connettersi e utilizzare il blocco degli annunci. Il gateway predefinito per il router varia a seconda delle impostazioni del provider ISP nel tuo paese.
- Seleziona l’opzione Utilizza i seguenti indirizzi del server DNS per configurare il tuo server DNS e aggiungi un server DNS nel campo Server DNS preferito. Inserisci l’indirizzo IP del server Docker che hai impostato dal precedente comando
docker
nella sezione “Esecuzione del contenitore Docker di Pi-hole con variabili di ambiente”. - Aggiungi un server alternativo come il server Google 8.8.8.8 nel campo Server DNS alternativo e clicca su OK. Il server DNS alternativo funge da server DNS nel caso in cui il contenitore Docker di Pi-hole vada giù 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 un altro dispositivo connesso alla stessa rete, puoi impostare 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 di rete wireless dello smartphone, tocca su Manuale e inserisci l’indirizzo IP della macchina host. Puoi anche aggiungere indirizzi IP alternativi nel caso in cui Pi-hole fallisca.
L’interfaccia delle impostazioni di rete wireless sugli smartphone può variare da un dispositivo all’altro.

2. Ora visita alcuni siti web che sono ricchi di pubblicità nel browser web dello 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 un’aggiunta recente all’ultima versione di Pi-hole al momento della stesura di questo testo. Alcune versioni più vecchie hanno invece grafici a linee.

Abilitare il blocco di rete domestica tramite le impostazioni del router
Piuttosto che 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 tuo router, potrebbe esserci o meno una disposizione per utilizzare l’indirizzo IP.
In questa demo, il router non ha consentito l’accesso alla modifica dei server DNS e del DHCP. Pertanto, la rete domestica non è stata esplorata nel dettaglio completo in questo tutorial a causa delle limitazioni del router.
In una vista amministrativa di esempio, potresti essere in grado di codificare l’indirizzo IP del server DNS nello stesso modo in cui è stato fatto su un singolo dispositivo. Questa demo utilizza un router Prolink PRS1841U-v2 bloccato dall’ISP.
L’interfaccia di configurazione DNS varia da router a router, ma le impostazioni sono simili a quelle riportate di seguito.

È anche possibile disabilitare il server DHCP nel router e abilitare invece il server DHCP in Pi-hole. Una discussione di esempio nella community di Pi-hole mostra questo in dettaglio.
Blocco dei siti web tramite il pannello di controllo di Pi-hole
L’installazione predefinita di Pi-hole blocca circa 92.725 siti web, ma è anche possibile aggiungere altri siti web tramite liste nere del produttore di Pi-hole e altre liste condivise dai fan di Pi-hole.
1. Salva i siti web da bloccare in un file di testo con il nome preferito. In questo esempio, il file è chiamato blocklist.txt.
2. Esegui il comando docker
di seguito per copiare il file blocklist.txt (cp blocklist.txt
) nel volume del container Docker in un file denominato blacklist.txt. Mantieni il file blacklist.txt nel volume Docker in modo che Pi-hole lo rilevi automaticamente.
3. Infine, torna alla dashboard di amministrazione di Pi-hole. Clicca sul menu Strumenti nel pannello di sinistra e poi sul link Aggiorna Gravity. Infine, clicca su Aggiorna per ottenere una lista aggiornata di URL da bloccare con Pi-hole.

A successful update will look like the one below.

Aggiornamento della lista di siti web bloccati tramite console
Forse preferisci eseguire comandi tramite console anziché navigare sulla dashboard di Pi-hole. In tal caso, puoi eseguire un comando docker in PowerShell per bloccare i siti web. Esegui il comando docker exec
riportato di seguito per creare una sessione interattiva del terminale nel container Docker pihole_app
, che consente l’esecuzione dei comandi.
Una volta aperta la sessione del terminale, esegui il comando riportato di seguito per aggiornare la blacklist di Pi-hole con gli URL.
Riesegui
pihole -g
di tanto in tanto per mantenere aggiornato il tuo ad blocker.
Blocco dei siti web tramite blacklist di URL mantenute dalla comunità
Alcuni URL sono dedicati ad essere aggiornati regolarmente dai loro contributori, mentre altri no, quindi caricare una blacklist da un elenco vecchio potrebbe non riflettere le ultime modifiche.
Sfrutta la funzione di gestione del gruppo di liste di blocco di Pi-hole. Sulla dashboard di Pi-hole, clicca su Gestione Gruppi → Liste di annunci nel pannello di sinistra, quindi clicca su Aggiungi per scegliere l’elenco di URL che desideri aggiungere a Pi-hole.

Conclusione
In questo tutorial, hai imparato come scaricare un’immagine Docker di Pi-Hole, testare un’interfaccia web di Pi-hole con ascolto attivo, testare un dispositivo esterno per connettersi a Pi-hole. Hai anche imparato come bloccare annunci e siti web e hai visto in azione il cruscotto di Pi-hole mentre li blocca.
Con questa conoscenza, perché non utilizzare qualsiasi macchina host per bloccare annunci su altri dispositivi connessi alla stessa rete?