Wie kann NetworkManager einen DNS-Server oben in /etc/resolv.conf hinzufügen?


11

Im Moment sieht meine /etc/resolv.conf so aus:

# Generated by NetworkManager
nameserver 10.165.246.33
nameserver 192.135.82.60
nameserver 10.165.74.2

Die ersten beiden Nameserver werden automatisch über DHCP konfiguriert. Der letzte ist der, den ich manuell in NetworkManager hinzugefügt habe. Es ist auch das wichtigste, da es unsere internen Domain-Namen auflöst (z build-server-17.our-company-domain.com. B. ).

Das Problem ist, dass NetworkManager es am Ende von hinzufügt. /etc/resolv.confWenn ich also auf eine Intranet-URL zugreife, versucht mein Browser, es mithilfe der ersten beiden Server zu beheben, und es dauert ewig.

Wie kann NetworkManager den manuell konfigurierten DNS-Server vor den automatisch konfigurierten hinzufügen?


1
Im Allgemeinen sollten alle DNS-Server in Ihrer resolv.conf die gleichen Ergebnisse zurückgeben. Mit gemischten Servern gibt es ein Rezept für zeitweise auftretende Ausfälle und viele Schmerzen.
Philip Kendall

Antworten:


3

Ich sehe nicht, welches System speziell angesprochen werden soll, aber wenn Ihr System verwendet wird resolvconf, versuchen Sie Folgendes als root ( su -oder sudo -i):

echo 'nameserver 10.165.74.2' >> /etc/resolvconf/resolv.conf.d/head
resolvconf -u

In dieser Datei befindet sich eine Warnung, die besagt, dass manuelle Änderungen überschrieben werden. Im Kontext gilt die Nachricht jedoch /etc/resolv.confnicht für /etc/resolvconf/resolv.conf.d/head.

Dadurch sollte der gewünschte Nameserver an erster Stelle in der Liste stehen. Wenn dies unter Ihrem Betriebssystem funktioniert, kann 10.165.74.2 natürlich aus NetworkManager entfernt werden.

Der lokale Resolver dnsmasqist auch ein ausgezeichneter Weg nach vorne. Mit dnsmasqkann man viel mehr Kontrolle über DNS und DHCP nutzen. In diesem Szenario dnsmasqkann beispielsweise ein bestimmter Nameserver basierend auf einem angegebenen Domänennamen mit seiner serverOption abgefragt werden . dnsmasq.confUnten sehen Sie einen Ausschnitt davon , der sich möglicherweise auf Ihr Ziel bezieht.

# Add other name servers here, with domain specs if they are for
# non-public domains.
server=/our-company-domain.com/10.165.74.2

Aktualisieren

Vielen Dank für die Erwähnung des Betriebssystems. Unter CentOS 7 gibt es viele Methoden. Klicken Sie in der GUI auf Anwendungen> Systemprogramme> Einstellungen> Netzwerk. Wählen Sie eine zu konfigurierende Verbindung aus.

CentOS 7 NetworkManager - Verbindung konfigurieren

Deaktivieren Sie das automatische DNS und stellen Sie Nameserver bereit. Wenden Sie die Konfiguration an.

CentOS 7 NetworkManager - Statische DNS-Einstellungen anwenden

Wenn NetworkManager das nächste Mal diese Verbindung startet, werden die benutzerdefinierten Werte geschrieben. (Während des Tests habe ich das Netzwerk aus- und wieder eingeschaltet, da ich zwei Netzwerkverbindungen hatte.)

Laut Dokumentation ,

  1. Eine einfache fluchbasierte Textbenutzeroberfläche (TUI) für NetworkManager, nmtui, ist verfügbar.
  2. Das Befehlszeilentool nmcli ermöglicht Benutzern und Skripten die Interaktion mit NetworkManager. Beachten Sie, dass nmcli auf GUI-freien Systemen wie Servern verwendet werden kann, um alle Aspekte von NetworkManager zu steuern. Es ist den GUI-Tools gleichgestellt.

Insbesondere die nmcli Dokumentation sah sehr gut aus.


1
Entschuldigung, es ist CentOS, das kein resolvconfPaket hat. dnsmasqscheint jedoch eine gute Lösung zu sein.
Newbie Linux User

8

Ich habe aus Versehen eine doppelte Frage erstellt hier . Die Antwort ist da, aber im Wesentlichen müssen Sie Folgendes erstellen:

/etc/dhcp/dhclient.conf

falls es noch nicht existiert, und füge hinzu:

prepend domain-name-servers [ip address of server];

Vergessen Sie nicht das Semikolon am Ende!

Nach dem automatischen Neustart wurde die Zeile 'Nameserver [IP-Adresse des Servers]' in der '/etc/resolv.conf' einfach nach oben verschoben!


Wunderbar ! Dies ist das von NetworkManager verwendete Backend und die einzige Möglichkeit, dies mit allen WLAN-Verbindungen (nicht statisch) zum Laufen zu bringen. Vielen Dank !
Adrien M.

0

Es gibt eine andere Möglichkeit, NetworkManager.service nicht zu deaktivieren. Stellen Sie einfach ifcfg-idevice ein:

PEERDNS=no
DNS1=10.165.74.2
DNS2=OTHERDNS
DOMAIN=DEMO.COM

Sie müssen die Einstellungen für /etc/NetworkManager/NetworkManager.conf nicht festlegen, z.

[main]
dns=none
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.