/ Etc / hosts'in amacı nedir?


21

Anladığım kadarıyla, hostsdosya bir bilgisayar ağındaki ağ düğümlerini ele almaya yardımcı olan birkaç sistem tesisinden biridir. Ama içinde ne olmalı? Ubuntu'yu varsayılan olarak yüklediğimde

127.0.0.1 localhost 

Orada olacak. Niye ya?

  • /etc/hostsCassandra gibi JVM sistemlerinde nasıl çalışır?
  • DNS ne zaman alternatif olabilir, sanırım tek bir bilgisayarda değil mi?


Benim /etc/hostsiçeren 127.0.0.2 mycouchdb bookmarkdb myothercouchappve 127.0.0.3 myapachi websitebenim geliştirme benim yerel makinede çalışan bana yardımcı olmak için bu kullanırlar. 80 numaralı bağlantı noktasını dinleyen 3 hizmetim var. Yalnızca yerel oldukları için bunları DNS'ye koymak istemiyorum.
ctrl-alt-delor

Denedin man 5 hostsmi
Monica'yı eski

Linux'un bunun için ayrıntılı olarak açıklandığı bir kılavuz sayfası yok mu? Bu soruların en temelidir.
Rob

Yanıtlar:


45

Dosya /etc/hosts, DARPA'nın eski günlerinde (DNS varolmadan önce) internete bağlı tüm ana bilgisayarlar için çözüm dosyası olarak başladı. Maksimum önceliğe sahiptir, yani bu dosya diğer ad sistemlerinden önce tercih edilir. 1

Ancak, tek bir dosya olarak iyi ölçeklenmez: dosyanın boyutu çok yakında büyür. Bu nedenle, hiyerarşik dağıtılmış bir ad sistemi olan DNS sistemi geliştirildi. Herhangi bir ana bilgisayarın diğer bazı ana bilgisayarların sayısal adresini verimli bir şekilde bulmasını sağlar.

Çok eski bir kavram /etc/hostsdosyası, sadece bir adres ve ana bilgisayar adı çok basit:

127.0.0.1      localhost

her satır için. Bu, adres-host çiftlerinin basit bir listesidir. 2

Birincil günümüzdeki kullanımı DNS çözümlemesini atlamaktır. /etc/hostsDosyada bulunan bir eşleşme, herhangi bir DNS girişinden önce kullanılacaktır. Aslında, aranan ad (gibi localhost) dosyada bulunursa, hiçbir DNS çözümlemesi gerçekleştirilmez.


1 Eh, /etc/nsswitch.confgenellikle bu girişe sahip ad çözümleme sırası aslında tanımlanmıştır :

hosts:          files dns

bu da "try files ( /etc/hosts) anlamına gelir ve başarısız olursa DNS'yi deneyin."

Ancak bu düzen değiştirilebilir veya genişletilebilir.


2 (günümüzde) Hosts dosyası, ilk metin alanındaki bir IP adresinden sonra bir veya daha fazla host adı içeren metin satırları içerir. Her alan beyaz boşlukla ayrılır - sekmeler genellikle tarihsel nedenlerle tercih edilir, ancak boşluklar da kullanılır. Yorum satırları dahil edilebilir; bu tür çizgilerin ilk pozisyonunda bir oktothorpe (#) ile gösterilirler. Dosyadaki tamamen boş satırlar yoksayılır. Örneğin, tipik bir hosts dosyası aşağıdakileri içerebilir:

127.0.0.1   localhost loopback
::1         localhost localhost6 ipv6-localhost ipv6-loopback mycomputer.local
192.168.0.8 mycomputer.lan
10.0.0.27   mycomputer.lan

Bu örnek, sistemin geri döngü adresleri ve ana bilgisayar adları için girişler içerir; ilk satır, hosts dosyasının tipik bir varsayılan içeriğidir. İkinci satırda birkaç ek (muhtemelen yalnızca yerel sistemlerde geçerlidir) adları vardır. Örnek, bir IP adresinin birden çok ana bilgisayar adına (localhost ve geri döngü) sahip olabileceğini ve bir ana bilgisayar adının sırasıyla birinci ve ikinci satırlarda gösterildiği gibi hem IPv4 hem de IPv6 IP adreslerine eşlenebileceğini göstermektedir. Bir ad ( mycomputer.lan) birkaç adrese ( 192.168.0.8 10.0.0.27) çözümlenebilir . Ancak, bu durumda, hangisi kullanılırsa, bilgisayar için ayarlanan rotalara (ve bunların önceliklerine) bağlıdır.

Bazı eski işletim sistemlerinde , belirli bir ad için adres listesini bildirmenin bir yolu yoktu .


5

Masaüstü ortamında yerel bir sisteme insan tarafından okunabilir bir ad vermek için / etc / hosts dosyasını kullanmak son derece mantıklıdır. Ana bilgisayar dosyası, bir ev ağında veya hatta küçük bir işletme ortamında kullanmak için mükemmeldir. Bu, internet adresleme gibi herkese açık taraf olamaz - o zaman DNS'ye ihtiyacınız vardır. Yerel ağ yeterince büyükse veya yalnızca farklı alt ağlarda veya başka bir faydalı nedenden kesilirse, DNS tercih edilir.

Yerel ana bilgisayarlar dosyası ve DNS farklı önceliklerle yönetilir, bu nedenle hiçbir zaman çakışma olmaz.


4
Çatışmalara katılmıyorum, hata ayıklaması zor olan bazı sorunlar yaşadım çünkü ana bilgisayar-grup-A-hükmü /etc/hosts, ileride grup-B (grubum) işlemlerinin başarısız olmasına neden olan eski girişleri bıraktı , ve biz içeriğini dezenfekte etmek için bir şeyler ayarlamak sona erdi/etc/hosts
thrig

dosya içindeki çatışmalar ders dışı var olabilir ama daha sonra makine sahibinin kendi hatası var :)
francois P

