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 dnsmasqiç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.dvarsayılan olarak boştur. Bu yüzden, içeriye giren herhangi bir geçersiz kılma yok ve sadece kontrol --cache-size=0etmek ne demek istediğimizi ( sınırsız önbellek yerine ) man dnsmasqgö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 dnsmasqLXC 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.comkaldırmayı unuttuğumu/etc/hostsöğrendim.