Pi-hole sur Raspberry Pi — Bloquer les pubs sur tout le réseau
Guide complet pour installer Pi-hole sur un Raspberry Pi et bloquer publicités et trackers pour tous les appareils du réseau local via DNS.
Table des matières
Pi-hole est un bloqueur de publicités au niveau DNS qui protège l’ensemble de votre réseau — téléphones, TVs connectées, consoles, ordinateurs — sans installer quoi que ce soit sur chaque appareil.
Principe de fonctionnement
Appareil (téléphone, PC, TV...)
│ Requête DNS : pub.example.com
▼
Pi-hole (serveur DNS local)
│ Liste noire : pub.example.com → BLOQUÉ → 0.0.0.0
│ Domaine légitime → forwarde vers 1.1.1.1
▼
Internet (uniquement pour les domaines légitimes)
Pi-hole répond 0.0.0.0 pour les domaines publicitaires — l’appareil ne charge jamais le contenu.
Matériel requis
- Raspberry Pi (Zero 2W, 3B+, 4 ou 5)
- Carte microSD ≥ 8 Go (classe 10)
- Alimentation micro-USB ou USB-C selon le modèle
- Connexion Ethernet (recommandé) ou Wi-Fi
Le Raspberry Pi Zero 2W (~18€) suffit amplement pour Pi-hole sur un réseau domestique. Le Pi 4 est surdimensionné pour cet usage mais permet d’héberger d’autres services en même temps.
Installation de Raspberry Pi OS
1. Téléchargez Raspberry Pi Imager
2. Dans l’imager, cliquez sur l’icône ⚙️ avant de flasher pour préconfigurer :
- Activez SSH
- Configurez votre Wi-Fi (SSID + mot de passe)
- Définissez un hostname (ex:
pihole) - Définissez un utilisateur/mot de passe
3. Flashez la carte SD avec Raspberry Pi OS Lite (64-bit)
4. Insérez la carte et démarrez le Pi. Connectez-vous en SSH :
ssh pi@pihole.local
# ou ssh pi@IP_DU_PI
Attribution d’une IP statique
Pi-hole doit toujours avoir la même IP pour servir de DNS :
# Option 1 : réservation DHCP dans votre box/routeur (recommandé)
# Trouvez l'adresse MAC du Pi dans l'interface de votre routeur
# et créez une réservation DHCP
# Option 2 : IP statique sur le Pi
sudo nano /etc/dhcpcd.conf
# Ajouter à la fin :
interface eth0
static ip_address=192.168.1.100/24
static routers=192.168.1.1
static domain_name_servers=127.0.0.1
Installation de Pi-hole
curl -sSL https://install.pi-hole.net | bash
L’installateur interactif vous guidera :
- Interface réseau :
eth0(câble) ouwlan0(Wi-Fi) - DNS upstream : choisissez votre forwarder (Cloudflare, Quad9, etc.)
- Confirmation IP statique : validez votre IP
- Interface web : activez-la
À la fin, notez le mot de passe admin généré.
Si vous ratez le mot de passe, vous pouvez le changer à tout moment avec : pihole -a -p nouveau-mot-de-passe
Configuration post-installation
Accéder à l’interface web
Ouvrez http://192.168.1.100/admin dans votre navigateur.
Mettre à jour les listes de blocage
pihole -g
Ajouter des listes supplémentaires
Dans l’interface : Group Management → Adlists, ajoutez :
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
https://someonewhocares.org/hosts/zero/hosts
https://raw.githubusercontent.com/PolishFiltersTeam/KADhosts/master/KADhosts.txt
https://adaway.org/hosts.txt
Après ajout : Tools → Update Gravity pour télécharger les listes.
Configurer votre box comme serveur DNS
C’est l’étape clé : tous les appareils du réseau doivent utiliser Pi-hole comme DNS.
Dans l’interface de votre box/routeur :
- Paramètres DHCP → DNS primaire :
192.168.1.100(IP du Pi) - DNS secondaire : laisser vide ou mettre
1.1.1.1(fallback si Pi-hole tombe)
Sur certaines box, il faut redémarrer les appareils pour qu’ils obtiennent le nouveau DNS.
Résultats typiques
Après quelques heures de fonctionnement :
| Métrique | Valeur typique |
|---|---|
| Requêtes bloquées | 20-35% |
| Domaines dans la liste noire | 150 000 - 300 000 |
| Latence DNS ajoutée | < 1ms en LAN |
| RAM utilisée (Pi Zero 2W) | ~80 Mo |
Commandes utiles
# Statut Pi-hole
pihole status
# Voir les requêtes en temps réel
pihole -t
# Mettre à jour Pi-hole
pihole -up
# Désactiver temporairement (300 secondes)
pihole disable 300
pihole enable
# Whitelister un domaine
pihole -w domaine.com
# Blacklister un domaine manuellement
pihole -b domaine-pub.com
# Statistiques rapides
pihole -c
Dépannage courant
Un site est bloqué par erreur
# Chercher dans les logs
pihole -t | grep "nom-du-site.com"
# Whitelister
pihole -w nom-du-site.com
Les appareils n’utilisent pas Pi-hole
# Vérifier quel DNS un appareil utilise (depuis cet appareil)
# Windows :
nslookup google.com
# → Server: doit afficher l'IP de Pi-hole
# Linux/Mac :
dig google.com | grep SERVER
Pi-hole ne répond pas
# Vérifier le service
sudo systemctl status pihole-FTL
# Redémarrer si nécessaire
sudo systemctl restart pihole-FTL
Sur mon homelab
Sur mon Raspberry Pi, Pi-hole tourne en conteneur Docker avec vlmcsd (serveur KMS) sur la même machine :
services:
pihole:
image: pihole/pihole:latest
container_name: pihole
restart: unless-stopped
ports:
- "53:53/tcp"
- "53:53/udp"
- "80:80/tcp"
environment:
TZ: Europe/Paris
WEBPASSWORD: votre-mot-de-passe
PIHOLE_DNS_: 94.140.14.14;1.1.1.1
volumes:
- ./etc-pihole:/etc/pihole
- ./etc-dnsmasq.d:/etc/dnsmasq.d
vlmcsd:
image: mikolatero/vlmcsd:latest
container_name: vlmcsd
restart: unless-stopped
ports:
- "1688:1688"
Sur mon réseau, Pi-hole bloque en moyenne 28% des requêtes DNS — principalement de la publicité, des trackers et de la télémétrie Windows et Android.
Conclusion
Pi-hole est l’un des projets homelab avec le meilleur rapport effort/résultat. Une fois installé, il fonctionne de manière transparente pour tous les appareils du réseau sans aucune configuration côté client.
Comments