Windows, macOS ve Linux'ta DNS önbelleği nasıl temizlenir
DNS önbelleğini temizlemek için Windows’ta ipconfig /flushdns, macOS’te sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder, veya systemd-resolved kullanan Linux’ta resolvectl flush-caches çalıştırın. Tam komut işletim sisteminize ve, Linux’ta, hangi çözümleyiciyi çalıştırdığına bağlıdır.
DNS önbelleği nedir ve temizlemek neden işe yarar
Bir cihaz bir ana bilgisayar adını bir IP adresine çözdüğünde, bir sonraki istekte yeniden sormak yerine yanıtı bir süre saklar. Bu saklanan yanıt işletim sisteminin DNS önbelleğinde yaşar, ve bunun üzerinde tarayıcınızın tuttuğu DNS önbelleğinden ayrıdır. Önbellekleme tarayıcıyı hızlı yapan şeydir: o olmasaydı, bir sayfadaki her varlığa yapılan her istek yeni bir sorguyu tetiklerdi.
Bir kayıt değiştiği an önbellek bir soruna dönüşür. Bir site yeni bir IP adresine taşındıysa, barındırma sağlayıcısını değiştirdiyse, veya bir CNAME’i güncellediyse, makineniz önbelleğe alınmış girdi süresi dolana kadar eski değerle yanıt vermeye devam edebilir. Çözümleyiciler ayrıca "bu isim mevcut değil" anlamına gelen negatif yanıtları, alan adının SOA kaydında belirlenen bir süre boyunca önbelleğe alır, bu yüzden yeni çalışmaya başlayan bir isim yerel olarak birkaç dakika daha başarısız olabilir. Önbelleği temizlemek, bir sonraki sorgunun saklanan her ne ise onu yeniden kullanmak yerine yeni baştan dışarı çıkmasını sağlar.
Windows’ta DNS nasıl temizlenir
- Komut İstemi’ni açın. Microsoft’un kendi sorun giderme adımları, DNS komutları için yükseltilmiş bir istem kullanır (sağ tıklayıp Yönetici olarak çalıştır), bu yüzden normal sürüm garip davranırsa oradan başlayın.
ipconfig /flushdnskomutunu çalıştırın. Microsoft Learn’ün komut için dokümantasyonuna göre, bu "DNS istemci çözümleyici önbelleğinin içeriğini temizler ve sıfırlar", hem negatif girdileri hem de dinamik olarak önbelleğe alınmış her şeyi atar.- Çözümleyici önbelleğindeki her şeyi listeleyen
ipconfig /displaydnsile işe yaradığını doğrulayın. Bir temizlemenin hemen ardından bu neredeyse boş bir liste döndürmelidir; birkaç siteye göz atın ve yeni girdilerin yeniden dolduğunu görmek için tekrar çalıştırın.
Eski bir adres tekrar tekrar geri geliyorsa, DHCP tarafından atanan DNS sunucularının kendisi de kiralamayla birlikte önbelleğe alınmış olabilir. Adaptörü serbest bırakıp yenilemek ikisini de alır:
ipconfig /release
ipconfig /renew
macOS’te DNS nasıl temizlenir
Komut, makinenin macOS sürümünün ne kadar eski olduğuna bağlıdır, ve modern bir Mac için yanlışını kullanmak sessizce hiçbir şey yapmaz.
- Yosemite 10.10.4 ve o zamandan beri her sürüm (Sequoia, Sonoma, Ventura, Monterey ve Big Sur dahil şu anda desteklenen tüm macOS sürümlerini kapsar):
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder. İlk komut Directory Service önbelleğini temizler; ikincisi mDNSResponder’a bir HUP sinyali göndererek yeniden başlamasını ve elinde tuttuğu her şeyi bırakmasını sağlar. - Yalnızca Yosemite 10.10 ile 10.10.3 arası farklı bir araç kullandı:
sudo discoveryutil mdnsflushcache. - Mavericks, Mountain Lion ve Lion: tek başına
sudo killall -HUP mDNSResponderyeterliydi. - Snow Leopard (10.6 ile 10.6.8 arası): killall adımı olmadan tek başına
sudo dscacheutil -flushcache.
2014’ün Yosemite güncellemesinden öncesine ait yeterince eski bir Mac’iniz olmadığı sürece ilk komutu kullanın. Her iki parça da hesap şifrenizi gerektirir, ve komut başarılı olduğunda hiçbir çıktı üretmez.
Linux’ta DNS nasıl temizlenir
Linux’un temizlenecek tek bir DNS önbelleği yoktur, çünkü dağıtımlar farklı çözümleyici yığınları gönderir. Bir komut seçmeden önce hangisinin etkin olduğunu kontrol edin.
Önce resolvectl status çalıştırın. Arayüz başına DNS ayarları döndürüyorsa, makine, güncel Ubuntu, Fedora ve diğer çoğu modern dağıtımda varsayılan olan systemd-resolved’ı çalıştırıyordur. Komut bulunamazsa, diğer iki yaygın hizmeti kontrol edin: systemctl status nscd veya systemctl status dnsmasq (veya systemd kullanılmıyorsa, süreci ps aux | grep -E ’nscd|dnsmasq’ ile arayın).
- systemd-resolved (systemd 239 ve sonrası):
resolvectl flush-caches. systemd kılavuzu bunu, hizmetin yerel olarak sürdürdüğü "tüm DNS kaynak kaydı önbelleklerini" temizlemek olarak tanımlar. Geçerli önbellek boyutunu bildirenresolvectl statisticsile işe yaradığını kontrol edebilirsiniz. - Daha eski systemd’de (239 yeniden adlandırmasından önce) systemd-resolved:
sudo systemd-resolve --flush-caches. Bazı güncel dağıtımlar,resolvectleklendikten sonra bile bunu bir uyumluluk takma adı olarak tutar, bu yüzdenresolvectleksikkensystemd-resolvemevcutsa denemeye değer. - nscd:
sudo systemctl restart nscdtüm hizmeti yeniden başlatır ve önbelleğini onunla birlikte temizler. Yeniden başlatmadan yalnızca hosts önbelleğini geçersiz kılmak için, bu bayrağı gönderen dağıtımlardasudo nscd -i hostsişe yarar. - dnsmasq: kendi man sayfasına göre, ona bir HUP sinyali göndermek hizmeti düşürmeden önbelleği temizler:
sudo killall -HUP dnsmasq. Düz birsudo systemctl restart dnsmasqda işe yarar ve ayrıca yapılandırmasını yeniden yükler.
Tarayıcının kendi DNS önbelleği nasıl temizlenir
Chrome, işletim sisteminden ayrı kendi DNS önbelleğini tutar, bu yüzden yalnızca işletim sistemi önbelleğini temizlemek bir değişikliğin etkisini görmek için genellikle yeterli değildir. chrome://net-internals/#dns adresini açın ve Clear host cache’e tıklayın. Chromium tabanlı tarayıcılar (Edge, Brave, Opera ve diğerleri) aynı sayfayı aynı adreste sunar.
Bu bile tam çözüm olmayabilir. Chrome ayrıca eski IP adresine zaten açık bağlantılardan oluşan bir havuz tutar ve DNS önbelleği boş olsa bile bunlardan birini yeni bir bağlantı kurmak yerine yeniden kullanabilir. chrome://net-internals/#sockets adresini açın ve bunları da kapatmak için Flush socket pools’u kullanın. Bir site her iki adımdan sonra hâlâ eski sürümü yüklüyorsa, hiç önbelleğe alınmış bağlantısı olmadan başladığı için özel bir pencere deneyin.
Eski adres temizlemeden sonra neden hâlâ görünüyor
Makinedeki her önbelleği temizlediyseniz ve tarayıcı hâlâ eski sunucuyu gösteriyorsa, gecikme artık genellikle yerel değildir. Bir ev yönlendiricisi tipik olarak ağdaki her cihaz için kendi küçük DNS önbelleğini çalıştırır, ve onu yeniden başlatmak bu katmanı temizler. Yönlendiricinin ötesinde, İSS’nizin çözümleyicisi de kendi önbelleğini tutar, ve onu temizlemenin doğrudan bir yolunuz yoktur; önbelleğe alınmış girdisinin TTL’si dolduğunda kendiliğinden temizlenir.
Bir DNS kaydındaki TTL değeri, bir değişikliğin ne kadar hızlı yayılabileceğinin gerçek sınırıdır. Sizinle yetkili ad sunucusu arasındaki her çözümleyici, tekrar sormak zorunda kalmadan önce bir yanıtı tam olarak o kadar saniye tutabilir. Bir saatlik TTL’si olan bir kayıt, değiştikten neredeyse bir saat sonra bile bazı ziyaretçilere meşru şekilde eski adresi döndürmeye devam edebilir, kendi makinenizde ne temizlerseniz temizleyin. Bu zaman çizelgesini neyin kontrol ettiği ve bir kaydın her yerde güncellenmeyi bitirip bitirmediğini nasıl kontrol edeceğiniz için DNS yayılımı nasıl çalışır sayfasına bakın.
Sık sorulan sorular
DNS’i temizledikten sonra bilgisayarımı yeniden başlatmam gerekiyor mu?
Hayır. Yukarıdaki her komut anında etkili olur ve yalnızca bellekteki önbelleği temizler; yeniden başlatma Windows, macOS veya Linux’ta sürecin bir parçası değildir.
DNS’i temizlemek neden sorunu çözmedi?
Genellikle eski yanıtı hâlâ tutan üç şey vardır: tarayıcının kendi önbelleği (chrome://net-internals/#dns adresinde ayrıca temizleyin), ağınıza hizmet veren yönlendirici, veya kaydın TTL’sinin internetin başka bir yerinde henüz dolmamış olması. Bir sorgu eski bir yanıt döndürmek yerine tamamen başarısız oluyor veya zaman aşımına uğruyorsa, bu bir önbellekleme sorunundan çok yanıt vermeyen bir DNS sunucusuna işaret eder.
Telefonumda DNS’i nasıl temizlerim?
Ne iOS ne de Android elle bir DNS temizleme komutu sunar. Uçak modunu açıp kapatmak, veya Wi-Fi’den mobil veriye geçip geri dönmek, cihazı önbelleğe alınmış DNS durumunu bırakmaya ve bir sonraki istekte yeniden çözmeye zorlar.
DNS’i temizlemek yavaş sayfa yüklemelerini düzeltir mi?
Tek başına nadiren. Bozulmuş veya aşırı büyümüş bir yerel önbellek küçük bir gecikme ekleyebilir, ama sürekli yavaş sorgular daha çok çözümleyicinin kendisinden kaynaklanır. Daha olası nedenler ve bunları nasıl test edeceğiniz için DNS sorgusu neden yavaş sayfasına bakın.
DNS’i temizlemek ile tarayıcı önbelleğini temizlemek arasındaki fark nedir?
Tarayıcı önbelleği sayfa içeriğini saklar: HTML, CSS, görseller ve betikler. DNS önbelleği ise yalnızca sunucuyu ilk etapta bulmak için kullanılan ana bilgisayar adı-IP eşlemesini saklar. Birini temizlemek diğerini temizlemez, ve eski bir sayfa her ikisinden de kaynaklanabilir.
Temizlemenin işe yaradığını nasıl doğrularım?
Windows’ta, temizlemenin hemen ardından ipconfig /displaydns çalıştırın; neredeyse boş dönmeli. systemd-resolved kullanan Linux’ta, resolvectl statistics geçerli önbellek boyutunu bildirir. macOS’ün eşdeğer bir inceleme komutu yoktur, bu yüzden pratik kontrol, alan adını dig example.com ile yeniden aramak veya aynı anda birden fazla konumdan sorgu yapan bir DNS sorgusu gibi bir araçla kendi ağınızın dışından bir kontrol çalıştırmaktır; bu, eski yanıtın size mi özgü olduğunu yoksa alan adının kendi ad sunucularından mı geldiğini de belirler.