Dosya /etc/hosts
ve DNS birlikte çalışmaz. Bağımsız isimler (ağ isimleri) sağlarlar.
Onları birbirine bağlayan yapıştırıcı linux sistemleri içindedir/etc/nsswitch.conf
. In /etc/netsvc.conf
AIX sunucuları için, sistemde Windows'un ve listelenir olabilir lookupd -configuration
: (benzer LookupOrder için arama, Cache FF DNS NI DS
MacOS sistemlerde).
Gerçek sipariş karmaşık hale gelir ve genellikle her bir ad çözümleme hizmetinin diğer çözünürlük düzeylerinin içine bakabileceği (ve çoğu zaman yapabileceği gibi) kıvrıklaşır. Like dnsmasq
(genellikle açık bir DNS sunucusu 127.0.0.1:53
veya ::1:53
(veya her ikisi)) genellikle /etc/hosts
dosya içeriğini okur ve içerir . Veya gibi systemd.resolver
(yalnızca noktalı olmayan adları çözmesi gereken temel bir çözümleyici ) bazı durumlarda mycomputer
noktalı adlar ( mycomputer.here.dev.
) için doğrudan DNS çözünürlükleri çağırır .
Genel olarak, hizmetler sırayla çağrılır ve başarısız olmayan ilk hizmet kazanır ve doğru adres olarak kabul edilir. Genel temel düzen: /etc/hosts
(dosya), mDNS (noktalı adlar), DNS, NIS, NIS +, LDAP. Bazı linux sistemlerinde , hizmetteki bilgisayar için son bir çözüm çözümü vardırhostname
myhostname
Örneğin, bu sistemde (itibaren cat /etc/nsswitch
):
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
Çok eski (glibc 2.4 ve öncesi) order
girişin şu şekilde ayarlandığını unutmayın/etc/host.conf
:
order hosts,bind,nis
Yalnızca dosya (dosya /etc/hosts
) adı hizmetine uygulanır.
Bu (linux) istemci bilgisayardaki NIS ve LDAP ile ilgili etkiler (genellikle) kullanılan DNS sunucusu (bağlayıcı, bağlanmamış vb.) Tarafından kontrol edilir.
yani:
- Bir ana bilgisayar adı / etc / hosts içinde çözülebilirse, DNS, / etc / hosts'den sonra ana makine adını çözümlemek için mi yoksa çözümlenen IP adresine / etc / hosts tarafından özyinelemeli olarak çözümlemek için "ana makine adı" olarak davranıyor mu?
Yok.
Bir ana bilgisayar adı çözümlenebilirse /etc/hosts
, DNS
geçerli değildir (dosyalar DNS'den önce ise).
ne de bir "hostname" olarak muamele çözümlenen IP adresidir.
Basitçe: çözümlenmiş adres.
tarayıcı
Bir tarayıcı, bir adı çözümlemek için herhangi bir yöntemi kullanabilir (çözümlenmiş adların önbelleğini kontrol ettikten sonra). Yalnızca sistem tarafından sağlanan bir yöntem kullanıyorsa, yukarıda verilen sipariş geçerlidir. Tarayıcı, herhangi bir program gibi, herhangi bir DNS sunucusuyla doğrudan iletişim kurmayı seçebilir.
Sistem siparişi daha /etc/hosts
önce varsa, DNS
bu dosyadaki bir girişin DNS
çözüm hizmetinden önce geleceği anlamına gelir .
Yani:
- ... / etc / hosts, ana bilgisayar adlarını çözümlemek için DNS'yi geçersiz kıldığı anlamına mı geliyor?
Evet (tarayıcı sistem tarafından sağlanan çözünürlüğü kullanıyorsa).
Neden /etc/hosts
tekrar başvurmuyorum, böylece web sitesine bağlanamıyorum?
Yalnızca belirli bir ad için tarayıcının dahili önbelleği temizlenene (veya zaman aşımına uğrayana kadar), bu ad tekrar tarayıcının dışında aranır.
Tarayıcının önbelleğinde çözülmüş bir adı varsa, tarayıcı adı tekrar kullanır.
Önbelleği temizlemek için bunu kullanın .
Veya sadece kapatın (bir süre bekleyin) ve tarayıcıyı yeniden başlatın.
/etc/hosts
ve yerel olarak tanımlanmış ad sunucuları. İlk kez şahit olmak oldukça kafa karıştırıcı. (Sana bakmak, Chromium tabanlı tarayıcılar!)