AdGuard Home est un logiciel réseau orienté sécurité et confidentialité, agissant comme un serveur DNS récursif avec des capacités de blocage de publicités et de trackers au niveau du réseau. Contrairement aux extensions de navigateur classiques, il fonctionne de manière centralisée : une seule installation protège l’intégralité des appareils de la maison ou du parc informatique (ordinateurs, smartphones, objets connectés, Smart TV) sans nécessiter de configuration logicielle sur chaque client.
En tant qu’alternative libre et performante à Pi-hole, AdGuard Home offre plusieurs avantages clés pour un administrateur système :
AdGuard Home intercepte les requêtes DNS. Lorsqu’un appareil demande l’adresse IP d’un domaine publicitaire, le serveur répond par une adresse nulle ou vide (NXDOMAIN), empêchant ainsi la connexion. Pour les requêtes légitimes, il les transmet à des résolveurs amonts sécurisés ou utilise son propre cache pour accélérer les réponses futures.
Il existe plusieurs méthodes pour déployer AdGuard Home. Bien que l’installation binaire ou Docker soit possible, l’utilisation d’un conteneur LXC via les scripts de la communauté Proxmox est la solution la plus optimisée pour une infrastructure Proxmox.
Cette méthode automatise la création d’un conteneur Debian léger et l’installation d’AdGuard Home. C’est la solution la plus performante pour isoler le service DNS.
Commandes à utiliser (dans le shell Proxmox) :
# Via GitHub (Source principale)
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/adguard.sh)"
# Via le miroir alternatif
bash -c "$(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVE/raw/branch/main/ct/adguard.sh)"
Idéal si tu souhaites une portabilité totale ou si tu n’utilises pas Proxmox.
services:
adguardhome:
image: adguard/adguardhome:latest
container_name: adguardhome
restart: unless-stopped
# network_mode: host # Recommandé pour utiliser AdGuard comme serveur DHCP
ports:
- "53:53/tcp"
- "53:53/udp"
- "67:67/udp" # Serveur DHCP
- "80:80/tcp" # Interface Web Admin
- "443:443/tcp" # HTTPS / DNS-over-HTTPS (DoH)
- "443:443/udp" # DNS-over-QUIC (DoQ)
- "853:853/tcp" # DNS-over-TLS (DoT)
- "853:853/udp" # DNS-over-QUIC (DoQ)
- "3000:3000/tcp" # Assistant d'installation (initial)
volumes:
- ./confdir:/opt/adguardhome/conf
- ./workdir:/opt/adguardhome/work
Pour une installation native sur Debian/Ubuntu :
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
Sur Ubuntu/Debian, le port 53 est souvent déjà utilisé. Il faut libérer ce port avant de lancer AdGuard Home :
sudo sed -i "s/#DNSStubListener=yes/DNSStubListener=no/" /etc/systemd/resolved.conf
sudo systemctl restart systemd-resolved
Une fois l’installation terminée, la configuration finale s’effectue via l’assistant web.
Ouvrez votre navigateur et saisissez l’adresse IP de votre serveur suivie du port 3000 :
http://<IP_DU_SERVEUR>:3000
Cette étape définit les ports d’écoute internes au service.
80. Si un autre service (comme Nginx) occupe déjà ce port, modifiez-le ici (ex: 81 ou 8080).80). Vous devez laisser ce port tel quel dans l’interface web. C’est dans votre fichier docker-compose.yml que vous gérez la redirection (ex: - "8080:80").Créez votre utilisateur et un mot de passe robuste. Cette interface est sensible car elle contient l’historique de navigation (logs DNS) de votre réseau.
L’assistant vous montre comment configurer vos clients. Une fois validé, le port 3000 est désactivé. L’interface est désormais accessible sur le port défini à l’étape B (ou celui mappé via Docker).
Pour vérifier que votre instance traite bien les demandes, lancez une requête test depuis une autre machine :
# Remplacer <IP_ADGUARD> par l'IP de votre instance
nslookup google.com <IP_ADGUARD>
Cette section permet de définir la stratégie de résolution de noms et les serveurs tiers qui seront interrogés par AdGuard Home.
Le champ « Serveurs DNS amont » accepte plusieurs protocoles. Pour garantir la confidentialité, il est recommandé d’utiliser des protocoles chiffrés comme le DNS-over-HTTPS (DoH).
Exemples basés sur une configuration sécurisée :
https://dns10.quad9.net/dns-query (Quad9 avec protection contre les domaines malveillants)https://dns.cloudflare.com/dns-query (Cloudflare pour la rapidité)AdGuard Home propose plusieurs méthodes pour interroger ces serveurs. Dans une configuration optimisée pour la performance, on utilise généralement :
Ces serveurs (renseignés par leur adresse IP) sont indispensables pour résoudre les noms de domaine de vos serveurs amonts chiffrés.
Exemple de liste de bootstrap DNS robuste :
9.9.9.10 (Quad9)149.112.112.10 (Quad9 secondaire)1.1.1.1 (Cloudflare)1.0.0.1 (Cloudflare secondaire)8.8.8.8 (Google)Le cache permet de répondre instantanément aux requêtes déjà effectuées sans interroger l’extérieur.
4 194 304 octets (4 Mo) pour un usage domestique standard.
Capture d’écran : Configuration des serveurs amonts (DoH) et réglages du cache.
C’est ici que s’opère la « magie » d’AdGuard Home. Cette section permet de définir précisément ce qui doit être bloqué ou autorisé sur votre réseau.
Les listes de blocage sont des fichiers textes (locaux ou distants) contenant des milliers de domaines publicitaires, de trackers ou de sites malveillants.
Si un site légitime est bloqué par erreur (faux positif), vous pouvez ajouter son domaine ici. Les règles d’autorisation ont toujours priorité sur les règles de blocage.
Cette partie permet d’ajouter vos propres règles manuellement en utilisant la syntaxe de type « Adblock ».
||exemple.com^ : Bloque le domaine et tous ses sous-domaines.@@||exemple.com^ : Autorise spécifiquement ce domaine (whitelist manuelle).127.0.0.1 site-local.lan : Permet de faire de la réécriture DNS simple.Une fonctionnalité très pratique qui permet, en un seul clic, de couper l’accès à des plateformes entières (Facebook, YouTube, Twitch, TikTok, etc.) de manière globale ou pour certains clients. C’est l’outil de contrôle parental le plus rapide à mettre en œuvre.
Par défaut, AdGuard Home applique les mêmes règles à tout le monde. La gestion des clients permet de personnaliser le filtrage appareil par appareil.
AdGuard Home peut identifier les appareils de ton réseau de plusieurs façons :
iPhone-Amaury😜).Pour chaque client ajouté, tu peux définir des règles d’exception :
Cette section est l’une des plus simples et des plus puissantes de l’outil. Au lieu de chercher des listes de domaines complexes, AdGuard Home propose des commutateurs pour les plateformes majeures.
Si vous souhaitez qu’AdGuard Home gère entièrement l’attribution des adresses IP de votre réseau (à la place de votre box ou routeur), vous devez activer son serveur DHCP intégré.
L’avantage principal est la visibilité : AdGuard pourra associer chaque requête DNS à un nom d’hôte précis (ex: Google-Home, PC-Salon) plutôt qu’à une simple adresse IP. Cela rend les journaux de requêtes et les statistiques de filtrage beaucoup plus simples à analyser.
network_mode: host pour ne pas être isolé par le bridge interne de Docker.Pour activer le service, vous devrez renseigner :
192.168.2.1).192.168.2.10 à 192.168.2.50).Garder AdGuard Home à jour est crucial pour bénéficier des dernières optimisations du moteur de filtrage et des correctifs de sécurité.
C’est la méthode la plus simple, la plus rapide et elle fonctionne parfaitement pour la majorité des installations (notamment en LXC ou installation binaire).
Si vous utilisez Docker, la mise à jour via l’interface peut parfois échouer ou être réinitialisée au prochain redémarrage du conteneur. Il est alors préférable de mettre à jour l’image :
docker compose pull
docker compose up -d
Pour les installations réalisées sur Proxmox (méthode privilégiée par BlablaLinux), si vous préférez passer par la console, vous pouvez relancer le script de la communauté. Il détectera l’instance existante et effectuera la mise à niveau proprement.
Avant toute mise à jour majeure, il reste prudent de sauvegarder votre configuration. Le fichier essentiel qui contient tous vos réglages est :
/opt/AdGuardHome/AdGuardHome.yaml
Pour sécuriser l’accès à votre interface d’administration et permettre l’utilisation des protocoles DNS-over-HTTPS (DoH) ou DNS-over-TLS (DoT), il est nécessaire de configurer le chiffrement.
Comme on le voit sur la configuration de blablalinux.be, il est recommandé d’utiliser des certificats valides (ex: Let’s Encrypt).
adguard.blablalinux.be).fullchain.pem) et de votre clé privée (privkey.pem).
Capture d’écran : Paramétrage du certificat SSL anonymisé pour sécuriser l’interface.
Une fois le chiffrement activé, AdGuard Home peut écouter sur les ports sécurisés standard :
443 (pour l’interface web et le DoH).853.853.Cette fonctionnalité est extrêmement utile pour la gestion de votre réseau local. Elle permet de faire pointer un nom de domaine (ou un sous-domaine) vers une adresse IP spécifique de votre réseau.
Plutôt que de retenir des adresses IP complexes, vous pouvez créer des noms faciles à retenir :
adguard.blablalinux.be -> 192.168.2.218.*.adguard.blablalinux.be -> 192.168.2.218 (le caractère générique * permet de rediriger tous les sous-domaines vers la même IP).Le DNS est le pilier de votre navigation. Si votre serveur unique tombe (maintenance, mise à jour, panne matérielle), tout le réseau perd l’accès à Internet. Avoir deux instances (un DNS primaire et un DNS secondaire) assure une continuité de service totale. En cas de défaillance du premier, les clients basculent automatiquement sur le second.
Si vous utilisez Proxmox, inutile de tout réinstaller manuellement :
Pour lier vos instances, l’outil de référence est AdGuard Home Sync de Bakito. Deux méthodes s’offrent à vous :
docker-compose.yml disponible sur ByteStash.Voici le fichier de déploiement utilisé dans l’infrastructure BlablaLinux :
# Modifications apportées par Blabla Linux : https://link.blablalinux.be
services:
adguardhome-sync:
image: ghcr.io/bakito/adguardhome-sync:latest
container_name: adguardhome-sync
command: run --config /config/adguardhome-sync.yaml
environment:
- TZ=Europe/Brussels
volumes:
- ./config/adguardhome-sync.yaml:/config/adguardhome-sync.yaml
ports:
- 8080:8080
restart: always
adguardhome-sync.yamlLe fichier de configuration (./config/adguardhome-sync.yaml) doit être ajusté pour établir la liaison. Voici les points impératifs :
https://192.168.2.218:443).insecureSkipVerify: true : Indispensable pour ignorer les alertes SSL sur vos IP locales.192.168.2.219)."0 */2 * * *" pour une synchro toutes les 2 heures).Dans la section features du fichier YAML, certains éléments doivent être désactivés pour éviter de casser votre réseau :
⚠️ Le serveur DHCP : Doit être configuré sur
false. Un réseau local ne peut supporter qu’un seul serveur DHCP actif. Si vous synchronisez et activez le DHCP sur vos deux instances simultanément, vous provoquerez des conflits d’adresses IP majeurs.
statsConfig / queryLogConfig : À laisser sur false pour que chaque instance conserve ses propres statistiques.
Capture d’écran : Validation de la synchronisation réussie entre les deux instances.