Windows hosts dosyasını varsayılan durumuna sıfırlama, istenmeyen yönlendirmeleri kaldırma, izin hatalarını düzeltme ve ad çözümlemenin yeniden doğru çalışıp çalışmadığını kontrol etme hakkında eksiksiz bir rehber.
Hosts dosyası, Windows'un DNS sunucularını kullanmadan önce kontrol ettiği küçük bir düz metin sistem dosyasıdır. Bir alan adını belirli bir IP adresine eşleyebilir. Örneğin hosts dosyasındaki bir satır, example.com adresinin seçilen bir IP adresinden açılmasını zorlayabilir veya bir alan adını 127.0.0.1 adresine yönlendirerek engelleyebilir.
Hosts dosyası ad çözümleme sürecinin erken aşamasında kontrol edildiği için hatalı veya kötü amaçlı kayıtlar web sitelerinin açılmamasına, tarayıcıların yanlış adrese yönlendirilmesine, antivirüs güncellemelerinin engellenmesine ya da yazılım etkinleştirme ve çevrim içi servislerin bozulmasına neden olabilir.
Web sitesi erişim sorunları yanlış yerel eşlemelerden kaynaklanıyorsa hosts dosyasını sıfırlamanız veya geri yüklemeniz gerekir. Bu işlem özellikle kötü amaçlı yazılım temizliğinden sonra, reklam engelleme betikleri kullandıktan sonra veya dosyayı test amacıyla manuel olarak düzenledikten sonra yararlıdır.
Windows hosts dosyası şu klasörde bulunur:
Dosyanın adı hosts şeklindedir ve normalde dosya uzantısı yoktur. Windows'un dosyayı kullanmasını istiyorsanız dosya adı hosts.txt, hosts.ini veya hosts.bak olmamalıdır.
hosts.txt olarak kaydedebilir. Kaydederken Tüm Dosyalar (*.*) seçeneğini seçin ve dosya adını tam olarak hosts yapın.
Temiz bir Windows hosts dosyası yalnızca yorum satırları ve varsayılan localhost örneklerini içerebilir. # ile başlayan satırlar yorumdur ve Windows tarafından yok sayılır.
# Copyright (c) Microsoft Corp. # # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost
Aktif eşleme içermeyen daha kısa ve temiz bir hosts dosyası da kullanabilirsiniz:
# localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost
Hosts dosyasını düzenlemeden önce bir yedek oluşturun. Dosyada yerel sunucu, geliştirme ortamı, intranet, sanal makine veya test alan adı için kullanılan geçerli özel kayıtlar varsa bu yedek faydalı olur.
C:\Windows\System32\drivers\etc klasörüne gidin.hosts_backup veya hosts_original_backup olarak yeniden adlandırın.Bu, çoğu kullanıcı için en kolay yöntemdir. En önemli şart Not Defteri'ni yönetici haklarıyla açmaktır, çünkü hosts dosyası korumalı bir sistem klasöründe bulunur.
C:\Windows\System32\drivers\etc.Dosyayı kaydettikten sonra aşağıdaki DNS önbelleğini temizleme bölümüne geçin. DNS önbelleği temizlenmezse Windows veya tarayıcınız geçici olarak önbelleğe alınmış sonuçları kullanmaya devam edebilir.
Hosts dosyası ciddi şekilde bozulmuşsa, yeniden adlandırılmışsa veya manuel olarak düzenlenmesi zorsa yükseltilmiş Komut İstemi ile dosyayı değiştirebilirsiniz.
cd /d C:\Windows\System32\drivers\etc copy hosts hosts.bak attrib -r -s -h hosts type nul > hosts
Ardından minimal varsayılan içeriği ekleyin:
echo # localhost name resolution is handled within DNS itself. > hosts echo # 127.0.0.1 localhost >> hosts echo # ::1 localhost >> hosts
type nul > hosts komutu mevcut hosts dosyasını temizler. Eski özel kayıtlara ihtiyacınız olabilirseniz önce yedek alın.
Dosya içeriğini kontrollü şekilde değiştirmek istiyorsanız PowerShell kullanışlıdır. PowerShell'i yönetici olarak çalıştırın ve temiz bir varsayılan hosts dosyası yazın.
$hostsPath = "$env:SystemRoot\System32\drivers\etc\hosts" Copy-Item $hostsPath "$hostsPath.bak" -ErrorAction SilentlyContinue @" # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost "@ | Set-Content -Path $hostsPath -Encoding ASCII
Bu komut aynı klasörde hosts.bak adlı bir yedek oluşturur ve aktif yönlendirme içermeyen temiz bir hosts dosyası yazar.
Windows değişiklikleri kaydetmenize izin vermiyorsa bunun yaygın nedeni yönetici ayrıcalıklarının eksik olması, salt okunur öznitelikler, antivirüs koruması veya dosyanın yanlış uzantıyla kaydedilmesidir.
| Sorun | Ne yapılmalı? |
|---|---|
| Not Defteri erişimin reddedildiğini söylüyor | Not Defteri'ni kapatın, ardından Yönetici olarak çalıştır seçeneğiyle yeniden açın. |
| Dosya hosts.txt olarak kaydediliyor | Tüm Dosyalar (*.*) seçeneğini seçin ve dosya adını tam olarak hosts yapın. |
| Dosya salt okunur | Yükseltilmiş terminal açın ve attrib -r C:\Windows\System32\drivers\etc\hosts komutunu çalıştırın. |
| Güvenlik yazılımı değişikliği engelliyor | Yalnızca düzenlemenin meşru olduğundan eminseniz değişikliğe geçici olarak izin verin. |
| Dosyayı göremiyorsunuz | Aç penceresindeki filtreyi Metin Belgeleri yerine Tüm Dosyalar olarak değiştirin. |
Hosts dosyasını sıfırladıktan sonra Windows DNS çözümleyici önbelleğini temizleyin. Bu işlem Windows'un önbelleğe alınmış alan adı sorgularını atmasını ve yeniden güncel bilgileri okumasını sağlar.
ipconfig /flushdns
İşlem başarılı olursa Windows, DNS Çözümleyici Önbelleği'nin başarıyla temizlendiğini belirten bir mesaj gösterir.
Tarayıcınızı kapatıp yeniden açmak da yararlıdır. Bazı tarayıcılar kısa süreliğine kendi DNS önbelleğini veya bağlantı havuzunu tutabilir.
Dosyayı geri yükledikten sonra web sitelerinin normal şekilde çözümlenip çözümlenmediğini test edin. Bunun için ping, nslookup ve tarayıcı testi kullanabilirsiniz.
Komut İstemi'ni açın ve şunu çalıştırın:
ping example.com
Hosts dosyasında alan adı için aktif bir kayıt yoksa Windows bunu yerel hosts yönlendirmesi yerine DNS üzerinden çözümlemelidir.
Aktif kayıtlar # ile başlamayan ve boş olmayan satırlardır. Bunları manuel olarak inceleyebilir veya PowerShell kullanabilirsiniz:
Get-Content "$env:SystemRoot\System32\drivers\etc\hosts" | Where-Object { $_ -and $_ -notmatch '^\s*#' }Komut hiçbir şey döndürmezse hosts dosyasında aktif eşleme yoktur.
Her hosts kaydı kötü amaçlı değildir. Geliştiriciler, yöneticiler, reklam engelleme araçları ve yerel test ortamları bu dosyayı bilinçli olarak kullanabilir. Ancak bazı kayıtlar uyarı işaretidir.
hosts.txt adlı bir dosya Windows hosts dosyası olarak çalışmaz.
ipconfig /flushdns komutunu çalıştırmak ve tarayıcıyı yeniden başlatmak yeterlidir. Sorun devam ederse veya başka bir uygulama eski ağ durumunu tutuyorsa Windows'u yeniden başlatın.
127.0.0.1, 0.0.0.0 veya erişilemeyen başka bir adrese yönlendirilerek engellenebilir. Bu nedenle hosts dosyasını geri yüklemek yalnızca tek bir Windows bilgisayarda engellenen web sitelerini düzeltebilir.
hosts.txt olarak kaydedilmesi, Not Defteri'nin yönetici olarak çalıştırılmaması, tarayıcı DNS önbelleği, alan adının yanlış yazılması veya satırın başına # konarak yorum satırına dönüştürülmesi bulunur.
Hosts dosyasını geri yüklemenin en güvenilir yolu Not Defteri'ni yönetici olarak açmak, C:\Windows\System32\drivers\etc\hosts dosyasını açmak, şüpheli kayıtları varsayılan temiz içerikle değiştirmek, dosyayı uzantısız kaydetmek ve ardından ipconfig /flushdns komutunu çalıştırmaktır.
Web siteleri yalnızca tek bir Windows bilgisayarda engelleniyor, yönlendiriliyor veya farklı davranıyorsa kontrol edilmesi gereken ilk yerlerden biri hosts dosyasıdır. Dosyayı temiz varsayılan durumuna sıfırlamak yerel alan adı geçersiz kılmalarını kaldırır ve normal DNS tabanlı gezinmeyi geri getirmeye yardımcı olur.