2
Ayrıca hiçbir zaman çatışmama katılmıyorum. DNS değişiklikleriyle çakışan eski ana bilgisayar girişleri nedeniyle çok garip hatalar ayıklamak zorunda kaldım .
Rui F Ribeiro

@thrig: Belki de sorun, gruplarınızın etkin bir şekilde / etc / hosts kullanamayacak kadar büyük olmasıdır. Ev ağımdaki 5 makine (şu anda) için mükemmel çalışıyor.
jamesqf

Sistem bir çatışma olduğunu düşünmüyor, Şeylerin önceliği hakkında net talimatlar var: p
StarWeaver

3

linux, cesaret her zaman en azından 127.0.0.1 localhostdosya içinde /etc/hosts yanı sıra localhost için ilgili IPv6 adresi olması gerektiğini cesaret .

Sayısal bir IPv4 veya IPv6 adresine ana bilgisayar ad çözümlemesidir. Eğer (a) ağ çalıştığınızda unix.stackexchange.com size yakın olası değildir, veya (b) Yeryüzünde bir yere myotherpc evinizdeki yerel alan ağı üzerindeki, ya olduğu /etc/hostsveya bazı alan adı sunucusu (DNS) o ana bilgisayar çözünürlüğünü yapıyor, bu yüzden unix.stackexchage.com yazdığınızda , insan olarak önemsediğiniz şey, bilgisayarın gerçekten bilmesi gereken şey olan 185.53.179.7'yi hatırlamanız gerekmez .

Belirtildiği gibi, linux'da /etc/nsswitchgenellikle ana bilgisayar ad çözümleme sırasını tanımlayan vardır , yani NIS'yi kontrol etmeden önce DNS'yi kontrol edin, ardından son olarak dosyayı kontrol edin, /etc/hostsaksi takdirde ana bilgisayar bulunamadı

Sipariş kontrolünü nasıl yönettiğiniz ve DNS veya NIS hizmetini ne / nerede / kim yönettiğiniz size bağlıdır veya / check / etc / nsswitch'i yalnızca check-in yapmak /etc/hostsve asla DNS veya NIS ile kontrol etmek ya da ...

2'den N'ye kadar az bilgisayardan oluşan basit bir ev ağı için, bir yönetici /etc/hostsher bilgisayarda doğru olacak şekilde düzenler , bir Alan Adı Sunucusu veya bir ana konuma sahip başka bir hizmet kurmaktan daha kolay, daha hızlı, daha ucuz olur veya IP adresine ana bilgisayar ad çözümlemesi yapma yetkisi.

linux web arama için geçmişi ve arkasındaki nedeni localhost. Linux'taki pek çok şey 127.0.0.1'e çözümleyen localhost ismine dayanır ve bu gerçekleşmezse sorunlara neden olur ve bu localhost tanımı / etc / hosts gibi yerel bir sistem dosyasında olur / olmalıdır.

/etc/hostsvarsayılan olarak linux işletim sisteminin ana bilgisayar adı çözümlemesi için geri çekilmesi için son söyleme ve son şeydir. Windows XP ve 7'de ilgili dosya C:\Windows\System32\drivers\etc\lmhosts Windows 8 veya 10 hakkında bilmiyorum.


Hosts dosyasının, özellikle Windows'ta tipik bir kullanımı, bir programın 'ev arama' girişiminin boş bir aygıta yönlendirilmesidir. Bunun yasallığı kontrol etmeyi engellemek için benden uzak dur.
Laurence Payne

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.