Linux'ta DNS Flush: SystemD-Doldurulmuş, NetworkManager ve NSCD

Yayınlanan: 2025-09-26

Linux 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 veya BIND 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 ve nslookup :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.
Neden Survivalcraft 2'deki anahtar kabuklarını değiştirmelisiniz?

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.