Ist es /etc/resolv.conf
in Ubuntu 12.04 LTS (Precise Pangolin) nutzlos ?
Ich sehe, dass die DNS-Serverinformationen jetzt in NetworkManager gespeichert werden . Das nmcli
Kommandozeilen-Tool kann das für Sie auflisten.
Wenn ich einen weiteren DNS- Server hinzufügen möchte , wird dieser /etc/resolv.conf
mithilfe der resolvconf
Pakethilfe hinzugefügt ?
resolv.conf
PnotNP
quelle
quelle
nm-tool
nicht seinnmcli
.Antworten:
Wenn
/etc/resolv.conf
enthält,nameserver 127.0.0.1
dann Hinzufügen von Einträgen/etc/resolvconf/resolv.conf.d/tail
nicht wirklich etwas Sinnvolles.Wenn Sie NetworkManager verwenden, sollten Sie stattdessen statisch Nameserveradressen über die Netzwerkanzeige hinzufügen : Verbindungen bearbeiten ... | Bearbeiten ... | IPv4-Einstellungen | Zusätzliche DNS-Server .
Wenn Sie wirklich weitere Einträge hinzufügen möchten
/etc/resolv.conf
, erstellen Sie einen/etc/resolvconf/resolv.conf.d/tail
und fügen Sie sie dort hinzu.Wie bei jeder Ubuntu-Version wird empfohlen, die Ubuntu-Versionshinweise zu lesen, die hier verfügbar sind:
Die Abschnitte Desktop und Common Infrastructure enthalten einen Link zu
quelle
/etc/resolvconf/resolv.conf.d/tail
Datei oder der Verwendung von Network Manager? Vielen Dank.dns-nameservers
Sie einfach Ihren eth0-Abschnitt in hinzu/etc/network/interfaces
./etc/resolvconf/update.d/libc
auf Ubuntu 14.04.1 Server:# Set TRUNCATE_NAMESERVER_LIST_AFTER_LOOPBACK_ADDRESS=no
# to allow additional nameserver addresses to be listed in
# resolv.conf after an initial loopback address 127.* or ::1.
(setzen Sie es in/etc/default/resolvconf
, als Zeile 23 und 24 der/etc/resolvconf/update.d/libc
Show.Ich habe hier einen anderen Ansatz gefunden , bei dem eine Zeile wie die folgende hinzugefügt wird
/etc/dhcp/dhclient.conf
:Ebenso habe ich hier einen dritten Ansatz gefunden , bei dem Zeilen hinzugefügt werden zu
/etc/network/interfaces
:Update: Hier ist die offizielle Dokumentation für den dritten Ansatz.
quelle
third approach
bei weitem der einfachste Weg ist./etc/resolvconf/resolv.conf.d/head
(nach Überwindung der irreführenden "NICHT BEARBEITEN" Kommentar dort :))Es hört sich so an, als würden Sie über das resolvconf-Paket sprechen.
Installieren Sie das resolvconf- Paket.
Lauf
Der Anfang der Datei ist eine beängstigende Warnung. Die Datei /etc/resolv.conf wird automatisch aus dem Inhalt dieser Datei generiert. Die Warnung ist dort und wird in /etc/resolv.conf abgelegt, wenn /etc/resolv.conf generiert wird. Fügen Sie am Ende der Datei hinzu
Drücken Sie Ctrl xund antworten Sie mit Ja, um die Datei zu speichern. Generieren Sie abschließend /etc/resolv.conf neu, damit die Änderungen sofort angewendet werden:
Überprüfen Sie dann den Inhalt von /etc/resolv.conf, um zu sehen, ob die von Ihnen hinzugefügte Zeile nun vorhanden ist. Außerdem ist es beim nächsten Start Ihres Computers oder beim nächsten Neustart Ihres Netzwerkdienstes immer noch vorhanden, je nachdem, was zuerst eintritt.
quelle
Im Folgenden zeige ich Ihnen den besten Weg, den ich gefunden habe, seit ich die Ubuntu Server Edition ausführe und ifup anstelle von NetworkManager verwende.
Eigentlich haben sie mir das erleichtert :) indem sie alles in die Datei / etc / network / interfaces geschrieben haben. Die gleichen Konfigurationen, die Sie in die Datei resolv.conf geschrieben hätten, können sich jetzt in der gleichen Datei befinden wie Ihre Netzwerkadapterkonfigurationen wie im folgenden Beispiel:
Ich hoffe, das hilft und erleichtert es mir, jetzt können wir statische IP-Adressen erstellen und Nameserver und DNS-Domain in einer Datei hinzufügen :)
quelle
Auf meinem läuft Ubuntu Server 12.04. Ich habe die folgenden Änderungen vorgenommen und den Server neu gestartet (in der Regel kann dies nur durch Herunterfahren der Netzwerkschnittstelle erfolgen, d. H.
ifdown eth0
Oderifup eth0
).In der Datei habe
/etc/resolvconf/resolv.conf.d/base
ich folgende Einträge hinzugefügt:Ich hoffe das hilft!
quelle
Sie können den NetworkManager wie in Franks Antwort angegeben verwenden. Wenn Sie ihn jedoch lieber manuell bearbeiten möchten
/etc/resolv.conf
, können Sie ihn löschen (es handelt sich tatsächlich um einen Symlink) und anschließend eine neue einfache Datei mit dem gewünschten Inhalt erstellen. Dasresolvconf
Dienstprogramm schreibt immer nur in die Datei/run/resolvconf/resolv.conf
.quelle
Hinweis: Diese Antwort bezog sich auf eine andere Version der Frage vor dem Zusammenführen, wobei der Schwerpunkt nur auf dem Voranstellen eines gewünschten Nameservers lag.
Dies funktioniert vor dem 12.04:
Bearbeiten
/etc/dhcp3/dhclient.conf
und hinzufügen:prepend domain-name-servers 127.0.0.1;
(Tatsächlich ist diese Zeile bereits vorhanden. Sie müssen sie nur auskommentieren.)
quelle
man dhclient.conf
ausführen, um auf die dhclient-Manpage zuzugreifen. (Dies ist keine Antwort auf Azendales Frage.)resolvconf
ist nutzlos. Ich bin auf einem Linux-Server und meine IP-Adresse ist statisch und meine DNS- Server sind statisch. Ich brauche nichtresolvconf
oder Networkmanager .Einfach zu halten ist meine Richtlinie, wenn ich auf einem Server arbeite. Je geringer die Komplexität, desto einfacher ist es, Probleme zu verwalten und zu beheben.
Also habe ich
aptitude purge resolvconf
manuell sichergestellt, dass/etc/resolv.conf
es sich nicht um einen Symlink handelt, und nur eine statische Datei erstellt. Nur für den Fall, dass ein Programm versucht, die Datei zu ändern, habe ichchattr +i
(unveränderlich)/etc/resolv.conf
als Vorsichtsmaßnahme.quelle
Die meisten der oben genannten Dinge setzen ein makelloses System voraus, aber die Realität sieht oft so aus, dass Sie verschiedene DHCP-Clients installiert, den Netzwerkmanager in bestimmten früheren Versionen von Ubuntu deaktiviert usw. haben. Ich benutze dnsmasq schon eine Weile, habe es aber deinstalliert. Derzeit hatte mein System den folgenden Inhalt
/etc/resolv.conf
(der symbolisch/run/resolvconf/resolv.conf
auf mein System verweist):Es spielt keine Rolle, wie oft ich den Nameserver starte
sudo resolvconf -u
odersudo dpkg-reconfigure resolvconf
aktualisiere, es ist nicht so, wie ich es im NetworkManager eingestellt habe. Die Informationen, die resolvconf vom NetworkManager verwendet, waren vorhanden:Es stellt sich jedoch heraus, dass diese Datei möglicherweise überhaupt nicht verwendet wird, wenn sich in diesem Verzeichnis mehrere Dateien befinden. Der Täter war eine Datei, die bei der Deinstallation von dnsmasq nicht entfernt wurde:
Das Entfernen dieser Datei (und das
sudo resolvconf -u
anschließende Ausführen ) löste meine DNS-Probleme:Ich hoffe, dies hilft auch anderen beim Debuggen (den komplexen Wechselwirkungen zwischen all diesen verschiedenen Netzwerkwerkzeugen). Wenn Sie verwenden,
resolvconf
stellen Sie sicher, dass Sie ausgeführt werden, umls /run/resolvconf/interfaces
zu sehen, was dort ist.quelle
/run/resolvconf/interface/
Verzeichnis, aber meineNetworkManager
Datei brauchte etwas Liebe. Ihre Antwort hat mir geholfen, dieses Problem zu lösen.Ich habe gerade einen Link in gelöscht
/etc/resolv.conf
und eine reguläre Datei mit den Adressen der Nameserver erstellt. Es funktioniert und ich sehe keinen Grund, diese seltsame Konstruktion zu verwenden, die die Ubuntu-Entwickler erstellt haben.quelle
Sie können die Verbindung "AUTO ETH0" oder einen anderen Namen für die Verbindung in NM bearbeiten. Klicken Sie dazu mit der rechten Maustaste auf NM und wählen Sie "Verbindungen bearbeiten ...". Auf der Registerkarte IPv4 können Sie "Nur automatische (DHCP) Adressen" als "Methode" auswählen, und NM ermöglicht es Ihnen, die Nameserver-Adresse (n) manuell festzulegen, auch wenn Adressen über DHCP übermittelt werden.
quelle
Hier ist ein anderer Weg, um mein Bit zur bereits langen Liste hinzuzufügen (getestet am 12.04):
Bearbeiten Sie
/run/resolvconf/interface/NetworkManager
, um Ihren Bedürfnissen zu entsprechen. Hier ist ein Beispiel:Führen Sie dann, wie für die meisten anderen Beispiele angegeben, a
sudo resolvconf -u
. Jetzt siehst du so ausresolv.conf
:Ich mag die Art und Weise, wie sie jetzt implementiert wird, immer noch nicht (anscheinend benötigt Ubuntu einen Dienst für jedes Foo, das es macht) und würde es mit
resolv.conf
Sicherheit vorziehen, einen einfachen zu verwenden. Dieser Ansatz scheint mir jedoch der beste Kompromiss zu sein. Der hinzugefügte "localhost-NS" sollte nicht zu sehr schaden.quelle
Ich habe das behoben, indem ich die Reihenfolge der Quellen geändert habe. Ich habe die
dns
Quelle schon einmal verschobenmdns
in/etc/nsswitch.conf
:Auf diese Weise können Sie Ihre Einstellungen beibehalten und den lokalen Caching-Server weiterhin verwenden.
quelle
Wie wäre es mit:
Verwenden Sie zuvor Network Manager, um die DNS-Adresse und die Methode in zu ändern
Führen Sie dann den obigen Befehl aus und starten Sie neu. Das war die Lösung für mich.
quelle
quelle
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
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.)
quelle
Eine andere Möglichkeit ist die Definition von Docker-spezifischen DNS-Servern unter:
Wenn Sie keine solche Datei haben, erstellen Sie sie einfach:
Quelle: https://robinwinslow.uk/2016/06/23/fix-docker-networking-dns/
Siehe auch: https://docs.docker.com/engine/reference/commandline/dockerd/#/daemon-configuration-file
quelle
Befolgen Sie die Anweisungen unter https://developers.google.com/speed/public-dns/docs/using , um DNS zu ändern
Gehe zum Netzwerk
Wählen Sie die Verbindung aus, für die Sie den DNS konfigurieren möchten.
Um die Einstellungen für eine drahtlose Verbindung zu ändern, wählen Sie die Registerkarte Drahtlos und anschließend das entsprechende drahtlose Netzwerk.
Klicken Sie auf den Pfeil (rechts) und wählen Sie im angezeigten Fenster die Registerkarte IPv4-Einstellungen oder IPv6-Einstellungen.
Wenn die ausgewählte Methode Automatisch (DHCP) ist, öffnen Sie die Dropdown-Liste und wählen Sie stattdessen Nur automatische (DHCP) Adressen. Wenn die Methode auf etwas anderes festgelegt ist, ändern Sie sie nicht.
Geben Sie im Feld DNS-Server die durch Komma getrennten DNS-IP-Adressen ein
quelle
0. Temporären DNS hinzufügen. Bearbeite /etc/resolv.conf.
1.Installieren oder aktualisieren Sie resolvconf.
2. Fügen Sie Ihren Nameserver in /etc/resolvconf/resolv.conf.d/tail ein
3.Starten Sie Ihren Computer neu.
quelle