Dies ist eine sehr beliebte Frage mit einer Sammlung möglicher Standardantworten, die alle, IMO, ziemlich abgedreht sind. Ich hatte immer Probleme, Ubuntu dazu zu bringen, die DNS-Einstellungen zu respektieren, die ich in NetworkManager eingerichtet habe - insbesondere die Einstellung statischer DNS-Server mit "nur automatischen (DHCP-) Adressen" - und heute habe ich endlich herausgefunden, was WIRKLICH FALSCH ist.
Das Problem liegt in der Interaktion zwischen resolvconf und NetworkManager. resolvconf hat diese Datei aufgerufen /etc/resolvconf/interface-order
. Zumindest auf meinen Systemen ist NetworkManager überhaupt nicht in dieser Datei enthalten (mit der Ausnahme, dass es am Ende durch den Platzhalter * verdeckt ist). Was also passiert, ist, dass der letzte Bericht von dhclient an resolvconf Vorrang vor allem hat, was NetworkManager zu sagen hat.
Zumindest in meinem Fall war die eigentliche Antwort also das Hinzufügen
NetworkManager
am oder in der Nähe der Spitze von /etc/resolvconf/interface-order
.
(Ja, ich weiß, dass viele Leute einfach "uninstall resolvconf" sagen, was für mich an und für sich eine schlechte Idee ist. Aber mehr als das, betrachten es zumindest weise und xenial, resolvconf als einen wichtigen Teil des Systems [dh ubuntu] -minimal hängt davon ab], daher wäre es schwierig, Ihr System ohne resolvconf in einem konsistenten, aktualisierten Zustand zu halten.)
Auf Anfrage kann ich weitere Einzelheiten darüber mitteilen, wie ich das herausgefunden habe. ( EDIT : anscheinend habe ich das nicht getan, als es angefordert wurde, sorry. An diesem Punkt erinnere ich mich nicht an viel mehr Details als das, was ich als nächstes sage :) Kurz gesagt, ich habe die ausführbare Datei resolvconf durch einen Shell-Wrapper ersetzt die ihre Argumente, Eingabe, Ausgabe und stderr in Dateien abgelegt hat; und set -x zu den Aktualisierungsskripten von resolvconf hinzugefügt.
( EDIT : Ich kann sagen, was ich mit dem ersten Teil meine, ist, dass ich sudo verwendet habe, um die eigentliche ausführbare Datei von resolvconf zu verschieben, die mit dem Befehl which oder dem Befehl type gefunden werden kann. Dann erstelle ich ein Shell-Skript, das letztendlich nur die verschobenen Dateien ausführt Ich erinnere mich nicht, wo sich die Aktualisierungsskripte von "resolvconf" befinden und was derzeit nicht so einfach zu überprüfen ist. Ich denke, ich verwende die Shell-Umleitung, um stdin, stdout und stderr an verschiedene andere Dateien zu senden Viele Linuxfreaks können herausfinden, was ich meine, vielleicht liefert ein guter Samariter in einem Kommentar noch mehr Details.)
nm-tool
nicht seinnmcli
.