AdGuard Home : de l'interface web au filtrage des clients
Résultat attendu
Section intitulée « Résultat attendu »- AdGuard Home gère le port
53d’OpenWrt ; l’interface web est sur3000. dnsmasqpasse sur5353et continue d’assurer le DHCP.- Les clients DHCP reçoivent
192.168.2.1comme DNS. - Une règle de filtrage personnalisée bloque un domaine de test, tandis que les noms normaux sont toujours résolus.
- Le disque de données, la configuration d’AGH et le filtre survivent à un redémarrage.
Environnement concerné et topologie
Section intitulée « Environnement concerné et topologie »- PVE 9.2.2 avec une seule carte réseau ; VM 201 OpenWrt 25.12.6 x86_64 (1 Go de RAM, disque de données de 2 Go).
- WAN
net0survmbr0(DHCP) ; LANnet1sur unvmbr2isolé (192.168.2.0/24). - AGH 0.107.79 issu du dépôt
apkd’OpenWrt. - Ne partagez pas un même pont entre deux VM OpenWrt qui exécutent toutes deux du DHCP : dans ce laboratoire, la VM 200 est sur
vmbr1(192.168.1.0/24), donc la VM 201 doit utiliservmbr2(192.168.2.0/24). Sinon, un client peut recevoir un bail du mauvais sous-réseau.
| Port physique | Bridge PVE | Carte réseau virtuelle | Interface OpenWrt | Rôle |
|---|---|---|---|---|
| nic0 | vmbr0 | net0 | wan DHCP | amont 192.168.50.1 |
| — | vmbr2 | net1 | lan 192.168.2.1 | AGH + clients DHCP |
Ports et responsabilités
Section intitulée « Ports et responsabilités »| Port | Composant | Rôle |
|---|---|---|
| 53 | AdGuard Home | DNS des clients, filtrage, transfert vers l’amont |
| 3000 | AdGuard Home | interface web |
| 5353 | dnsmasq | DHCP et DNS local ; n’est plus sur le 53 |
Ne liez pas AGH et dnsmasq au port 53 en même temps. Ne pointez pas l’option 6 du DHCP vers une adresse qui n’écoute pas sur le 53.
Avant de modifier quoi que ce soit
Section intitulée « Avant de modifier quoi que ce soit »cp /etc/config/dhcp /etc/config/dhcp.bak.$(date +%F)cp /etc/config/adguardhome /etc/config/adguardhome.bak.$(date +%F) 2>/dev/null || truecat /etc/config/dhcpGardez un accès console ou LAN à OpenWrt. Ne faites pas dépendre votre seul chemin de gestion du DNS que vous modifiez.
AttenduVous pouvez restaurer la configuration de dnsmasq et d'AGH.
Étapes minimales
Section intitulée « Étapes minimales »
apk updateapk add adguardhome block-mount e2fsprogse2fsprogs fournit mkfs.ext4 ; block-mount fournit le service fstab. Un miroir OpenWrt local convient, mais les paquets doivent tout de même passer la vérification des signatures.
Attenduadguardhome, block-mount et e2fsprogs sont installés.
N’exécutez ceci que sur un disque de données de laboratoire dont vous avez confirmé qu’il est vide :
mkfs.ext4 -F /dev/sdbmkdir -p /opt/aghmount /dev/sdb /opt/aghblock info /dev/sdbUtilisez l’UUID affiché par block info. Dans LuCI (Mount Points), définissez la cible de ce disque sur /opt/agh et activez-le ; ou repérez le @mount[n] correspondant en ligne de commande :
uci show fstab# find the @mount[n] whose uuid is <your-UUID>uci set fstab.@mount[n].target='/opt/agh'uci set fstab.@mount[n].enabled='1'uci commit fstab/etc/init.d/fstab enableblock mountmount | grep /opt/aghCe laboratoire a utilisé le fstab.@mount[2] détecté automatiquement pour le disque de données de 2 Go ; changer sa cible en /opt/agh et l’activer a fonctionné. Ne copiez pas [2] ; faites la correspondance avec votre UUID.
Attendu/opt/agh se trouve sur un disque séparé et survit au redémarrage.
uci set dhcp.@dnsmasq[0].port='5353'uci commit dhcp/etc/init.d/dnsmasq restartnetstat -lnp | grep -E ':53|:5353'Les clients ne peuvent pas résoudre sur le 53 tant qu’AGH n’a pas démarré.
AttenduLe port 53 est libre et le DHCP fonctionne toujours.
uci set adguardhome.config.work_dir='/opt/agh/work'uci commit adguardhomemkdir -p /opt/agh/workchown -R adguardhome:adguardhome /opt/agh /etc/adguardhome/etc/init.d/adguardhome enable/etc/init.d/adguardhome startsleep 3netstat -lnp | grep -E ':3000|:53'Ouvrez http://192.168.2.1:3000/ et définissez :
- le port web
3000; - le port DNS
53; - un nom d’utilisateur et un mot de passe d’administration ;
- le DNS amont
192.168.50.1pour ce laboratoire ; - désactivez DNSSEC si l’amont ne le valide pas.
Si vous n’avez pas de navigateur, utilisez l’API de configuration d’AGH ; ne versionnez jamais le mot de passe d’administration.
AttenduL'interface web est accessible sur le port 3000.
uci add_list dhcp.lan.dhcp_option='6,192.168.2.1'uci commit dhcp/etc/init.d/dnsmasq restartuci show dhcp.lan | grep dhcp_optionChanger seulement le port de dnsmasq peut empêcher certains clients de recevoir un DNS ; définissez explicitement l’option 6.
AttenduLes clients reçoivent 192.168.2.1 comme DNS.
Dans Filtres → Règles de filtrage personnalisées, ajoutez :
||blocked.example^Il s’agit d’un domaine de test réservé. Ajoutez des listes de filtres maintenues plus tard pour un usage réel. Vérifiez avec nslookup, et non en jugeant que « la page semble cassée ».
Attendublocked.example renvoie 0.0.0.0 ; les noms normaux sont toujours résolus.
Vérification
Section intitulée « Vérification »
netstat -lnp | grep -E ':53|:3000|:5353'nslookup blocked.example 192.168.2.1nslookup openwrt.org 192.168.2.1Attendu : blocked.example renvoie 0.0.0.0 (IPv6 peut aussi afficher ::) ; openwrt.org renvoie une véritable adresse.
AttenduAGH écoute sur 53/3000 ; dnsmasq sur 5353.
ip addr showip routecat /etc/resolv.confnslookup blocked.examplenslookup openwrt.orgSi le DNS du client n’est pas 192.168.2.1, revenez à l’option 6 du DHCP et au port de dnsmasq.
AttenduLe client obtient 192.168.2.x et le DNS 192.168.2.1.
rebootAprès le redémarrage :
mount | grep /opt/aghnetstat -lnp | grep -E ':53|:3000'nslookup blocked.example 192.168.2.1nslookup openwrt.org 192.168.2.1AttenduLe disque de données se monte, AGH démarre et la règle survit.
Branches d’échec et récupération
Section intitulée « Branches d’échec et récupération »AGH ne démarre pas / le port 53 est occupé
Section intitulée « AGH ne démarre pas / le port 53 est occupé »logread | grep -i adguard | tail -50netstat -lnp | grep ':53'/usr/bin/AdGuardHome --check-config -c /etc/adguardhome/adguardhome.yamlSi dnsmasq occupe encore le 53, confirmez dhcp.@dnsmasq[0].port='5353'. Pour une configuration défectueuse, restaurez la sauvegarde :
cp /etc/adguardhome/adguardhome.bak.YYYY-MM-DD /etc/adguardhome/adguardhome.yaml/etc/init.d/adguardhome restartLes clients ne résolvent plus rien
Section intitulée « Les clients ne résolvent plus rien »Rendez temporairement le DNS à dnsmasq :
uci set dhcp.@dnsmasq[0].port='53'uci -q delete dhcp.lan.dhcp_optionuci commit dhcp/etc/init.d/dnsmasq restart/etc/init.d/adguardhome stopRétablissez d’abord la résolution de base, puis diagnostiquez AGH couche par couche.
Le disque de données n’est pas monté
Section intitulée « Le disque de données n’est pas monté »mount | grep /opt/aghblock info /dev/sdblogread | grep -i fstabVérifiez l’UUID, la cible et l’indicateur d’activation dans fstab ; montez manuellement, puis redémarrez AGH.
Le filtrage ne fonctionne pas
Section intitulée « Le filtrage ne fonctionne pas »
- Vérifiez que le client utilise réellement AGH comme DNS.
- Vérifiez que la règle se trouve sous Règles de filtrage personnalisées, et non dans un abonnement.
- Interrogez AGH directement :
nslookup blocked.example 192.168.2.1. - Le DoH du navigateur ou du système peut contourner AGH.
Essai en laboratoire E2 (2026-10-20)
Section intitulée « Essai en laboratoire E2 (2026-10-20) »- Environnement : PVE 9.2.2 avec une seule carte réseau ; VM 201 sous OpenWrt 25.12.6 (1 Go / disque de données de 2 Go) ; AGH 0.107.79.
- Ports : AGH
53+ web3000; dnsmasq5353; option 6 du DHCP192.168.2.1. - Client : DHCP
192.168.2.166/24, DNS192.168.2.1;blocked.example→0.0.0.0,openwrt.org→64.226.122.113. - Redémarrage :
/opt/aghmonté via fstab ; AGH, dnsmasq et les règles de filtrage rétablis ; le web a renvoyé 302. - Non testé : interaction réelle avec l’interface dans un navigateur, listes d’abonnement externes, clients LAN physiques, IPv6, stabilité sur la durée.
Sources et relecture
Section intitulée « Sources et relecture »- Il s’agit d’un relevé de laboratoire E2 ; il n’a pas fait l’objet d’une relecture indépendante ni d’un test sur un LAN physique.
- Recette :
tests/recipes/agh-25.12-vm201.md; notes d’environnement :docs/agh-e2-run.md. - Mettez à jour
testedVersionsquand le paquet ou la version change ; ne copiez pas les scripts d’initialisation d’une version de firmware à l’autre.
Sources
Notes indépendantes sur OpenWrt. Chaque page précise le firmware, l’appareil, le gestionnaire de paquets et le retour arrière.
Icônes : Solar by 480 Design, CC BY 4.0