Ubuntu a une écoute résolue par systemd sur le port 53 par défaut. Si vous souhaitez exécuter votre propre serveur DNS, vous ne pouvez pas car le port 53 est déjà utilisé, vous obtenez donc un message d'erreur similaire à celui-ci :"listen tcp 0.0.0.0 :53 : bind :adresse déjà utilisée ".
Cet article explique comment empêcher systemd-resolved d'utiliser le port 53 sur Ubuntu. Les instructions ont été testées sur Ubuntu 20.04, mais devraient également fonctionner sur d'autres versions d'Ubuntu, par ex. Ubuntu 18.04, le prochain Ubuntu 20.10, ainsi que les distributions Linux basées sur Ubuntu telles que Pop! _OS, Zorin OS, Elementary OS, Linux Mint et bientôt. Fondamentalement, cela fonctionne sur n'importe quel système avec la version 232 de systemd ou une version plus récente.
Pour voir si le port 53 est utilisé sur votre système, utilisez :
sudo lsof -i :53
Exemple avec une sortie montrant que systemd-resolved utilise le port 53 sur un système Ubuntu 20.04 standard :
$ sudo lsof -i :53
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 610 systemd-resolve 12u IPv4 19377 0t0 UDP localhost:domain
systemd-r 610 systemd-resolve 13u IPv4 19378 0t0 TCP localhost:domain (LISTEN)
Si vous n'obtenez aucune sortie, cela signifie que le port 53 n'est pas utilisé.
Comment empêcher systemd-resolved d'utiliser le port 53 sur Ubuntu
Il est à noter que vous pouvez partager le port 53 simplement en le décommentant DNSStubListener
et configurez-le no
en /etc/systemd/resolved.conf
. Les autres étapes consistent à activer un serveur DNS - sans lui, votre système ne peut pas résoudre les noms de domaine, vous ne pouvez donc pas visiter les sites Web dans le navigateur Web, etc.
1. Pour modifier /etc/systemd/resolved.conf
ouvert avec un éditeur de texte (en tant que root), par ex. avec l'éditeur de texte Nano Console :
sudo nano /etc/systemd/resolved.conf
Et décommentez (supprimez #
de face) le DNS=
Ligne et le DNSStubListener=
La gestion. Ensuite, modifiez le DNS=
Indiquez dans ce fichier la valeur du serveur DNS que vous souhaitez utiliser (par exemple, 127.0.0.1 pour utiliser un proxy local, 1.1.1.1 pour utiliser le DNS Cloudflare, etc.) et modifiez également le DNSStubListener=
valeur de yes
à no
.
Voici à quoi devrait ressembler le fichier après avoir apporté ces modifications (j'utilise 1.1.1.1 comme serveur DNS, le DNS Cloudflare) :
[Resolve]
DNS=1.1.1.1
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no
DNSStubListener=no
#ReadEtcHosts=yes
Pour enregistrer le fichier à l'aide de l'éditeur de texte nano, appuyez sur Ctrl + x
, puis tapez y
et appuyez sur Enter
.
2. Créer un lien symbolique pour /run/systemd/resolve/resolv.conf
avec /etc/resolv.conf
comme objectif :
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
Ici, -s
est utilisé pour créer un lien symbolique et non physique, et -f
est utilisé pour supprimer les fichiers cibles existants (il supprime donc /etc/resolv.conf
si disponible).
3. Redémarrez votre système.
Le port 53 devrait maintenant être libre sur votre système Ubuntu et vous ne devriez plus recevoir d'erreurs du type « listen tcp 127.0.0.1:53 :bind :address deja in use ».
Vous pouvez vérifier si le port 53 est utilisé ou non en exécutant sudo lsof -i :53
– Si le port 53 n'est pas utilisé, cette commande ne doit afficher aucune sortie.
Vous aimerez peut-être :
- Comment vider le cache DNS sous Linux (pour systemd-resolved, BIND, Dnsmasq ou nscd)
- Comment changer définitivement l'adresse MAC sous Linux
Comment annuler les modifications
Souhaitez-vous annuler les modifications que vous avez apportées en suivant les instructions de cet article ? C'est ce que vous devez faire.
1. Commencer à modifier /etc/systemd/resolved.conf
ouvert avec un éditeur de texte (en tant que root), par ex. avec l'éditeur de texte Nano Console :
sudo nano /etc/systemd/resolved.conf
Et commentez (ajoutez #
devant la ligne) DNS=
et DNSStubListener=no
puis enregistrez le fichier. Pour enregistrer le fichier à l'aide de l'éditeur de texte nano, appuyez sur Ctrl + x
, puis tapez y
et appuyez sur Enter
.
2 . Supprimez ce /etc/resolv.conf
lien symbolique :
sudo rm /etc/resolv.conf
3 . Redémarrez votre système.