Linux'ta DNS Flush: SystemD-Doldurulmuş, NetworkManager ve NSCD
Yayınlanan: 2025-09-26Linux sisteminiz web sitelerine erişirken garip davrandığında - veya yanlış alan adlarını çözdüğünde - DNS önbelleğini temizleme zamanı olabilir. Tarayıcınızın önbelleği gibi, DNS önbelleği, web tarama hızını iyileştirmeye ve gecikmeyi azaltmaya yardımcı olan geçici verileri saklar. Ancak, bu önbellek modası geçmiş veya yozlaştığında, bağlantı sorunlarına yol açabilir. Bu, özellikle alan adlarının sıklıkla değiştiği geliştirme veya ağ senaryolarında önemlidir. Bu makalede,SystemD-çözülmüş,NetworkManagerveyaNSCD(Name Service Cache Daemon) kullanan Linux sistemlerinde DNS önbelleğinin nasıl yıkanacağını araştıracağız.
Linux'ta DNS önbelleğini anlamak
DNS önbellekleme, DNS aramalarını yerel olarak depolayan bir mekanizmadır. Bu, aynı etki alan adı için tekrarlanan sorguların, performansı artırabilecek DNS sunucularına kızarmasını önler. Ancak Linux, DNS çözünürlük sorumluluklarını, kullanılan sistem bileşenlerine veya hizmetlere bağlı olarak farklı şekilde dağıtır.
Modern dağılımlarda, aşağıdaki çözümleyici sistemlerinden biriyle karşılaşmanız muhtemeldir:
- SystemD ile çözülmüş: Ubuntu 18.04+ ve Fedora gibi yeni dağılımlarda yaygındır.
- NetworkManager: Genellikle SystemD ile çözülmüş veya başka bir arka uçla çalışır.
- NSCD(Name Service Cache Daemon): Bazı geleneksel Unix ve Enterprise Linux sistemlerinde bulunur.
Bu sistemlerin her biri DNS önbelleğini farklı şekilde işler, bu da önbelleği yıkama yöntemi de değişir. Her birinden ayrıntılı olarak yürüyelim.
SystemD ile çözülmüş DNS önbelleği yıkama
SystemD ile çözülmüş,DNS sorgularını ve önbelleklemeyi yönetmek içinSystemDtarafından sağlanan bir hizmettir. Birçok ana akım Linux dağıtımında standart haline geliyor. Sisteminizin çalıştırarak SystemD ile çözülmüş olup olmadığını doğrulayabilirsiniz:
systemctl is-active systemd-resolved
Etkinse, DNS önbelleğini aşağıdaki komutla temizlemeye devam edin:
sudo systemd-resolve --flush-caches
Önbelleğin temizlendiğini onaylamak veya mevcut istatistikleri görüntülemek için şunları kullanabilirsiniz:
systemd-resolve --statistics
Bu komut, önbellek girişlerinin, isabetlerin ve kaçırılanların sayısı gibi metrikleri görüntüler ve önbellek yıkamasının başarılı olmasını sağlamanıza yardımcı olur.

SystemD ile çözülmüş yapılandırma ve hata ayıklama
Gelişmiş kullanıcılar için hizmetin yapılandırması /etc/systemd/resolved.conf
adresinde bulunur. DNS sunucuları veya geri dönüş davranışları gibi ayarları ayarlayabilirsiniz. Kalıcı DNS sorunları yaşıyorsanız,SystemD ile çözülmüşiçin journalctl
günlüklerini kontrol etmeyi düşünün:
journalctl -u systemd-resolved
Bu, DNS yanlış yapılandırma veya önbellek zehirlenmesinden kaynaklanan etki alanı çözünürlük sorunlarını giderirken inanılmaz derecede yararlı olabilir.
DNS'yi yenilemek için NetworkManager'ı kullanma
NetworkManager, GNOME ve KDE gibi masaüstü ortamları da dahil olmak üzere birçok Linux dağıtımında ağ yapılandırmasını otomatik olarak işleyen bir yardımcı programdır. NetworkManager'ın kendisi DNS'yi önbelleğe almasa da, genellikle hangi hizmetin (SystemD ile çözülmüş gibi) DNS'yi işlediğini belirler.
NetworkManager kullanarak DNS ayarlarını yenilemek için hizmeti yeniden başlatabilirsiniz:
sudo systemctl restart NetworkManager
Bu yöntem, bağlantıları ve ilgili hizmetleri yeniden başlatarak DNS'nin yeniden çözülmesini dolaylı olarak zorlar. Daha ayrıntılı olmak istiyorsanız, belirli ağ arayüzlerini de devre dışı bırakabilir ve yeniden etkinleştirebilirsiniz. Örneğin:
nmcli networking off nmcli networking on
Veya belirli bir cihaz için:
nmcli device disconnect eth0 nmcli device connect eth0
Bu yöntem özellikle ağlar arasında geçiş yaparken veya DNS değiştikten sonra etki alanı yayılma sorunlarını çözerken kullanışlıdır.
NMCLI ile DNS ayarlarını incelemek
NetworkManager'ınızın hangi DNS kullandığını incelemek istiyorsanız, komut:
nmcli dev show | grep DNS
Şu anda etkin DNS adreslerini listeleyecektir. Bu, DHCP veya statik adreslemeden DNS ayarlarının doğru bir şekilde uygulandığını doğrularken kullanışlıdır.

