Objectif#
L’objectif principal est de désactiver l’écoute de systemd-resolved sur le port 53 pour éviter les conflits avec d’autres services DNS ou pour des raisons de configuration spécifique.

Le DNSStubListener est un paramètre de systemd-resolved qui permet à celui-ci d’agir comme un serveur DNS local intermédiaire (proxy-résolveur) qui écoute sur les adresses loopback 127.0.0.53 et 127.0.0.54 sur le port 53. Son fonctionnement repose sur quatre piliers :
Interception : Il capte toutes les requêtes DNS émises par vos applications et votre navigateur.
Mise en cache : Il stocke les réponses en mémoire. Si vous sollicitez un domaine déjà connu, il fournit l’adresse IP instantanément sans interroger le réseau extérieur.
Relai : S’il n’a pas la réponse, il renvoie la question aux “vrais” serveurs DNS configurés (ceux de votre FAI ou de votre configuration réseau).
Sécurisation : Il est capable de transformer une requête standard “en clair” en une requête chiffrée via DNS-over-TLS (DoT) avant qu’elle ne quitte votre machine. Systemd resolved DNS-over-TLS par Aditya Thebe
Étapes à suivre#
1. Désactiver le DNS Stub Listener de systemd-resolved#
Par défaut, systemd-resolved écoute sur le port 53 pour fournir un service DNS local. Pour désactiver cette fonctionnalité, modifiez le fichier de configuration de systemd-resolved :
sudo nano /etc/systemd/resolved.conf
Ajoutez ou décommenter les lignes suivantes pour désactiver le DNS Stub Listener :
[Resolve]
DNSStubListener=no
2. Recréer le lien symbolique /etc/resolv.conf#
Pour s’assurer que la résolution DNS fonctionne correctement, nous allons recréer le lien symbolique de /etc/resolv.conf vers /run/systemd/resolve/resolv.conf:
sudo rm /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
3. Redémarrer systemd-resolved#
Après avoir modifié le fichier de configuration et créé le lien symbolique, redémarrez le service systemd-resolved pour appliquer les changements :
sudo systemctl restart systemd-resolved
4. Vérifier que systemd-resolved n’écoute plus sur le port 53#
Utilisez la commande suivante pour vérifier que systemd-resolved n’écoute plus sur le port 53 :
sudo netstat -ntaup | grep 53
Si la commande netstat n’est pas disponible au niveau de votre système vous pouvez installer le paquet net-tools pour l’obtenir ou utiliser la commande ss:
sudo ss -tulnp | grep 53
Si Systemd-resolved n’écoute plus sur le port 53 (ou aucun autre service), vous êtes libre de configurer un nouveau service DNS écoutant sur celui-ci.
Exemple#
Configurer un autre service DNS (Debian 13)
Si vous souhaitez utiliser un autre service DNS, comme BIND9 il vous suffit juste de l’installer par défaut le service DNS BIND9 écoutera sur le port 53.
sudo apt update
sudo apt install bind9
Si vous l’avez déjà installé, il vous suffit de le redémarrer :
sudo systemctl restart bind9
En relancant la commande précédante netstat ou ss, on s’apercoit que l’on a un nouveau service qui écoute sur le port 53 :

Comme nous pouvons le constater, le service Bind9 n’écoute que sur l’adresse de loopback 127.0.0.1 (différent de 127.0.0.53-54) donc pas de risque de conflit entre Systemd-resolved et Bind9, néanmoins certains services DNS peuvent être configuré pour écouter sur toutes les interfaces 0.0.0.0:53.
Dépannage#
Si vous rencontrez des problèmes après avoir désactivé le DNSStubListener de systemd-resolved, voici quelques astuces :
Vérifier les logs de systemd-resolved :
sudo journalctl -u systemd-resolved
Vérifier la configuration DNS, assurez-vous que votre configuration DNS est correcte et que les serveurs DNS sont accessibles. Vous pouvez utiliser la commande suivante pour tester la résolution DNS :
nslookup cloudflare.com
Si votre système ne parviens plus à résoudre les noms de domaines (et par ailleurs accéder à internet), vérifier q’une adresse de serveur dns est présent dans votre fichier /etc/resolv.conf :
nameserver 1.1.1.1 # Cloudflare Public DNS
N’hésiter pas à redémarrer les services réseau, si vous rencontrez des problèmes de connectivité :
sudo systemctl restart networking
Conclusion#
En suivant ces étapes, vous devriez pouvoir empêcher systemd-resolved d’écouter sur le port 53 et configurer un autre service DNS si nécessaire. Assurez-vous de tester votre configuration pour vous assurer que tout fonctionne comme prévu.
