Ubuntu'nun 17.04 ve sonrasında sistemd-çözümünü kullandığını ve bu nedenle bu yanıtın en son Ubuntu sürümleri için geçerli olmadığını unutmayın. " DNS önbelleğini Ubuntu 17.04 ve daha üstü (18.04) temizleme "
Varsayılan olarak, DNS Ubuntu <17.04’te önbelleğe alınmamıştır (ancak ağda veya uygulamada önbelleğe alınmış olabilir)
Bir yolunu veya diğerini dnsmasq
önbelleğe alma olup olmadığını onaylamak ps ax | grep dnsmasq
için, çalıştır komutuna bakın ve bakın. İşte benim varsayılan 13.10 makinemin bir dökümü:
/ usr / sbin / dnsmasq \
--no-resolv \
- ön planda tutma \
--no-hosts \
--bind-arabirimleri \
--pid-file = / var / run / NetworkManager / dnsmasq.pid \
--listen-address = 127.0.1.1 \
--conf-file = / var / run / Ağ Yöneticisi / dnsmasq.conf \
--cache-size = 0 \
- proxy-dnssec \
--enable-dbus = org.freedesktop.NetworkManager.dnsmasq \
--conf-dir = / etc / NetworkManagerın / dnsmasq.d
/etc/NetworkManager/dnsmasq.d
varsayılan olarak boştur. Bu yüzden, içeriye giren herhangi bir geçersiz kılma yok ve sadece kontrol --cache-size=0
etmek ne demek istediğimizi ( sınırsız önbellek yerine ) man dnsmasq
gösteriyor:
-c, --cache-size=<cachesize>
Set the size of dnsmasq's cache. The default is 150 names.
Setting the cache size to zero disables caching.
Bu nedenle, DNS önbelleğe dnsmasq
alınabiliyorken , kutuyu önbelleğe almıyor. Aynı sayfada olup olmadığınızı kontrol etmek için makinenizi ve çeşitli konfigürasyon dizinlerini kontrol edebilirsiniz.
Önbellek sorunları görüyorsanız, bu durum muhtemelen birkaç yerden birinde gerçekleşiyor:
- Bilgisayarınızdan yukarı doğru. Bazı yönlendiriciler önbelleklenir. Birçok kurumsal ağ DNS'i önbelleğe alır. Birçok ISS işleten DNS sunucusu ve kendi önbelleklerini kullanacaklar. Bir ağ önbelleğine karşı garanti vermenin tek yolu, el ile yenileyebileceğiniz bir önbellek kullanmaktır. Bu yüzden OpenDNS'yi seviyorum.
- İstemci uygulamasında (özellikle tarayıcılar). Uygulamalar, Ubuntu'nun üzerinde hiçbir etkisi olmadığı kendi önbellekleme işlemlerini yapabilir. Firefox DNS'i nasıl önbelleğe alır ? Chrome'un DNS önbelleği nasıl temizlenir ? Diğer tarayıcıların (ve uygulamaların) kendi mekanizmaları olabilir.
Namluyu buraya kazıyorum ama belki de önbelleğe almak yerine Ubuntu'da standart olmayan bir DNS sunucusu kurdunuz dnsmasq
. Birçok vardır: nscd
, DJBDNS dnscache
(aka TinyDNS), pdns
, pdnsd
, Bind9 (ve türevleri) ve daha ben bile hatırlamıyorum. Bunlar olacak muhtemelen de kanıtlanabilir /etc/resolv.conf
(vb / resolvconf / `bu dosyayı autogen için / içinde yapılandırma ile). Aşağıda yerel olarak ele alınan bir DNS sorgusu gösterilmektedir:
$ 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
8.8.8.8'e ulaşmıyorsanız (veya DNS sunucunuzun ne olmasını beklerseniz beklemeyin), bunun yerine ne attığınızı kontrol edin. Benim durumumda bunun sadece dnsmasq
LXC için DNS sorgularını yansıtmak üzere kurulduğunu görüyorum , ancak sizin durumunuzda kötü önbellek işleri yapıyor olabilir.
Listelenen önbellekleri yaptıysanız, her birini temizleme işlemi değişiklik gösterir:
sudo /etc/init.d/nscd reload # nscd
sudo /etc/init.d/named restart # bind9
Hafifçe ilgili bir notta, önbelleğe almayı etkinleştirmek için buna bakındnsmasq
.
/etc/hosts
. Etki alanımın eski IP adresinin önbelleğe alındığından emin oldum, ancak yalnızca DNS yayılımı için sabrım olmadığı için bir süre önce eklediğim kaydıstrace ping example.com
kaldırmayı unuttuğumu/etc/hosts
öğrendim.