Bir alan adının IP adresini değiştirdiniz, siteyi yeni bir sunucuya taşıdınız ya da bir yazım hatasını düzelttiniz; ama tarayıcınız hâlâ eski adresi gösteriyor veya site açılmıyor. Çoğu zaman sorun uzaktaki DNS sunucularında değil, doğrudan kendi cihazınızın tuttuğu DNS önbelleğindedir. Bilgisayarınız daha önce öğrendiği adresi hızlı olmak için hafızasında saklar ve değişikliğe rağmen bir süre eski cevabı kullanmaya devam eder.
Bu rehberde DNS önbelleğinin ne olduğunu, neden var olduğunu ve hangi katmanlarda tutulduğunu açıklayacağız. Ardından Windows, macOS ve Linux'ta önbelleği tek tek nasıl temizleyeceğinizi, tarayıcıların kendi ayrı önbelleğini nasıl boşaltacağınızı ve sonucu nslookup veya dig ile nasıl doğrulayacağınızı komut örnekleriyle göstereceğiz. En sonda ise sık yapılan bir hatayı, yani önbellek temizlemenin küresel DNS propagasyonunu hızlandırdığı yanılgısını netleştireceğiz.
DNS Önbelleği Nedir ve Neden Var?#
DNS önbelleği, bir cihazın ya da programın daha önce çözdüğü alan adı-IP eşleşmelerini geçici olarak sakladığı bir hafıza alanıdır. Bir web sitesini her ziyaret ettiğinizde bilgisayarınızın sıfırdan bir DNS sorgusu yapması gerekseydi, her tıklama birkaç yüz milisaniyelik ek gecikme yaşardı. Önbellek sayesinde ornek.com adresini bir kez çözdükten sonra, bir süre boyunca aynı adrese doğrudan hafızadan ulaşılır.
Bu sürenin ne kadar olacağını TTL (Time To Live) değeri belirler. Her DNS kaydı, resolver'lara "beni şu kadar saniye hafızanda tut" der. Örneğin aşağıdaki A kaydının TTL'i 3600 saniyedir; yani bir saat boyunca yeniden sorulmaz.
ornek.com. 3600 IN A 203.0.113.10
Önbellek performans için harikadır, ancak bir değişiklik yaptığınızda geçici bir soruna dönüşür. Kaydın IP'sini 203.0.113.99 olarak güncelleseniz bile, cihazınızın önbelleğindeki eski 203.0.113.10 değeri TTL süresi dolana kadar kullanılmaya devam eder. İşte tam bu noktada önbelleği elle temizlemek, cihazınızı hemen yeni değeri sormaya zorlar.
DNS Önbelleği Neden Temizlenir?#
Önbellek temizlemek her gün yapılacak bir işlem değildir; belirli senaryolarda devreye girer. En yaygın nedenleri şöyle sıralayabiliriz:
- Site taşıma sonrası eski IP'nin görünmesi: Sunucu değiştirdiniz ama bilgisayarınız hâlâ eski sunucuya bağlanmaya çalışıyor.
- "Bu siteye ulaşılamıyor" hatası: DNS kaydı düzeldiği hâlde cihazınız hatalı ya da bozuk bir cevabı önbellekte tutuyor olabilir.
- Yeni eklenen kaydın görünmemesi: Yeni bir alt alan adı ya da kayıt eklediniz fakat cihaz "böyle bir kayıt yok" cevabını önbelleğe almış olabilir (negatif önbellekleme).
- Yerel geliştirme ve
hostsdosyası değişiklikleri: Geliştiriciler bir alan adını yerel bir IP'ye yönlendirdiğinde eski çözümlemenin temizlenmesi gerekir. - Güvenlik şüphesi: Zehirlenmiş (cache poisoning) bir önbellek kaydından şüpheleniyorsanız temizlemek temiz bir başlangıç sağlar.
Kısacası önbellek temizleme, "DNS tarafında her şey doğru ama benim cihazım hâlâ eskiyi görüyor" durumunun standart ilk müdahalesidir. Alan adı çözümlemesinin genel mantığını hatırlamak isterseniz DNS nedir yazısı iyi bir temel sunar.
Önbellek Nerelerde Tutulur?#
Yaygın bir hata, yalnızca işletim sistemi önbelleğini temizleyip sorunun çözülmesini beklemektir. Oysa bir DNS cevabı, size ulaşana kadar birden fazla katmanda saklanabilir. Doğru katmanı hedeflemek zaman kazandırır.
| Katman | Nerede tutulur | Nasıl temizlenir |
|---|---|---|
| İşletim sistemi | Windows/macOS/Linux DNS istemcisi | flushdns benzeri komutlar |
| Tarayıcı | Chrome, Firefox vb. kendi iç önbelleği | Tarayıcıya özel sayfa/yeniden başlatma |
| Yönlendirici/Modem | Ev veya ofis cihazı | Cihazı yeniden başlatma |
| ISP resolver | İnternet sağlayıcınızın sunucusu | Beklemek (kontrolünüz dışında) |
| Genel resolver | 8.8.8.8, 1.1.1.1 gibi servisler | Beklemek / farklı resolver |
Bu tablodaki ilk iki satır, yani işletim sistemi ve tarayıcı, sizin doğrudan kontrol edebildiğiniz katmanlardır. Yönlendirici önbelleğini cihazı yeniden başlatarak temizleyebilirsiniz. Son iki satır ise sizin dışınızdadır; oradaki gecikmeyi ancak TTL süresi dolunca aşarsınız. Bu ayrım, rehberin sonundaki en kritik uyarının da temelidir.
Windows'ta DNS Önbelleği Temizleme#
Windows'ta DNS önbelleğini yöneten servis DNS Client (dnscache) servisidir. Önbelleği temizlemek için Komut İstemi'ni veya PowerShell'i açmanız yeterlidir; bu işlem yönetici izni gerektirmez.
# Komut İstemi (cmd) — önbelleği temizle
ipconfig /flushdns
# Mevcut önbelleğin içeriğini görmek isterseniz (temizlemeden önce)
ipconfig /displaydns
Komut başarılı olduğunda "Successfully flushed the DNS Resolver Cache" (DNS Çözümleyici Önbelleği başarıyla temizlendi) mesajını görürsünüz. PowerShell kullanıyorsanız aynı işi yapan yerel bir cmdlet de vardır:
# PowerShell alternatifi
Clear-DnsClientCache
Nadiren, DNS Client servisinin kendisi takılırsa, servisi yeniden başlatmak sorunu çözer. Bunun için yönetici olarak açtığınız bir komut penceresinde şunları çalıştırabilirsiniz:
# DNS Client servisini yeniden başlat (yönetici gerekir)
net stop dnscache
net start dnscache
Çoğu durumda tek başına ipconfig /flushdns yeterlidir. Komuttan sonra hâlâ eski adresi görüyorsanız, sıradaki adım tarayıcı önbelleğidir; çünkü tarayıcılar işletim sisteminden bağımsız kendi önbelleklerini tutar.
macOS'ta DNS Önbelleği Temizleme#
macOS'ta DNS önbelleği mDNSResponder süreci tarafından yönetilir. Güncel macOS sürümlerinde (OS X 10.10 ve sonrası) önbelleği temizlemek iki komutun birlikte çalıştırılmasını gerektirir ve yönetici (sudo) parolası istenir.
# DNS önbelleğini temizle
sudo dscacheutil -flushcache
# mDNSResponder sürecini yeniden başlat (değişikliğin uygulanması için gerekir)
sudo killall -HUP mDNSResponder
Bu iki komutu tek satırda birleştirerek de çalıştırabilirsiniz:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
İlk komut önbelleği boşaltır, ikincisi ise DNS çözümlemesinden sorumlu süreci yeniden başlatarak değişikliğin anında geçerli olmasını sağlar. Yalnızca dscacheutil çalıştırıp killall adımını atlarsanız, bazı sürümlerde önbellek tam olarak tazelenmez; bu yüzden ikisini birlikte kullanmak en güvenli yöntemdir. Komutlar sessizce tamamlanır, yani bir başarı mesajı beklemeyin; parola sorulup istem geri döndüyse işlem tamamdır.
Linux'ta DNS Önbelleği Temizleme#
Linux'ta durum biraz daha çeşitlidir, çünkü hangi komutu kullanacağınız dağıtımınızın hangi DNS önbellek servisini çalıştırdığına bağlıdır. Önce hangi servisin devrede olduğunu belirlemek gerekir.
systemd-resolved kullanan sistemler#
Ubuntu 18.04 ve sonrası, Fedora ve pek çok modern dağıtım systemd-resolved kullanır. Güncel komut şudur:
# systemd-resolved önbelleğini temizle (güncel komut)
sudo resolvectl flush-caches
# Eski sistemlerde aynı işi yapan komut
sudo systemd-resolve --flush-caches
# Önbellek istatistiklerini görüntüle (temizlik doğrulaması için)
resolvectl statistics
resolvectl statistics çıktısındaki "Current Cache Size" değerinin temizlik sonrası sıfıra düşmesi, önbelleğin boşaldığını gösterir.
nscd kullanan sistemler#
Bazı sunucularda Name Service Cache Daemon (nscd) çalışır. Bu durumda önbelleği şu komutla temizlersiniz:
# nscd hosts önbelleğini temizle
sudo nscd -i hosts
# ya da servisi yeniden başlat
sudo systemctl restart nscd
dnsmasq kullanan sistemler#
Eğer sisteminizde dnsmasq bir yerel önbellek olarak çalışıyorsa, servisi yeniden başlatmak önbelleği temizler:
sudo systemctl restart dnsmasq
Hangi servisin çalıştığından emin değilseniz, systemctl is-active systemd-resolved nscd dnsmasq komutuyla hangisinin active döndüğünü kontrol edebilirsiniz. Hiçbiri aktif değilse, dağıtımınız muhtemelen yerel bir önbellek tutmuyordur ve gecikme doğrudan bir sonraki resolver'dan kaynaklanıyordur.
Tarayıcı DNS Önbelleğini Temizleme#
İşletim sistemi önbelleğini temizlediğiniz hâlde tarayıcıda hâlâ eski adresi görüyorsanız, suçlu büyük olasılıkla tarayıcının kendi iç DNS önbelleğidir. Chrome tabanlı tarayıcılar (Chrome, Edge, Brave, Opera) işletim sisteminden bağımsız bir önbellek tutar ve bunu ayrıca temizlemeniz gerekir.
Adres çubuğuna aşağıdaki adresi yazıp açılan sayfadaki "Clear host cache" düğmesine basmanız yeterlidir:
chrome://net-internals/#dns
Aynı sayfanın "Sockets" sekmesinde "Flush socket pools" düğmesi de, açık bağlantıların yeniden kurulmasını sağlayarak inatçı durumları çözer. Firefox, ayrı bir yönetim sayfası yerine genellikle tam bir yeniden başlatmayla önbelleğini tazeler; gizli/özel pencere açmak da geçici olarak temiz bir çözümleme sağlar. En basit ve her tarayıcıda çalışan yöntem ise tarayıcıyı tamamen kapatıp yeniden açmaktır — arka planda çalışan sekmeler kapanana kadar iç önbellek boşalmayabilir.
Bir de yönlendiriciyi unutmayın: Ev veya ofis modeminiz de bir DNS önbelleği tutuyor olabilir. Yukarıdaki tüm adımlar işe yaramazsa, modeminizi 30 saniye kapatıp yeniden açmak, cihaz düzeyindeki önbelleği de sıfırlar.
Temizlik Sonrası Doğrulama#
Önbelleği temizledikten sonra "acaba gerçekten çalıştı mı" diye tahmin yürütmek yerine, sonucu somut komutlarla doğrulayabilirsiniz. Amaç, cihazınızın artık güncel IP adresini döndürdüğünü görmektir.
Windows'ta hızlı kontrol için nslookup kullanılır:
# Varsayılan resolver ile sorgula
nslookup ornek.com
# Belirli bir genel resolver ile karşılaştır
nslookup ornek.com 1.1.1.1
Linux ve macOS'ta ise daha ayrıntılı sonuç veren dig tercih edilir:
# Kısa cevap — yalnızca IP
dig ornek.com A +short
# Farklı bir resolver'a sorup karşılaştır
dig @8.8.8.8 ornek.com A +short
# Doğrudan yetkili sunucuya sorarak gerçek güncel değeri gör
dig @ns1.saglayici.com ornek.com A +short
Buradaki mantık şudur: Kendi cihazınızın döndürdüğü değerle, bağımsız bir resolver'ın (örneğin 1.1.1.1 veya 8.8.8.8) döndürdüğü değeri karşılaştırın. İkisi de aynı yeni IP'yi gösteriyorsa, hem sizin önbelleğiniz temizlenmiş hem de değişiklik yayılmış demektir. Sizin cihazınız yeniyi, genel resolver eskiyi gösteriyorsa gecikme sizde değil ISP tarafındadır. Bu araçların çıktısını yorumlama ayrıntılarını propagasyon süresi yazısında bulabilirsiniz.
En Önemli Uyarı: Temizlik Propagasyonu Hızlandırmaz#
Bu, konunun en çok yanlış anlaşılan noktasıdır, bu yüzden ayrı bir başlık hak ediyor. Kendi cihazınızda DNS önbelleğini temizlemek, yalnızca sizin cihazınızı etkiler. Dünyanın geri kalanındaki milyonlarca resolver'ın, ISP sunucusunun ve ziyaretçinin önbelleğine hiçbir etkisi yoktur.
Yani sitenizin IP'sini değiştirdiyseniz ve müşterileriniz hâlâ eski sunucuya ulaşıyorsa, kendi bilgisayarınızda ipconfig /flushdns çalıştırmak onların sorununu çözmez. Önbellek temizleme, "benim ekranımda neden hâlâ eski görünüyor" sorusunun cevabıdır; "ziyaretçilerime değişiklik ne zaman ulaşır" sorusunun değil. İkincisi tamamen TTL ve propagasyon meselesidir.
Bunu somutlaştıralım. Bir yayına başlamadan önce değişikliğin herkese hızlı ulaşmasını istiyorsanız, çözüm önbellek temizlemek değil, değişiklikten önce TTL değerini düşürmektir (örneğin 300 saniyeye). Önbellek temizleme yalnızca kendi test sürecinizi hızlandırır. Bu ikisini karıştırmak, "temizledim ama müşterilerim hâlâ eskiyi görüyor" gibi yanlış beklentilere yol açar.
Adım Adım Sorun Giderme Sırası#
"Site açılmıyor" ya da "hâlâ eski adresi görüyorum" durumunda rastgele komut denemek yerine, önbelleği en yakından en uzağa doğru katman katman elemek en verimli yaklaşımdır. Aşağıdaki sıra, çoğu durumu birkaç dakikada çözer:
- İşletim sistemi önbelleğini temizleyin. Windows'ta
ipconfig /flushdns, macOS'tadscacheutil -flushcachevekillall -HUP mDNSResponder, Linux'taresolvectl flush-caches. Bu, sorunların büyük kısmının kaynağıdır. - Tarayıcıyı eleyin.
chrome://net-internals/#dnssayfasından host önbelleğini temizleyin ya da tarayıcıyı tamamen kapatıp açın. Farklı bir tarayıcıda veya gizli pencerede test ederek suçlunun tarayıcı olup olmadığını hızla anlarsınız. - Bağımsız bir resolver ile doğrulayın.
dig @1.1.1.1 ornek.com A +shortveyanslookup ornek.com 8.8.8.8çalıştırın. Bu resolver yeni değeri gösteriyorsa değişiklik yayılmış, sorun yerelinizde demektir. - Yönlendiriciyi yeniden başlatın. İlk üç adım işe yaramadıysa modeminizi 30 saniye kapatıp açın; cihaz düzeyindeki önbellek de sıfırlansın.
- ISP resolver'ında bekleyin. Bağımsız resolver yeniyi, sizin varsayılan resolver'ınız eskiyi gösteriyorsa gecikme ISP'nizin sunucusundadır ve orada TTL süresi dolana kadar yapabileceğiniz bir şey yoktur.
Bu sırayı takip ettiğinizde, sorunun tam olarak hangi katmanda olduğunu adım adım daraltmış olursunuz. Böylece "her şeyi denedim ama olmuyor" belirsizliğinden çıkıp, gecikmenin kendi kontrolünüzde mi yoksa ISP'nizde mi olduğunu kesin biçimde tespit edersiniz.
Sıkça Sorulan Sorular#
DNS önbelleğini temizlemek internetimi bozar mı?#
Hayır. Önbellek yalnızca bir performans hızlandırıcıdır; temizlendiğinde cihazınız bir sonraki sorguda adresleri yeniden öğrenir. En fazla, ilk birkaç site açılışında milisaniyeler mertebesinde çok küçük bir gecikme olur, o kadar. İnternet bağlantınıza, kayıtlı parolalarınıza veya diğer ayarlarınıza hiçbir zarar vermez.
ipconfig /flushdns çalıştırdım ama site hâlâ eski adreste, neden?#
Büyük olasılıkla tarayıcının kendi iç önbelleği devrede. İşletim sistemi önbelleğini temizledikten sonra chrome://net-internals/#dns sayfasından tarayıcı önbelleğini de temizleyin ya da tarayıcıyı tamamen kapatıp açın. Bu da işe yaramazsa modeminizi yeniden başlatın; sorun hâlâ sürüyorsa gecikme sizin cihazınızda değil ISP'nizin resolver'ındadır ve orada TTL süresi dolana kadar beklemeniz gerekir.
macOS'ta neden iki ayrı komut çalıştırmam gerekiyor?#
İlk komut olan dscacheutil -flushcache önbellek verisini boşaltır; ikinci komut olan killall -HUP mDNSResponder ise DNS çözümlemesini yöneten süreci yeniden başlatarak bu değişikliğin anında etkin olmasını sağlar. Bazı macOS sürümlerinde yalnızca ilk komutu çalıştırmak önbelleği tam olarak tazelemez, bu yüzden ikisini birlikte kullanmak önerilir.
Önbelleği temizlemek DNS değişikliğimin herkese daha hızlı ulaşmasını sağlar mı?#
Hayır. Bu en yaygın yanılgıdır. Önbellek temizlemek yalnızca komutu çalıştırdığınız cihazı etkiler; ziyaretçilerinizin veya uzak resolver'ların önbelleğine dokunmaz. Değişikliğin herkese hızlı ulaşmasını istiyorsanız, değişiklikten önce ilgili kaydın TTL değerini düşürmeniz gerekir. Küresel yayılma tamamen propagasyon konusudur.
Yeni eklediğim kayıt hâlâ görünmüyor, önbellek temizlemek yeterli mi?#
Kaydı oluşturmadan önce yanlışlıkla sorgulamışsanız, cihazınız "böyle bir kayıt yok" cevabını önbelleğe almış olabilir (negatif önbellekleme). Yerel önbelleği temizlemek sizin cihazınızda bunu çözer. Ancak kayıt gerçekten yeni oluşturulduysa, uzaktaki resolver'ların da bu negatif cevabın süresini doldurması gerekir; bu süreyi alan adının SOA kaydındaki minimum değeri belirler ve genellikle birkaç dakika ile birkaç saat arasındadır.
Router'ı yeniden başlatmak DNS önbelleğini temizler mi?#
Evet, yönlendiricinizin tuttuğu DNS önbelleğini temizler. Ev veya ofis modemleri sıklıkla küçük bir DNS önbelleği tutar; cihazı 30 saniye kapatıp açmak bu katmanı sıfırlar. Ancak bu işlem ISP'nizin sunucusundaki önbelleği veya internetteki genel resolver'ları etkilemez; onlar için yine TTL süresinin dolmasını beklemek gerekir.
Kapanış#
DNS önbelleği, internetin hızlı çalışmasını sağlayan sessiz bir kahramandır; ancak bir değişiklik yaptığınızda geçici olarak yanıltıcı olabilir. Doğru katmanı, yani işletim sistemini ve tarayıcıyı hedefleyip önbelleği temizlediğinizde, cihazınız güncel adresi anında öğrenir. Unutmamanız gereken tek şey, bu işlemin yalnızca sizin cihazınızı etkilediği; küresel yayılmanın ise TTL ve propagasyona bağlı olduğudur.
Alan adınızı yönetirken TTL değerlerini kolayca ayarlayabileceğiniz, kayıtları saniyeler içinde güncelleyebileceğiniz bir DNS paneline ihtiyacınız varsa, alan adı ve hosting paketlerimiz sezgisel bir yönetim arayüzüyle gelir. Yeni bir sunucuya geçiş yaparken önbellek ve propagasyon sürecini baştan sona planlamak isterseniz, ekibimiz sunucu çözümlerimizle size yardımcı olmaya hazırdır.