hosts dosyası yok sayıldı, sorun nasıl giderilir?

Windows bilgisayarlardaki hosts dosyası, diğer ad çözümleme yöntemlerini geçersiz kılmak için belirli ad dizelerini belirli IP adreslerine bağlamak için kullanılır.

Çoğu zaman, kişi hosts dosyasını değiştirmeye karar verir ve değişikliklerin etkili olmayı reddettiğini veya hosts dosyasının eski girişlerinin bile daha sonra göz ardı edildiğini keşfeder. Bir dizi "gotcha" hatası buna neden olabilir ve hangisinin olduğunu bulmak sinir bozucu olabilir.

Windows'un bir hosts dosyasını yok sayması sorunuyla karşılaşıldığında, izlenebilecek kapsamlı bir sorun giderme protokolü nedir?


Bu sorunun SO'da kopyaları var, örneğin https://serverfault.com/questions/50934/hosts-file-being-ignored

Ancak, bunlar belirli bir vakayla ilgilenme eğilimindedir ve OP'nin yaptığı hata ortaya çıktığında tartışma sona erer. Eğer siz de aynı hatayı yapmadıysanız, böyle bir tartışma çok faydalı olmayacaktır. Bu nedenle, ana bilgisayarlarla ilgili tüm sorunları çözmek için tüm durumları kapsayacak genel bir protokolün daha yararlı olacağını düşündüm.

Çözüm

Kendi deneyimlerime ve Google'da araştırırken karşılaştıklarıma dayanarak, işte deneyebileceğiniz bazı şeyler:

1. Doğru çalıştığını kontrol ettiniz mi?

Ana bilgisayarlarda yapılan değişiklikler hemen etkili olmalıdır, ancak Windows ad çözümleme verilerini önbelleğe alır, bu nedenle bir süre eski kayıtlar kullanılabilir. Bir komut satırı açın (Windows+R, cmd, Enter) ve şunu yazın:

ipconfig /flushdns

Eski verileri bırakmak için. Çalışıp çalışmadığını kontrol etmek için (www.example.com için ana bilgisayarlarınızda bir ipv4 girişi veya ipv6.example.com için ana bilgisayarlarınızda bir ipv6 girişi olduğunu varsayarak) kullanın:

ping www.example.com -n 1
ping -6 ipv6.example.com -n 1

Ve doğru IP'yi kullanıp kullanmadığına bakın. Evet ise, hosts dosyanızda sorun yoktur ve sorun başka bir yerdedir. Ayrıca, NetBios önbelleğini sıfırlayabilirsiniz (konsolu yönetici olarak açın yoksa başarısız olur):

nbtstat -R

DNS önbelleğindeki geçerli verileri şu şekilde kontrol edebilirsiniz:

ipconfig /displaydns | more

