Bagaimana cara menghapus cache DNS di Ubuntu?

45

Saya mengalami masalah terkait dengan pemecahan DNS di Ubuntu 9.10 saya.
Sebelum mengeluh kepada ISP saya, saya ingin menyegarkan cache DNS lokal saya, seperti pada Windows yang kami lakukan ipconfig /flushdns.

Bagaimana saya bisa melakukannya di Ubuntu?

igorsantos07
sumber

Jawaban:

54

Øhh, ubuntu tidak men - cache DNS per default. Jadi tidak ada yang bisa disiram! (tapi mungkin router SOHO Anda). Instalasi nscd akan membuat DNS ubuntu cache, setelah itu Anda dapat menghapus cache - tetapi ini adalah intinya, ketika Anda belum menginstalnya!

pengguna42806
sumber
3
Karena penasaran, saya pada 14,04 dan berjalan nslookupmemberitahu saya bahwa responsnya berasal dari server 127.0.0.1. Tapi - setahu saya - saya tidak memiliki caching DNS yang terpasang (tidak nscdjuga dnsmasq). Saya menggunakan Kubuntu ... mungkinkah ini KDE Network Manager?
exhuma
@ Exuma sama di sini di Ubuntu 14,04 jadi itu bukan hal kubuntu.
LJ_1102
2
@ LJ_1102 @ exhuma Itu akan menjadi manajer jaringan Ubuntu, ia mendengarkan sebagai server DNS lokal, tetapi meneruskan semua permintaan ke apa pun yang didefinisikan. Sebagai efek samping (atau sesuai desain), ini memungkinkan Anda untuk mengubah server DNS dengan cepat dari antarmuka tanpa memerlukan izin root. Lihat misalnya pertanyaan ini: unix.stackexchange.com/questions/59414/...
Raghd Hamzeh
19

Ubuntu 12,04 dan seterusnya menggunakan dnsmasq untuk cache lokal. Mengirimnya SIGHUP (sudo killall -HUP dnsmasq) akan membaca ulang cache.

CATATAN
Ketika menerima SIGHUP, dnsmasq mengosongkan cache-nya dan kemudian memuat kembali / etc / hosts dan / etc / ethers dan file apa saja yang diberikan oleh --dhcp-hostsfile, --dhcp-optsfile atau --addn-hosts. Skrip perubahan sewa dhcp dipanggil untuk semua sewa DHCP yang ada. Jika --no-polling disetel SIGHUP juga membaca ulang /etc/resolv.conf. SIGHUP TIDAK membaca kembali file konfigurasi.

ytjohn
sumber
ini terlihat masuk akal. walaupun, saya harus mencari masalah lain yang saya miliki (yang berhubungan dengan situs baru di / etc / hosts dan Opera) untuk menguji ini dan menandai sebagai diterima sebagai ganti yang lain: P
igorsantos07
Tidak apa-apa. Saya benar-benar menemukan ini mencari untuk menghapus entri dns cache saya sendiri. Namun begitu saya menemukan solusinya, saya merasa saya harus menambahkan temuan saya di sini. Saya tidak tahu pada versi apa Ubuntu mulai menggunakan dnsmasq.
ytjohn
1
Ini berfungsi dan harus benar-benar ditandai sebagai jawabannya!
HDave
1
Jika suntikan minoritas tidak dilarang dan disukai, saya akan memperbaiki "SIGUP" menjadi SIGHUP .
James Haigh
@Igoru: Anda dapat menggunakan diguntuk menguji apakah cache benar-benar telah dihapus. Saya ingin menghapus cache pada salah satu router OpenWrt yang saya coba dig @192.168.0.3 nixos.orgbeberapa kali (domain yang ada akan melakukannya). Ketika di-cache, biasanya akan memiliki waktu permintaan 1 ms, tetapi setelah setiap kali saya mengeluarkan killall -HUP dnsmasq(sebagai root) pada router saya mendapatkan sekitar 27 ms setelah setiap kali saya membersihkannya.
James Haigh
13

Coba yang berikut ini:

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

Ini bekerja untuk saya.

Christian Molina
sumber
1
Saya kira semuanya telah berubah sejak jawaban ini, karena sepertinya ini tidak akan berfungsi lagi di 14.04. Halo ubuntu, alangkah baiknya jika ada antarmuka untuk ini yang tidak terikat dengan spesifikasi sistem resolusi nama tertentu, dan versi OS (dan mungkin distribusi OS nanti ...).
Croad Langshan
Apakah bekerja di 15,04
Milan Simek
Bekerja di ubuntu 14.04.5. Skrip ini disediakan oleh paket pppconfig. Saya pikir itu tidak termasuk secara default dalam distribusi.
ssoto
1

Saya baru saja mengalami masalah dengan situs tempat saya mengubah DNS, dan mencari solusi yang saya temukan di halaman ini.

Dalam pengalaman saya, Firefox terkadang menyimpan cache DNS-nya sendiri dan tidak menghapusnya tepat waktu. Jadi jika Anda melihat situs di Firefox, dan terus melihat situs yang lama, mencoba Chrome mungkin bisa menyelesaikan masalahnya. Jika berhasil, Anda dapat menghapus cache di Firefox. Ini terjadi di Ubuntu, saya tidak tahu apakah ini terjadi pada Windows atau OSX juga.

Saya tidak menginstal nscd. Namun saya perhatikan bahwa di terminal DNS baru ditemukan beberapa menit kemudian, sehingga masalah terpecahkan dengan sendirinya.

SPRBRN
sumber
1

Bergantung pada konteks pertanyaan Anda, Anda mungkin perlu menghapus cache dari browser web Anda juga.

Di Firefox, ini dilakukan oleh: preferensi -> privasi -> hapus riwayat terkini Anda [cukup centang kotak "cache" di sana]

Di Chrome: Navigasikan ke chrome: // net-internal / # dns dan tekan tombol "Bersihkan cache host". (lihat jawaban lain )

Penyadap
sumber