NSCD ile DNS'yi yıkama (Name Service Önbellek Daemon)
Modern masaüstü Linux sistemlerinde daha az yaygın olmakla birlikte,NSCDhala kurumsal ve eski ortamlarda kullanılmaktadır. Ana bilgisayar adları, şifreler ve diğer veritabanı nesneleri için çözünürlüğü hızlandırmak için ad hizmet isteklerini önbelleğe alır. İlk olarak, yüklendiğinden ve çalıştırıldığından emin olun:

sudo systemctl status nscd
Etkinse, DNS önbelleğini yıkamak basittir:
sudo nscd -i hosts
Bu komut NSCD'ye ana bilgisayar adları için önbellek girişlerini (-i) geçersiz kılmasını söyler. Sadece DNS girişlerini değil, her şeyi temizlemek istiyorsanız, şunları kullanın:
sudo nscd -I
Bu, tüm yapılandırmayı yeniden yükleyecek ve desteklenen tüm veritabanları için önbelleğe alınmış verileri temizler.
NSCD'yi yapılandırma ve izleme
NSCD /etc/nscd.conf
aracılığıyla yapılandırılır. Aşağıdakiler gibi çeşitli veri türleri için önbelleklemeyi etkinleştirebilir veya devre dışı bırakabilirsiniz:
- Passwd
- grup
- ev sahipleri
Dosya iyi konumlandırılmıştır, bu da onu makul bir şekilde ulaşılabilir hale getirir. journalctl -u nscd
davranışına dikkat etmenizi ve potansiyel sorunları belirlemenizi sağlar.
Hangi önbellekleme mekanizmasını kullandığınızı nasıl belirleyebilirsiniz?
Linux makinenizin DNS önbelleğe alınması için hangi sisteme dayandığından emin değil misiniz? İşte birkaç hızlı kontrol:
-
systemd-resolve --status
anlamlı çıktı döndürüyor mu? Evet ise, sisteminiz muhtemelen SystemD ile çözülmüşkullanır. -
nscd -g
tablo girişleri sağlıyor mu?NSCDkullanıyor olabilirsiniz. -
resolvectl
sisteminizde çalışıyor mu? Bu,SystemD ile çözülmüşiçin iyi bir işaret. -
dnsmasq
veyaBIND
takılı mı? Bu, ayrı adımlar gerektiren daha gelişmiş kurulumlara işaret eder.
DNS çözümleyicisinin, DNS önbelleğini temizlemeye veya hata ayıklamaya çalışmadan önce çok önemlidir, çünkü yanlış önbelleği yıkamak sorununuzu çözmeyecektir.
DNS'yi neden düzenli olarak yıkamak faydalıdır?
DNS önbellekleme performansı arttırırken, sorunlu olabilir. İşte neden ve ne zaman temizlemek isteyebilirsiniz:
- DNS girişlerini değiştirdikten sonra:Fırıltılı olmayan önbellekler eski IPS veya DNS sunucularına işaret edebilir.
- Bağlantı sorunlarını giderme sorunları:Yolsuz veya zehirli önbellek başarısız çözünürlüklere yol açar.
- Geliştirme dönemi senaryoları:Bir etki alanı geçişini test ederken veya evreleme ve üretim sunucuları arasında geçiş yaparken.
DNS önbelleğini düzenli olarak yıkamak, sistem sağlığını korumaya yardımcı olur ve özellikle güç kullanıcıları, sistem yöneticileri ve geliştiriciler için beklenmedik site erişim sorunlarından kaçınır.
Gelişmiş ipuçları ve araçlar
Karmaşık bir ortamda çalışıyorsanız veya DNS çözünürlüğü üzerinde daha fazla kontrole ihtiyacınız varsa, bazı bonus araçlar ve ipuçları:
- DNSMASQ:Önbellek yeteneklerine sahip hafif bir DNS ileticisi olarak hareket eder.
- Bind (adlandırılmış):Kurulum sınıfı DNS sunucusunu ayarlanabilir bölge önbellekleme ve özel son kullanma ile.
dig
venslookup
:Gerçek zamanlı DNS kayıtlarını test etmek için hata ayıklama araçları.host
:DNS kayıtlarını önbellek kesintisi olmadan sorgulamak için basit ve doğrudan.

Son Düşünceler
Linux'ta DNS önbelleğinizi yıkamak basit bir görevdir - hangi araç veya hizmetin DNS çözünürlüğünü sisteminizde kullandığını bildiğinizden. İsterSystemD-Çözümlü,NetworkManagerveyaNSCDkullanıyor olun, her birinin nasıl çalıştığını anlamak, DNS ile ilgili herhangi bir sorun giderme senaryosunu hızlı bir şekilde çözme becerileriyle sizi silahlandıracaktır. DNS önbelleğinizi temiz tutmak sadece iyi bir hijyen değil, günümüzün dinamik ağ manzarasında güvenilir ve doğru alan adı çözümü için gereklidir.