Warum das nslookup-Ergebnis immer vom Server 127.0.0.1 stammt

11

Ich finde es ziemlich verwirrt, dass nslookup immer ein Ergebnis von Server 127.0.0.1 erhält

Liegt es daran, dass Ubuntu einen lokalen DNS-Cache von dnsmasq verwendet ? Aber ich habe es geschlossen und meinen DNS-Cache geleert, dann einen Host nslookup, den ich nie besucht habe, dann ist die Ausgabe immer noch 127.0.0.1.

Das macht mich ziemlich verwirrt. Kann mir das jemand erklären? Mein DNS-Server ist übrigens auf 8.8.8.8 eingestellt.

47dev47null
quelle

Antworten:

11

Standardmäßig speichert Ubuntu DNS-Einträge tatsächlich mit Dnsmasq zwischen. Dnsmasq führt eine Suche durch, wenn sich ein DNS-Eintrag nicht im Cache befindet. Daher wird bei einer DNS-Suche ohne Angabe des Nameservers immer die IP-Adresse localhost( 127.0.0.1) angezeigt.

In der Manpage wird es wie folgt erklärt:

Dnsmasq akzeptiert DNS-Abfragen und beantwortet sie entweder aus einem kleinen lokalen Cache oder leitet sie an einen echten, rekursiven DNS-Server weiter. Es lädt den Inhalt von / etc / hosts, sodass lokale Hostnamen, die nicht im globalen DNS angezeigt werden, aufgelöst werden können, und beantwortet auch DNS-Anfragen für DHCP-konfigurierte Hosts.

Dieses Verhalten kann durch Bearbeiten /etc/NetworkManager/NetworkManager.confund Ändern dns=dnsmasqin überschrieben werden. Anschließend müssen #dns=dnsmasqSie den Netzwerkmanager-Dienst ( sudo service network-manager restart) neu starten .

Weitere Informationen finden Sie in der Community-Dokumentation und auf der Manpage .

Silke
quelle
1
Danke für die Antwort. Ich habe nicht bemerkt, dass Dnsmasq eine Suche durchführt, wenn sich ein DNS-Eintrag nicht im Cache befindet. Danke vielmals!
47dev47null
Was tun, wenn bereits keine dns=dnsmasqLeitung vorhanden ist?
Douglas Gaskell
@DouglasGaskell: Diese Antwort ist veraltet: Ich glaube, Ubuntu hat systemd-resolvedin Version 17.04 umgestellt . Siehe: askubuntu.com/questions/907246/…
Silke
2

Überprüfen Sie, ob

cat /etc/NetworkManager/NetworkManager.conf

[Main]

Plugins = ifupdown, Schlüsseldatei

dns = dnsmasq

[ifupdown]

verwaltet = falsch

Hash (#) out dns = dnsmasq

Speichern Sie die Datei und starten Sie das Netzwerk neu.

Wenn Sie keinen lokalen Resolver möchten, können Sie DNSMASQ wie folgt deaktivieren

Sie müssen die Datei /etc/NetworkManager/NetworkManager.conf bearbeiten

gksudo gedit /etc/NetworkManager/NetworkManager.conf

und kommentieren Sie die folgende Zeile aus

dns=dnsmasq

zu

#dns=dnsmasq

Speichern und beenden Sie die Datei

Jetzt müssen Sie den Netzwerkmanager mit dem folgenden Befehl ausführen

sudo restart network-manager

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

Sourav Mishra
quelle