Perhatikan bahwa Ubuntu menggunakan systemd-resol dari 17.04 dan seterusnya sehingga jawaban ini tidak berlaku lagi untuk versi Ubuntu terbaru. Lihat " flush DNS cache di Ubuntu 17.04 dan lebih tinggi (18.04) "
Secara default, DNS tidak di-cache di Ubuntu <17.04 (tetapi mungkin di-cache di jaringan atau aplikasi)
Untuk mengkonfirmasi satu atau lain cara apakah dnsmasqcaching, jalankan ps ax | grep dnsmasqdan lihat perintah yang berjalan. Berikut ini rincian mesin 13.10 default saya:
/ usr / sbin / dnsmasq \
--no-resolv \
--keep-in-foreground \
--no-host \
--bind-interface \
--pid-file = / var / run / NetworkManager / dnsmasq.pid \
--listen-address = 127.0.1.1 \
--conf-file = / var / run / NetworkManager / dnsmasq.conf \
--cache-size = 0 \
--proxy-dnssec \
--enable-dbus = org.freedesktop.NetworkManager.dnsmasq \
--conf-dir = / etc / NetworkManager / dnsmasq.d
/etc/NetworkManager/dnsmasq.dkosong secara default. Jadi tidak ada override yang masuk ke sana dan hanya untuk memeriksa --cache-size=0artinya apa yang kami pikir artinya (alih-alih cache tidak terbatas ), man dnsmasqmenunjukkan:
-c, --cache-size=<cachesize>
Set the size of dnsmasq's cache. The default is 150 names.
Setting the cache size to zero disables caching.
Jadi, sementara dnsmasq bisa men - cache DNS, itu bukan caching kotak. Anda dapat memeriksa mesin Anda dan berbagai direktori konfigurasi untuk memeriksa Anda berada di halaman yang sama.
Jika Anda melihat masalah cache, ini kemungkinan terjadi di salah satu dari beberapa tempat:
- Hulu dari komputer Anda. Beberapa cache router. Banyak jaringan perusahaan akan melakukan cache DNS. Banyak server DNS yang dijalankan ISP dan akan menggunakan cache mereka sendiri. Satu-satunya cara untuk menjamin terhadap cache jaringan adalah dengan menggunakan cache yang Anda bisa menyegarkan secara manual. Inilah sebabnya saya suka OpenDNS.
- Dalam aplikasi klien (terutama browser). Aplikasi dapat melakukan segala macam caching mereka sendiri yang tidak berpengaruh pada Ubuntu. Bagaimana Firefox melakukan cache DNS . Cara menghapus cache DNS Chrome . Peramban lain (dan aplikasi) mungkin memiliki mekanisme sendiri.
Saya sedang mengais laras di sini, tetapi mungkin Anda telah menginstal server DNS non-standar di Ubuntu alih-alih mengaktifkan caching dnsmasq. Ada banyak: nscd, DJBDNS dnscache(alias TinyDNS), pdns, pdnsd, Bind9 (dan variannya), dan lebih aku bahkan tidak bisa ingat. Ini mungkin akan dibuktikan di /etc/resolv.conf(dengan config di / etc / resolvconf / `untuk autogen file itu). Berikut ini menunjukkan permintaan DNS yang dicegat secara lokal:
$ nslookup askubuntu.com
Server: 127.0.1.1
Address: 127.0.1.1#53
Non-authoritative answer:
Name: askubuntu.com
Address: 198.252.206.24
Jika Anda tidak mencapai 8.8.8.8 (atau apa pun yang Anda harapkan dari server DNS Anda), periksa apa yang Anda pukul. Dalam kasus saya, saya bisa melihat ini hanya dnsmasqdiatur untuk mencerminkan permintaan DNS kembali untuk LXC, tetapi dalam kasus Anda mungkin melakukan hal-hal cachey yang buruk.
Jika Anda telah melakukan cache yang terdaftar, proses untuk menghapus masing-masing bervariasi:
sudo /etc/init.d/nscd reload # nscd
sudo /etc/init.d/named restart # bind9
Pada catatan yang sedikit terkait, lihat ini untuk mengaktifkan cachingdnsmasq .
/etc/hosts. Saya hanya yakin bahwa alamat IP lama dari domain saya sedang di-cache, tetapi hanyastrace ping example.commengungkapkan bahwa saya lupa menghapus/etc/hostscatatan yang saya tambahkan beberapa waktu lalu karena kurang sabar untuk propagasi DNS.