Perché il risultato di nslookup proviene sempre dal server 127.0.0.1


11

Trovo piuttosto confuso che nslookup ottenga sempre risultati dal Server 127.0.0.1

Lo fa perché Ubuntu utilizza una cache DNS locale di dnsmasq ? Ma l'ho chiuso e svuotato la mia cache dns, quindi nslookup un host che non ho mai visitato, quindi l'output è ancora 127.0.0.1.

Questo mi rende piuttosto confuso. Qualcuno può spiegare questo per me? A proposito, il mio server DNS è impostato su 8.8.8.8.

Risposte:


11

Di default Ubuntu memorizza nella cache le voci DNS con Dnsmasq. Dnsmasq esegue una ricerca quando una voce DNS non è nella sua cache, motivo per cui vedrai sempre l' indirizzo localhost( 127.0.0.1) IP quando esegui una ricerca DNS senza specificare il nameserver.

Nella manpage è spiegato come segue:

Dnsmasq accetta le query DNS e le risponde da un piccolo cache locale o le inoltra a un server DNS reale, ricorsivo. Carica il contenuto di / etc / hosts in modo che i nomi host locali che non compaiono nel DNS globale possano essere risolti e risponda anche alle query DNS per gli host configurati DHCP.

Questo comportamento può essere ignorato modificando /etc/NetworkManager/NetworkManager.confe cambiando dns=dnsmasqin #dns=dnsmasq, dopodiché sarà necessario riavviare il servizio gestore di rete ( sudo service network-manager restart).

Ulteriori informazioni sono disponibili nella documentazione della comunità e nella pagina man .


1
Grazie per la risposta. Non ho capito che Dnsmasq fa una ricerca quando una voce DNS non è nella cache. Molte grazie!
47dev47null

cosa fare se non c'è già una dns=dnsmasqlinea?
Douglas Gaskell,

@DouglasGaskell: questa risposta è obsoleta: credo che Ubuntu sia passato alla systemd-resolvedversione 17.04. Vedi: askubuntu.com/questions/907246/…
Silke

2

controlla se

cat /etc/NetworkManager/NetworkManager.conf

[principale]

plugin = ifupdown, keyfile

dns = dnsmasq

[Ifupdown]

gestito = false

hash (#) out dns = dnsmasq

salva il file e riavvia la rete.

Se non si desidera un resolver locale, è possibile disattivarlo DNSMASQ utilizzando la seguente procedura

È necessario modificare il file /etc/NetworkManager/NetworkManager.conf

gksudo gedit /etc/NetworkManager/NetworkManager.conf

e commentare la seguente riga da

dns=dnsmasq

per

#dns=dnsmasq

Salva ed esci dal file

Ora è necessario il gestore di rete utilizzando il seguente comando

sudo restart network-manager

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.