Netzwerkmanager: So stoppen Sie die nm-Aktualisierung von /etc/resolv.conf


26

Ich möchte nicht, dass der Netzwerkmanager von DHCP empfangene DNS - Server zu meinen hinzufügt /etc/resolv.conf.

Bei der Konfiguration über GUI / Connections / IPV4 und Auswahl der Methode Automatisch (nur Adresse) werden weiterhin über DHCP empfangene DNS-Server hinzugefügt.

Ist es möglich, es pro Verbindung zu tun (spezifische SSID?)


Wenn Sie die Methode "Nur automatische (DHCP) Adressen" auswählen, wird oder sollte NetworkManager beim Aktivieren dieser Verbindung die Datei resolv.conf nicht ändern. Wenn NetworkManager trotz der Einstellung "nur Adressen" tatsächlich Adressen zu resolv.conf hinzufügt, liegt ein Fehler in NetworkManager vor, den Sie über Launchpad melden sollten. Um zu verhindern, dass NetworkManager die Datei resolv.conf ändert, sollten Sie in allen Verbindungskonfigurationen, die auf Ihrem System aktiv werden, "Nur automatische (DHCP-) Adressen" auswählen.
jdthood

1
Sie können entweder die Benutzeroberfläche in den IPv4-Einstellungen für die Verbindung verwenden und im Modus "Nur Adressen hinzufügen" auswählen oder die entsprechende Verbindungsdatei in / etc / NetworkManager / system-connections / bearbeiten und ignore-auto hinzufügen -dns = true Zeile zum Abschnitt [ipv4].
Sasha Pachev

Antworten:


32

So verhindern Sie, dass Network Manager DNS-Server zur /etc/resolv.confDatei hinzufügt :

Öffnen Sie zuerst die nm conf-Datei /etc/NetworkManager/NetworkManager.conf:

sudo vim /etc/NetworkManager/NetworkManager.conf

Und füge dies dem [main]Abschnitt hinzu:

dns=none

Speichern und schließen.


Der Hauptteil ist [main], nicht[Main]
AB

/etc/resolv.confist normalerweise ein Symlink - sind Sie sicher, dass das Ziel des Links auch unveränderlich ist, wenn Sie es unveränderlich machen?
muru

5
Dies funktioniert bei mir in debian jessie nicht
Dimitri Kopriwa

5
Dies funktioniert nicht auf Ubuntu 18.04
LuizAngioletti

1
Ich musste sudo service network-manager restartvor der Änderung an der .conf-Datei wirksam werden.
Chris Moore

3

Mein persönlicher Favorit ist die Verwendung von Line- supersede domain-name-serversIn /etc/dhcp/dhclient.conf. Unabhängig davon, welchen DNS-Zugangspunkt zur Verfügung stellt, verwendet Ihr Ubuntu immer die DNS, die in angegeben sinddhclient.conf

Probe aus meiner Akte

#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;

Das Erstellen einer Zeile wie beschrieben (unter Verwendung von Server 8.8.8.8) funktioniert unter Ubuntu 18.04 nicht.
LuizAngioletti

3
@LuizAngioletti 18.04 verwendet eine andere Art von Netzwerkmanager-Anwendung, genannt netplan. Diese Antwort wurde für Releases vor 18.04 geschrieben. Ich kann es aber später aktualisieren.
Sergiy Kolodyazhnyy

2

/etc/resolv.confist verbunden mit /run/resolvconf/resolv.conf. NetworkManager aktualisiert /etc/resolv.conf nicht direkt (nur /run/resolvconf/resolv.conf). So:

  • Symlink entfernen ( rm /etc/resolv.conf)
  • Schreiben Sie Ihre eigene Version von /etc/resolv.conf

1
Ich weiß, dass dies ein Ubuntu-Forum ist, aber während ich nach Centos gegoogelt habe, war dies immer noch mein erstes Google-Ergebnis. Dies hat mein Problem mit Centos nicht gelöst. Anscheinend arbeitet der centos-Netzwerkmanager direkt an /etc/resolv.conf.
Tommy

Dies gilt mit Sicherheit nicht für Debian Stretch. Es entfernt Ihre Datei und ersetzt sie durch einen anderen Symlink. Sehr nervig.
HörmannHH

Hier ist eine für (virtualisierte) Fedora 25-Anwendungen nmcli: In sehen /etc/sysconfig/network-scripts/ifcfg-ens3wir, dass PEERDNS=yes(in diesem Fall falsch) DNS-Informationen von DHCP abgerufen werden und in landen /etc/resolv.conf. Ich möchte nur 127.0.0.1 als Nameserver. Laufendes nmcli con mod ens3 ipf4.ignore-auto.dns yesErgebnis in PEERDNS=noder Interface-Konfigurationsdatei. Hat aber /etc/resolv.confnoch streunende namseserverEinreise, also wenn die Verbindung neu gestartet werden muss nmcli con down ens3; nmcli con up ens3. Siehe auch: certdepot.net/rhel7-configure-ipv4-addresses
David Tonhofer

Unter Ubuntu 18.04 führt ein Neustart von 'service network-manager restart' dazu, dass NM die Datei /etc/resolv.conf überschreibt, auch wenn es sich um eine harte Datei und keinen Symlink handelt.
LuizAngioletti

0

Was ich auf Debian Stretch gemacht habe:

  • rm /etc/resolv.conf ### (der symlink)
  • Berühren Sie /etc/resolv.conf
  • echo "nameserver xxxx" >> /etc/resolv.conf

Wobei "xxxx" Ihre bevorzugte DNS-Server-IP-Adresse ist, sei es von OpenDNS, Google oder Cloudflare.

Danke für die Idee, Taha Jahangir! Ich kann bestätigen, dass Ihr Vorschlag für meine Debian Stretch-Distribution funktioniert hat

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.