2. Temel Bilgiler

  • Hosts dosyanızın adı doğru mu? Hostsolmalı,host` vb. değil.
  • Uzantı doğru mu? Uzantısı olmamalıdır (hosts değil hosts.txt) - Windows'u bilinen uzantıları gizleyecek şekilde yapılandırdıysanız dikkatli olun, emin olmak için özellikleri kontrol edin: Doğru hosts dosyası'nın türü sadece "Dosya" olarak görünecektir.
  • Doğru sözdizimini]1 takip ettiniz mi? Yanlışlıkla satırların önüne yorumları belirten bir karma (#) eklediniz mi?
  • Tüm varyantlara dikkat ettiniz mi (www.example.com ve example.com - her ikisini de eklemek en güvenlisidir)?

    3. Beyaz boşluk

    Her satırın formatı IP adresi, ardından yatay bir sekme (kaçış kodu \t, ASCII HT, hex 0x09) veya tek bir boşluk (hex 0x20), ardından ana bilgisayar adı, yani www.example.com, ardından satır başı ve ardından satır beslemesidir (kaçış kodları \r\n, ASCII CRLF, hex 0x0d 0x0a). Kontrol karakterlerini belirtmek için Unicode kontrol resimlerini kullanan örnek girişler. (Bunları kopyalayıp hosts dosyanıza yapıştırmayın!)

192.0.2.1␉www.example.com␍␊
2001:db8:8:4::2␉ipv6.example.com␍␊

Tek tek baytlar Notepad++ içinde hex editör eklentisi ile görüntülenebilir. Notepad++ ayrıca özel karakterleri de gösterecektir (View -> Show Symbol), böylece boşluk karakterlerinin sayısını ve türünü kolayca inceleyebilirsiniz. Ana bilgisayar girişlerini bir yerden kopyalayıp yapıştırdıysanız, birden fazla boşlukla karşılaşabilirsiniz. Teorik olarak hosts iki sütunu ayıran birden fazla boşluğu destekler, ancak başka hiçbir şey işe yaramazsa denemek için başka bir şeydir. Güvenli tarafta olmak için, hosts dosyanızdaki tüm satırların sekme veya boşluk kullandığından emin olun, ikisini birden değil. Son olarak, dosyayı boş bir satırla sonlandırın.

4. Kayıt Defteri Anahtarı

Hosts dosyasının konumunu belirten bir kayıt defteri anahtarı vardır. Windows'un hosts dosyasını başka bir yere koymayı desteklemediği söyleniyor, ancak kontrol etmek isteyebilirsiniz. Anahtar şöyledir:

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath

Giriş şöyle olmalı:

%SystemRoot%\System32\drivers\etc

5. İzinler

Bazen dosya üzerindeki izinler, dosya öznitelikleri ve benzer şeylerle ilgili sorunlar olabilir. Dosyayı varsayılan izinlerle yeniden oluşturmak için:

  1. Masaüstünüzde yeni bir metin dosyası oluşturun.
  2. Mevcut hosts dosyanızın içeriğini kopyalayıp Not Defteri'nde bu dosyaya yapıştırın.
  3. Yeni metin dosyasını kaydedin ve hosts olarak yeniden adlandırın.
  4. Dosyayı %SystemRoot%\System32\drivers\etc dizininize kopyalayın (taşımayın) ve eski dosyanın üzerine yazın. Son nokta önemlidir: Kopyalama işe yarar, taşıma yaramaz. Yerel Users hesabı hosts dosyasını okuyabilmelidir. Emin olmak için (Windows 7'de):
  5. Windows Explorer'da %SystemRoot%\System32\drivers\etc dizinine gidin.
  6. Eğer hosts dosyasını göremiyorsanız, gizli ve sistem dosyalarını görebildiğinizden emin olun.
  7. Hostsdosyasına sağ tıklayın ve içerik menüsündenÖzellikler` seçeneğini seçin.
  8. Hosts Propertiespenceresinde,Security` sekmesine tıklayın.
  9. Grup veya kullanıcı adları:kutusundaki ad listesini inceleyin. Eğer%COMPUTERNAME%\Users` mevcutsa, izinleri görüntülemek için üzerine tıklayın.
  10. Kullanıcılarmevcut değilse veya mevcutsa ancakOkumaiznine sahip değilse,Düzenle...` öğesine tıklayın.
  11. Kullanıcılarmevcut değilse,Ekle...ye tıklayın,Kullanıcılaryazın,İsimleri Kontrol Ete tıklayın ve Tamama tıklayın veya Enter tuşuna basın.
  12. Kullanıcıları seçin veİzin versütunundaOku ve yürütseçeneğinin işaretli olduğundan emin olun. Tamam'a tıklayın. BirWindows Güvenliğiuyarı kutusu açılırsa, devam etmek içinEvet` seçeneğini seçin.
  13. Ana Bilgisayar Özellikleripenceresini kapatmak için Tamama tıklayın.
  14. Bu yanıtın 1. bölümüne gidin ve şimdi çalışıp çalışmadığını kontrol etmek için yönergeleri izleyin.

    6. Kodlama

    Hosts dosyası BOM olmadan ANSI veya UTF-8 olarak kodlanmalıdır. Bunu Dosya -> Farklı Kaydet ile yapabilirsiniz.

    7. Proxy'ler

    Yapılandırılmış bir proxy'niz varsa, hosts dosyasını atlayabilir. Çözüm, proxy kullanmamak veya bunu yapmayacak şekilde yapılandırmaktır. Kontrol etmek için Internet Explorer -> Internet Seçenekleri -> Bağlantılar -> LAN ayarlarınıza gidin. Her şey boşsa ve "Ayarları otomatik olarak algıla" işaretliyse, bir proxy kullanmıyorsunuz demektir. Web'e erişmek için bir proxy'ye güveniyorsanız ve bu nedenle devre dışı bırakmak istemiyorsanız, Internet Explorer -> Internet Seçenekleri -> Bağlantılar -> LAN ayarları -> Proxy Sunucusu / Gelişmiş'e giderek istisnalar ekleyebilirsiniz. Ardından istisnalarınızı İstisnalar metin kutusuna ekleyin. Örneğin localhost;127.0.0.1;*.dev

    8. DNS adresi

    (Bu aynı zamanda proxy sorunlarını da çözebilir.) Ağ bağlantıları özelliklerinize, ardından TCP/IP ayarlarına gidin ve ilk DNS sunucusunu 127.0.0.1 (localhost) olarak değiştirin. İkincisi muhtemelen gerçek DNS'inizin IP'si olmalıdır. Hosts dosyasının çalışması için bu gerekli değildir, ancak bir şey garip bir şekilde yapılandırılmışsa sizin durumunuzda yardımcı olabilir.

    9. .local adresleri

    myhost.local şeklinde bir .local alan adı girişi kullanıyorsanız ve göz ardı ediliyorsa lütfen aşağıdakileri deneyin

x.x.x.x myhost.local www.myhost.local

www.myhost.local mevcut olmasa bile. Windows bir şekilde çalışma grubunu veya yerel etki alanını eklemiyor.

Yorumlar (19)

Önce ipadresini ve ardından "domain"'i aşağıdaki gibi yazdığınızdan emin olun:

127.0.0.1   bo.dev
127.0.0.1   www.bo.dev
Yorumlar (4)

Benim durumumda Windows 7 tarafından oluşturulan dosyayı denedim: C:\Windows\System32\drivers\etc\hosts.ics.

hosts.ics:

# This file has been automatically generated for use by Microsoft Internet
# Connection Sharing. It contains the mappings of IP addresses to host names
# for the home network. Please do not make changes to the HOSTS.ICS file.
# Any changes may result in a loss of connectivity between machines on the
# local network.

Sonuç olarak, Windows C:\Windows\System32\drivers\etc\hosts içindeki ayarları yok sayar ve hosts.ics dosyasından kullanır.

Yorumlar (3)