Nameserver 127.0.1.1 in der resolv.conf geht nicht weg!

60

Ich habe gelesen, dass ich nameserver 127.0.1.1in meiner /etc/resolv.confDatei nur haben sollte, wenn mein Rechner einen eigenen DNS-Server hat. Da dies nicht der Fall ist, verursacht es Probleme. Aber egal was ich tue, ich kann es nicht loswerden!

Hier sind die Dinge, die ich bisher getan habe:

  1. Hinzufügen nameserver 192.168.1.3zur /etc/resolvconf/resolv.conf.d/baseDatei. (192.168.1.3 ist der DNS unseres Netzwerks).
  2. Laufen: sudo resolvconf --enable-updates.
  3. Laufen: sudo resolvconf -u.
  4. Laufen: sudo service network-manager restart(nur um sicher zu gehen).

Doch wenn ich die öffnen /etc/resolv.confDatei heißt es: nameserver 127.0.1.1! Hat jemand eine Ahnung, was los ist?

Bitte beachten Sie, dass es tatsächlich ist 127.0.1.1! Und ich habe keine Ahnung, warum es nicht ist 127.0.0.1!

Selbst wenn ich das /etc/resolv.confmanuell aktualisiere und es auf etwas anderes ändere, sudo resolvconf -uwird es auf zurückgesetzt 127.0.1.1! Woher kommt diese Adresse?

Mehran
quelle

Antworten:

100

Networkmanager ist das Programm, das (über das resolvconf Dienstprogramm) Adresse fügt 127.0.1.1in resolv.conf. NM fügt diese Adresse nur ein, wenn es so konfiguriert ist, dass eine Instanz des dnsmasq-Programms als lokaler Weiterleitungs-Nameserver gestartet wird. Diese dnsmasq-Instanz wartet auf Abfragen unter der Adresse 127.0.1.1.

Wenn Sie keinen lokalen Weiterleitungs-Nameserver verwenden möchten, konfigurieren Sie NetworkManager so, dass keine dnsmasq-Instanz gestartet und diese Adresse nicht eingefügt wird. In /etc/NetworkManager/NetworkManager.confder Zeile auskommentierendns=dnsmasq

sudo nano /etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq

und starten Sie den NetworkManager-Dienst neu.

sudo service network-manager restart

In diesem Modus aktualisiert NetworkManager /etc/resolv.conf(weiterhin über resolvconf) die Nameserver-Adressen, die NetworkManager für aktive Verbindungen hat.

Wenn Sie den resolvconf-Mechanismus zum Aktualisieren von resolv.conf deaktivieren und nur eine statische resolv.conf-Datei verwenden möchten, gehen Sie wie folgt vor.

sudo rm -f /etc/resolv.conf  # Delete the symbolic link
sudo nano /etc/resolv.conf   # Create static file

# Content of static resolv.conf
nameserver 8.8.4.4
nameserver 8.8.8.8
2707974
quelle
Ich habe 3 DNS und die Abfrage erreicht nie den 3., wenn ich dnsmasq deaktiviere, irgendein Tipp? Ich möchte Google abfragen und dann die DNS des Intranets abfragen. Danke
JorgeeFG
3
restart network-managerfunktioniert nicht mit Xenial, da systemd anstelle von upstart verwendet wird. versuchensystemctl restart network-manager
Matthias Weiler
Meine Frage ist das dnsmasq Programm, welches DNS Bediener fragt? Wird der DNS-Server des DHCP nach der Abfrage der Host-IP-Adresse gefragt?
Uhr ZHONG
11

Möglicherweise ist resolvconf falsch konfiguriert. Dies ist besonders wahrscheinlich, wenn Sie mit den Konfigurationsdateien herumgespielt haben, ohne wirklich zu verstehen, wie resolvconf und NetworkManager funktionieren.

Hintergrundinformationen finden Sie in der resolvconf-Dokumentation und im Blog-Beitrag von Stéphane Graber.

https://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

Zuerst sollten Sie wissen, dass sowohl Ubuntu Desktop als auch Ubuntu Server standardmäßig resolvconf installiert und aktiviert haben. Resolvconf bietet ein Framework für die geordnete und umkehrbare dynamische Aktualisierung der Datei /etc/resolv.conf.

Zweitens sollten Sie wissen, dass auf Ubuntu Desktop standardmäßig NetworkManager installiert und aktiviert ist. Standardmäßig startet NetworkManager eine Instanz von dnsmasq als lokalen Weiterleitungs-Nameserver. Diese von NetworkManager gesteuerte dnsmasq-Instanz wartet auf Abfragen unter 127.0.1.1. Wenn NetworkManager die dnsmasq-Instanz startet, weist es resolvconf an, die Adresse 127.0.1.1in resolv.conf einzufügen. Wie in einer anderen Antwort erwähnt, startet NetworkManager, wenn Sie eine Instanz des Nameservers für die lokale Weiterleitung nicht konfigurieren, keinen Nameserver für die lokale Weiterleitung und weist resolvconf nicht an, die Adresse 127.0.1.1in resolv.conf einzufügen.

Diese Standardkonfiguration funktioniert ordnungsgemäß. Sofern Ihre Situation nicht besonders ist, sollten Sie die Standardkonfiguration wiederherstellen.

Um die Standardkonfiguration wiederherzustellen, sorgen Sie dafür, dass

  • /etc/resolvconf/resolv.conf.d/head enthält nur den Text der resolvconf-Kopfzeile, der aus zwei Zeilen besteht, die mit einem #Zeichen beginnen
  • /etc/resolvconf/resolv.conf.d/base ist eine leere Datei
  • /etc/resolvconf/resolv.conf.d/tail ist eine leere Datei
  • /etc/resolv.conf ist eine symbolische Verknüpfung mit Inhalten ../run/resolvconf/resolv.conf

Führen Sie dazu die folgenden Befehle aus.

sudo su
dpkg-reconfigure resolvconf   # And answer `Yes` to agree to dynamic updates
cd /etc/resolvconf/resolv.conf.d
echo '# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN' > head
rm -f base tail original
:> base
:> tail

Die ursprüngliche Konfiguration von NetworkManager ist zu haben

[main]
...
dns=dnsmasq
...

in /etc/NetworkManager/NetworkManager.conf. Es ist eine vernünftige Wahl, den von NetworkManager gesteuerten Nameserver für die lokale Weiterleitung zu deaktivieren, indem Sie die dns=dnsmasqZeile auskommentieren .

[main]
...
#dns=dnsmasq
...

Nach alledem ist es ratsam, den Computer neu zu starten, um veraltete Nameserver-Informationssätze zu löschen.

sudo reboot
jdthood
quelle
1

In meinem Fall war keine dns=dnsmasqZeile in der /etc/NetworkManager/NetworkManager.confDatei und /etc/resolv.confwurde immer noch von Network Manager überschrieben, um nur zu habennameserver 127.0.1.1

Das Update bestand darin, einen Symlink für die ordnungsgemäße Aktualisierung wiederherzustellen:

sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf
Valery Markov
quelle