gestionnaire de réseau: comment arrêter la mise à jour de nm /etc/resolv.conf

26

Je ne veux pas que le gestionnaire de réseau ajoute des serveurs DNS reçus de DHCP à mon serveur /etc/resolv.conf.

Lors de la configuration à partir de GUI / Connexions / IPV4 et choisissez la méthode Automatique (adresse uniquement), il ajoute toujours les serveurs DNS reçus via DHCP.

Est-il possible de le faire par connexion (ssid spécifique?)

user2913139
la source
Si vous choisissez la méthode «Adresses automatiques (DHCP) uniquement», NetworkManager ne modifiera pas ou ne devrait pas modifier resolv.conf lors de l'activation de cette connexion. Si NetworkManager ajoute en fait des adresses à resolv.conf malgré le paramètre "adresses uniquement", il y a un bogue dans NetworkManager et vous devez signaler ce bogue à l'aide de Launchpad. Pour empêcher NetworkManager de modifier resolv.conf, vous devez sélectionner "Adresses automatiques (DHCP) uniquement" dans toutes les configurations de connexion qui deviennent actives sur votre système.
jdthood
1
Vous pouvez soit utiliser l'interface graphique dans les paramètres IPv4 de la connexion et choisir "adddresses only" dans le mode, soit faire ce que vous faites vous-même en modifiant le fichier de connexion correspondant dans / etc / NetworkManager / system-connections / et en ajoutant ignore-auto -dns = true line vers la section [ipv4].
Sasha Pachev

Réponses:

32

Une façon d'empêcher Network Manager d'ajouter des serveurs DNS au /etc/resolv.conffichier est de procéder comme suit:

Ouvrez d'abord le fichier nm conf /etc/NetworkManager/NetworkManager.conf:

sudo vim /etc/NetworkManager/NetworkManager.conf

Et ajoutez ceci à la [main]section:

dns=none

Sauvegarder et quitter.

krt
la source
La section principale est [main], pas[Main]
AB
/etc/resolv.confest généralement un lien symbolique - êtes-vous sûr de le rendre immuable rend la cible du lien également immuable?
muru
5
Cela ne fonctionne pas pour moi dans Debian Jessie
Dimitri Kopriwa
5
Cela ne fonctionne pas sur Ubuntu 18.04
LuizAngioletti
1
Je devais le faire sudo service network-manager restartavant que la modification du fichier .conf ne prenne effet.
Chris Moore
3

Mon préféré est d'utiliser la ligne supersede domain-name-serversdans /etc/dhcp/dhclient.conf. Quel que soit le point d'accès DNS fourni, votre ubuntu utilisera toujours les DNS spécifiés dansdhclient.conf

Échantillon de mon dossier

#send host-name "andare.fugue.com";
send host-name = gethostname();
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
#supersede domain-name "fugue.com home.vix.com";
supersede domain-name-servers 208.67.220.220;
#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    dhcp6.name-servers, dhcp6.domain-search,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers,
    dhcp6.fqdn, dhcp6.sntp-servers;
#require subnet-mask, domain-name-servers;
Sergiy Kolodyazhnyy
la source
la création d'une ligne comme décrit (en utilisant le serveur 8.8.8.8) ne fonctionne pas sur Ubuntu 18.04.
LuizAngioletti
3
@LuizAngioletti 18.04 utilise un autre type d'application de gestionnaire de réseau, appelé netplan. Cette réponse a été écrite pour les versions antérieures au 18.04. Je peux cependant le mettre à jour plus tard.
Sergiy Kolodyazhnyy
2

/etc/resolv.confest lié à /run/resolvconf/resolv.conf. NetworkManager ne met pas à jour /etc/resolv.conf directement (met uniquement à jour /run/resolvconf/resolv.conf). Alors:

  • supprimer le lien symbolique ( rm /etc/resolv.conf)
  • écrivez votre propre version de /etc/resolv.conf
Taha Jahangir
la source
1
Je sais que c'est un forum ubuntu, mais pendant que je cherchais des centos, c'était toujours mon premier résultat google, donc poster des commentaires pour les futurs googleurs centos. cela n'a pas résolu mon problème sur les centos. Il semble que le gestionnaire de réseau centos travaille directement sur /etc/resolv.conf.
Tommy
Ce n'est certainement pas vrai pour Debian Stretch. Il supprime votre fichier et le remplace par un autre lien symbolique. Très ennuyant.
HörmannHH
En voici un pour Fedora 25 (virtualisé) en utilisant nmcli: /etc/sysconfig/network-scripts/ifcfg-ens3Nous voyons ce PEERDNS=yesqui signifie (dans ce cas, faux) que les informations DNS sont obtenues par DHCP, et elles finissent en /etc/resolv.conf. Je veux juste 127.0.0.1 comme serveur de noms. nmcli con mod ens3 ipf4.ignore-auto.dns yesRésultat en cours d'exécution PEERDNS=nodans le fichier de configuration de l'interface. Cependant, /etc/resolv.confil a toujours une namseserverentrée errante , donc si vous devez redémarrer la connexion nmcli con down ens3; nmcli con up ens3. Voir aussi: certdepot.net/rhel7-configure-ipv4-addresses
David Tonhofer
Sur Ubuntu 18.04, le redémarrage du «redémarrage du gestionnaire de réseau de service» entraînera le remplacement de NM par /etc/resolv.conf même s'il s'agit d'un fichier dur et non d'un lien symbolique.
LuizAngioletti
0

Ce que j'ai fait sur Debian Stretch:

  • rm /etc/resolv.conf ### (le lien symbolique)
  • touchez /etc/resolv.conf
  • echo "nameserver xxxx" >> /etc/resolv.conf

Où "xxxx" est votre adresse IP de serveur DNS préférée, que ce soit par OpenDNS, Google ou Cloudflare par exemple.

Merci pour l'idée Taha Jahangir! Je peux confirmer que votre suggestion a fonctionné pour ma distribution Debian Stretch

Emmanuel Supermanu15
la source