Come svuotare la cache DNS in Ubuntu?


45

Sto riscontrando problemi relativi alla risoluzione DNS nel mio Ubuntu 9.10.
Prima di lamentarmi con il mio ISP, vorrei aggiornare la mia cache DNS locale, come in Windows ipconfig /flushdns.

Come posso farlo in Ubuntu?

Risposte:


54

Øhh, Ubuntu non memorizza nella cache DNS per impostazione predefinita. Quindi non c'è nulla da scaricare! (ma forse il tuo router SOHO lo fa). L'installazione di nscd renderà ubuntu cache DNS, dopodiché puoi svuotare la cache - ma questo è oltre il punto, quando non lo hai ancora installato!


3
Per curiosità, sono il 14.04 e la corsa nslookupmi dice che la risposta arriva dal server 127.0.0.1. Ma - per quanto ne sappia - non ho installato il caching DNS (né nscddnsmasq). Sono su Kubuntu ... potrebbe essere una cosa di KDE Network Manager?
exhuma,

@exhuma stesso qui su Ubuntu 14.04, quindi non è una cosa di Kubuntu.
LJ_1102,

2
@ LJ_1102 @ exhuma Sarebbe il gestore di rete di Ubuntu, ascolta come un server DNS locale, ma inoltra tutte le richieste a qualunque cosa sia definita. Come effetto collaterale (o in base alla progettazione), questo ti consente di cambiare i server DNS al volo dall'interfaccia senza bisogno delle autorizzazioni di root. Vedi ad esempio questa domanda: unix.stackexchange.com/questions/59414/…
Raghd Hamzeh,

19

Ubuntu 12.04 in poi usa dnsmasq per una cache locale. Inviandolo un SIGHUP (sudo killall -HUP dnsmasq) rileggerà la cache.

NOTE
Quando riceve un SIGHUP, dnsmasq cancella la sua cache e quindi ricarica / etc / hosts e / etc / ether e qualsiasi file fornito da --dhcp-hostsfile, --dhcp-optsfile o --addn-hosts. Lo script di modifica del lease dhcp viene chiamato per tutti i lease DHCP esistenti. Se --no-poll è impostato, SIGHUP rilegge anche /etc/resolv.conf. SIGHUP NON rilegge il file di configurazione.


questo sembra ragionevole. anche se, devo trovare un altro dei problemi che avevo (che sono correlati a nuovi siti in / etc / hosts e Opera) per testare questo e contrassegnare come accettato invece dell'altro: P
igorsantos07

Va bene. In realtà mi sono imbattuto in questo cercando di cancellare la mia voce DNS memorizzata nella cache. Una volta che ho trovato la soluzione, ho sentito che avrei dovuto aggiungere i miei risultati qui. Non so a quale versione Ubuntu abbia iniziato a usare dnsmasq.
ytjohn,

1
Funziona e dovrebbe davvero essere contrassegnato come la risposta!
HDave il

1
Se le modifiche di minoranza non fossero vietate e disapprovate, correggerei "SIGUP" in SIGHUP .
James Haigh,

@Igoru: è possibile utilizzare digper verificare se la cache è stata effettivamente cancellata. Volevo cancellare la cache su uno dei miei router OpenWrt per i quali ho provato dig @192.168.0.3 nixos.orgpiù volte (qualsiasi dominio esistente lo farà). Durante la memorizzazione nella cache, di solito avrebbe un tempo di query di 1 ms, ma dopo ogni volta che ho emesso killall -HUP dnsmasq(come root) sul router ho ricevuto circa 27 ms dopo ogni volta che lo ho cancellato.
James Haigh,

13

Prova quanto segue:

sudo /etc/init.d/dns-clean start

Per me funziona.


1
Immagino che le cose siano cambiate da questa risposta, dato che sembra che non funzionerà più in 14.04. Ehi Ubuntu, sarebbe bello se ci fosse un'interfaccia per questo che non fosse legata a specifiche di particolari sistemi di risoluzione dei nomi e versioni del sistema operativo (e forse distribuzioni del sistema operativo in seguito ...).
Croad Langshan,

Funziona nel 15.04
Milano Simek,

Ha funzionato in Ubuntu 14.04.5. Questo script è fornito dal pacchetto pppconfig. Penso che non sia incluso di default nella distribuzione.
ssoto,

1

Ho appena avuto questo problema con un sito per il quale ho cambiato il DNS e cercando su Google una soluzione ho trovato questa pagina.

Nella mia esperienza, Firefox a volte mantiene la propria cache DNS e non la cancella in tempo. Quindi, se stai visualizzando un sito in Firefox e continui a vedere il vecchio sito, provare Chrome potrebbe risolvere il problema. Se funziona, puoi cancellare la cache in Firefox. Questo è successo in Ubuntu, non so se ciò accada anche su Windows o OSX.

Non ho installato nscd. Ho notato tuttavia che nel terminale il nuovo DNS si trova alcuni minuti dopo, quindi il problema si è risolto da solo.


1

A seconda del contesto della domanda, potrebbe essere necessario svuotare anche la cache del browser Web.

In Firefox questo è fatto da: preferenze -> privacy -> cancella la tua cronologia recente [spunta la casella "cache" lì]

In Chrome: vai su chrome: // net-internals / # dns e premi il pulsante "Svuota cache host". (vedi un'altra risposta )

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.