Neden “ipconfig / flushdns” DNS'nizi tamamen silmiyor?


7

Sürekli "ipconfig / flushdns" + bilgisayarı yeniden başlatan bilgisayarın tüm DNS kayıtlarından kurtulmadığı bir sorunla karşılaştım.

DNS'deki tüm kayıtları tamamen temizlemeli mi?
Neden genellikle böyle olmuyor?
Bir çeşit kısıtlama var mı?


1
Varsayım sorunuza bazı iyi cevaplarınız var. Hangi sorunu aşmaya çalışıyorsun?
dbasnett

/ Flushdns'ün "başarı" raporu "kodlanmış" dır, sadece her zaman başarıyı bildirir. Yönetici haklarıyla başlatıldıysa (sağ tıkla) çalışır. Yönetici olarak başlatmadan (yönetici olarak giriş yapmış olsanız bile) başarısız olur ve başarıyı bildirir. Bazı microsoft geliştiricilerini bir çubuğa yavaşça yakmak istemenin politik olarak yanlış olacağını merak ediyorum.
John,

Yanıtlar:


18

Birisi "neden bazı girişler ipconfig /displaydnsonları temizledikten sonra bile içeride kalıyor /flushdns?"

  1. Bir program birkaç etki alanını tekrar tekrar çözüyor, bu yüzden bilgileri hemen tekrar önbelleğe alıyor.
  2. DNS Çözümleyicisi, kodlanmış bazı özel adların (örneğin localhost) kullanımını içerir.
  3. DNS Çözücü (gerçekte ) otomatik olarak okur/etc/hosts%SystemRoot%\system32\drivers\etc\hosts ve Çözümleyici önbelleğini doldurmak için kullanır, böylece bu adların gerçekte DNS'de aranması gerekmez. Bir adın çözülmesi gerektiğinde / etc / hosts dosyasını tekrar okumaktan kaçınmak güzel bir püf noktasıdır.

Biri "neden etki alanımda bir şey değiştirip çalıştırdıktan sonra /flushdns, hala değişikliklerimi göremiyorum?"

DNS'deki tüm kayıtları silmek fiziksel olarak imkansızdır, çünkü DNS - Etki Alanı Adı Sistemi - Internet'in tamamındaki birçok sunucuda barındırılır ve bunların tümünü yok etmeniz gerekir.

Ne ipconfigerişir olan bilgisayarınızın yerel önbellek bilgilerinin DNS'den baktı; Bilgisayarınızdaki önbelleği temizleyip herhangi bir etki alanına erişmeyi denerseniz, bilgisayarın yapılandırılmış DNS sunucusuna yeniden sorması gerekir.

Bununla birlikte, yapılandırılmış DNS sunucusu, yönlendiricinizin, ISS'nizin veya genel bir sunucunun (örneğin Google’ın) kendi önbelleğine sahip olabilir. Birisi DNS sunucusuna 8.8.8.8etki alanı hakkında bir şey sorduğunda, o sunucuda superuser.comda önbelleğe alınır . Bu nedenle birçok durumda üç, belki dört önbellek katmanı olabilir: Windows'ta yönlendiriciniz / modem / ağ geçidinizde, ISS'nizde ve belki de ISS'de daha derin bir ikinci katman.


1
Öyleyse ipinizi serbest bırakarak ipconfig /releaseve ipconfig /renewaslında diğer DNS sunucularının tanımadığı bir IP atayacaksınız?
Howdy_McGee

@Howdy_McGee: Bu iki komutun yukarıda açıklananlarla hiçbir ilişkisi yoktur. DNS'ye hiçbir şey yapmazlar; DHCP ile çalışıyorlar - /releasegeçerli IP adres kiralamasını "geri /renewveriyor" ve mevcut olanı uzatmaya çalışıyor - ya da muhtemelen farklı bir IP adresine ya da farklı DNS sunucu ayarlarına sahip yeni bir tane istiyor , ancak yönlendiriciye bağlı. için kiralama yapar.
Grawity

Eski ip numaraları için başka bir gizli konum olabilir. 1. DNS'yi yönetici haklarını kullanarak temizledim. 2. nslookup bana yeni ip numarasını veriyor. 3. Ana bilgisayarın ana makine dosyasında olmadığını doğruladım. 4. ping hala eski ip bağlanır! Bu eski ortam nerede saklanıyor? ipconfig / all, 1'den fazla DNS sunucusu olduğunu gösterir. Benim durumumda eski ip numarası 2. DNS sunucusunda saklanıyor: ping DNS sunucusunu eski ip numarası ile doğru bir şekilde kullanıyor ve nslookup varsayılan olarak yeni ip numarasına sahip olan DNS'yi kullanıyor.
anneb

1

A (ana bilgisayar) kayıtları, makinenizi yeniden başlattıktan sonra önbelleğinize yeniden eklenecektir.

Durdurmak ve dnscache'i başlatmak da değişmez. Bazı Ana Bilgisayar kayıtları otomatik olarak yeniden doldurulur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.