🛠 Serveur de blocage de pub réseau avec Pi-hole
Objectifs
Déployer un service réseau réel sur la Zero 2 W : Pi-hole, serveur DNS filtrant les domaines publicitaires et de traçage pour tout le foyer. Les prérequis officiels (512 Mo de RAM, Raspberry Pi OS) correspondent exactement à la Zero 2 W — c'est son cas d'usage idéal, avec une consommation d'environ 1,8 W en service. Vous apprendrez : IP statique, service systemd, journalisation sur la SD avec modération.
Matériel
- 1 Raspberry Pi Zero 2 W connectée au réseau (Wi-Fi 2,4 GHz ou gadget/USB selon les tutos précédents)
- Accès à l'interface de la box (pour pointer les clients DNS vers l'IP de la Zero 2 W)
- Une alimentation stable 2 A — le serveur tourne 24/7 et la gamme Zero ne signale jamais les sous-tensions
Code complet
# IP statique recommandée (ex. via la box en bail réservé, ou :
sudo raspi-config nonint do_wifi_static_ip ... # ou /etc/dhcpcd.conf à la main)
# Installation officielle :
curl -sSL https://install.pi-hole.net | bash
# L'installateur demande : interface (wlan0), upstream DNS (celui de la box),
# interface d'admin (web), mot de passe du tableau de bord.
# Vérifications :
pihole status # DNS active
dig +short doubleclick.net @127.0.0.1 # doit répondre 0.0.0.0
pihole query ad.doubleclick.net # trace de résolution
# Pointer les clients : DHCP de la box -> DNS = IP de la Zero 2 W
# Tableau de bord : http://IP_DE_LA_ZERO2W/admin
Vérification attendue
« pihole status » affiche « Status: Active » ; un « dig » de test sur un domaine blacklisté renvoie 0.0.0.0. Après avoir pointé un appareil vers ce DNS, le tableau de bord commence à compter les requêtes bloquées en direct. La charge CPU reste très faible : le quad A53 est largement dimensionné pour ce rôle.
Erreurs fréquentes
- DNS en boucle : mettre la Zero 2 W elle-même comme upstream DNS — elle ne résoudra plus rien. Upstream = la box ou 1.1.1.1.
- Corruption de la SD à force de journaliser : limiter la rétention des logs (Paramètrès > Démon), voire passer la base en RAM (lighttpd/dnsmasq ont des options cache) — 512 Mo de RAM et une SD bas de gamme sont un couple fragile.
- Oublier de faire expirer les baux DHCP : les vieux clients gardent l'ancien DNS et « Pi-hole ne marche pas sur ce téléphone ».
Autres tutoriels pour cette carte
- Premier démarrage de la Zero 2 W sans écran (headless)
- Se connecter au Wi-Fi (et comprendre les limites 2,4 GHz / WPA2)
- Surveiller la température et la fréquence de la Zero 2 W
- GPIO en Python : LED et bouton avec gpiozero
- Le tour de passe-passe « clé USB Linux » : Ethernet sur USB (g_ether)
- Remettre une Zero 2 W en état de boot : usbboot et boot files
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash