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 dnsmasq
caching, jalankan ps ax | grep dnsmasq
dan 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.d
kosong secara default. Jadi tidak ada override yang masuk ke sana dan hanya untuk memeriksa --cache-size=0
artinya apa yang kami pikir artinya (alih-alih cache tidak terbatas ), man dnsmasq
menunjukkan:
-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 dnsmasq
diatur 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.com
mengungkapkan bahwa saya lupa menghapus/etc/hosts
catatan yang saya tambahkan beberapa waktu lalu karena kurang sabar untuk propagasi DNS.