web-dev-qa-db-fra.com

Comment supprimer un serveur de noms localhost de resolv.conf

Actuellement, mon /etc/resolv.conf se lit comme suit:

nameserver 127.0.0.1  
nameserver 10.255.0.101  
nameserver 10.255.0.11  

et je veux qu'il se lise à la place:

search [my domain]  
nameserver 10.255.0.101  
nameserver 10.255.0.11  
nameserver 208.67.222.222  
nameserver 208.67.220.220  

Étant donné que /etc/resolv.conf et /etc/resolv.conf.d/head ne peuvent pas être modifiés manuellement, comment puis-je effectuer cette modification?

8
user217676

Tout d'abord, /etc/resolvconf/resolv.conf.d/head peut être modifié à la main. Le commentaire dans le fichier qui dit DO NOT EDIT THIS FILE BY HAND ne s'applique pas à /etc/resolvconf/resolv.conf.d/head lui-même mais à /etc/resolv.conf, auquel l'ancien est ajouté.

Cela dit, dans des circonstances normales, vous ne devriez pas avoir à modifier /etc/resolvconf/resolv.conf.d/head.

Les fichiers /etc/resolvconf/resolv.conf.d/head et /etc/resolvconf/resolv.conf.d/tail sont fournis comme moyen de forcer la tête et la queue sur le resolv.conf généré si cela est nécessaire dans des circonstances exceptionnelles, mais si vous utilisez resolvconf correctement et dans des circonstances normales, vous n'êtes pas obligé de le faire.

Vous dites que le contenu du fichier est

nameserver 127.0.0.1
nameserver 10.255.0.101
nameserver 10.255.0.11

La présence de la ligne nameserver 127.0.0.1 suggère que vous exécutez un serveur de noms de transfert local tel que Dnsmasq. Le fichier ci-dessus n'est pas ce que resolvconf génère normalement dans ces circonstances. Il génère normalement un fichier comme suit.

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
search foo.com

Ma conjecture est que, sur votre système, /etc/resolv.conf n'est pas un lien symbolique vers ../run/resolvconf/resolv.conf mais est un fichier brut qui peut ou non être généré par autre chose que resolvconf. Si le fichier est complètement statique, éditez-le simplement pour qu'il ressemble à ce que vous souhaitez. Si le fichier est généré par un outil autre que resolvconf, déterminez quel outil génère le fichier et configurez-le.

Vous pouvez également restaurer le lien symbolique /etc/resolv.conf -> ../run/resolvconf/resolv.conf et configurer resolvconf correctement.

Comment supprimer le serveur de noms localhost de resolv.conf?

Les instructions suivantes ne concernent que le cas où vous utilisez resolvconf pour gérer /etc/resolv.conf, c'est-à-dire, /etc/resolv.conf est un lien symbolique vers ../run/resolvconf/resolv.conf.

Si la ligne nameserver 127.0.0.1 se trouve dans l’un des fichiers de /etc/resolvconf/resolv.conf.d/, supprimez-la de là.

Sinon, cette ligne provient d'un serveur de noms exécuté localement. Désinstallez ce serveur de noms ou configurez-le de manière à ne pas enregistrer l'adresse 127.0.0.1 avec resolvconf. En particulier, si vous exécutez BIND 9 nommé localement, supprimez-le ou définissez RESOLVCONF=no dans /etc/default/bind9.

Réf.: https://bugs.launchpad.net/debian/+source/bind9/+bug/93372

5
jdthood

Essayer

Sudo vi /run/resolvconf/interface/NetworkManager

Supprimez ou remplacez le serveur de noms 127.0.0.1, puis utilisez

Sudo resolvconf -u.
2
Mitre Slavchev

Vérifiez votre configuration NetworkManager:

Sudo NetworkManager --print-config

s'il y a

dns=systemd-resolved

puis modifiez les paramètres dans

/run/resolvconf/interface/systemd-resolved

et mise à jour

Sudo resolvconf -u

Dans mon cas il y avait aussi

/run/resolvconf/interface/tun0.openvpn

fichier (créé par OpenVPN) pouvant être supprimé en toute sécurité pour éviter les interférences:

Sudo rm /run/resolvconf/interface/tun0.openvpn
1
Valery Markov