Hosts dosyası: Birden fazla satırda aynı IP adresine sahip olmak yanlış mı?


28

Bir süredir hosts dosyamı bu şekilde biçimlendiriyorum. Aynı ipte iki satırda dikkat edin:

e.f.g.h foo.mydevsite.com
e.f.g.h foo.myOtherDevSite.com

Kısa süre önce, diğer adların bir satırda birleştirilmesi gerektiğini okudum:

e.f.g.h foo.mydevsite.com foo.myOtherDevSite.com 

Ancak, bu yöntemi sevmiyorum çünkü belirli takma adları kolayca yorumlayamıyor veya belirli takma adlara yorum ekleyemiyorsunuz:

  a.b.c.d foo.mydevsite.com          # myDevSite on box 1
# a.b.c.d foo.myOtherSite.com        # myOtherSite on box 1 
  a.b.c.d ubuntuBox                  

  e.f.g.h foo.myOtherSite.com        # myOtherSite testing environment

Şimdiye kadar bu iyi çalışıyordu; bununla ilgili bir sorun mu var?

Yanıtlar:


28

Bu ipte bu çizgiler boyunca bir şeyler yapmayı tartışan bir konu buldum. Iş parçacığı, /etc/hostsdosyada birden fazla satır bulunmaması konusunda oldukça kararlı .

alıntı - Re: / etc / hosts: Aynı IP adresine sahip iki satır?

Hayır, olmaz. Çözücüler ilk çözünürlükte durur. Gibi bir şey olması:

   127.0.0.1 localhost.localdomain localhost
   127.0.0.1 somenode.somedom.com somenode

Bahsettiğin şeyi yapmayacak. AMA sahip:

   127.0.0.1 somenode.somedom.com somenode
   127.0.0.1 localhost.localdomain localhost

Her türlü tahribata yol açacaktır. Yönlendirme dahil

Genelde ne deniyorsan onu yapmam. Daha fazla kanıta ihtiyacınız olursa, man sayfası bile bunu yapmamayı söylüyor:

alıntı man hosts

Bu kılavuz sayfa / etc / hosts dosyasının biçimini açıklar. Bu dosya, IP adreslerini her bir adres için bir satır olacak şekilde ana bilgisayar adlarıyla ilişkilendiren basit bir metin dosyasıdır. Her ana bilgisayar için aşağıdaki bilgileri içeren tek bir satır bulunmalıdır:

         IP_address canonical_hostname [aliases...]

Bütün bunlar söyleniyor, eğer ana bilgisayar adlarınız FQDN ise ve üst üste gelmiyorlarsa, muhtemelen yaptığınız şeyi yapmak için güvenli olacaksınız demektir. Sadece yukarıdaki konu başlığında belirtilenler gibi herhangi bir çakışma varsa, sorunların çözülebileceğini unutmayın.


1
Her iki tarafın da bu konudaki etkilerini gözlemlemiyorum . Örneğin, 127.0.0.1 için birden fazla satır hostname(OP kontra) çıktısını etkilemez ve hepsi doğru şekilde çözülür (cevap veren kontra).
goldilocks

1
Ancak gethostbyaddr()yetiştirdikleri şey önemlidir. +1
goldilocks

Çok ilginç! Bir ana bilgisayar dosyasının çift yönlü olarak kullanıldığını farketmedim (ipten ana bilgisayar adını al, ana bilgisayar adına ip al). Bu kesinlikle bazı sorunları gündeme getiriyor. Belki de insan tarafından okunabilir bir sürümü olan bir host file derleme sürecine bakmalı ve daha sonra host aliases'i bir satıra birleştirerek "düzeltir". Çok kolay bir senaryo olmalı.
AlexMA

1
@AlexMA - Bunun sizi üzmesine /etc/hostsneden olduğunu buluyorsanız , her zaman DNS ayarını yapabilirsiniz. Bu nedenle BIND'i çalıştırıyorum, (1) b / c merkezi olarak yönetmek daha kolay, ve (2) Çok sıkıntı yaşamadan oradan istediğim şekilde çözülüyor. Bunu yapmak için DNSMasq gibi daha hafif seçenekler var. Bu sistemler tek bir kutuda da kullanılabilir!
slm

@slm Bir üretim ortamı için çok iyi bir seçenek gibi geliyor. Muhtemelen değerli bir öğrenme projesi.
AlexMA

5

Üçüncü yöntemin iyi çalıştığına inanıyorum; bununla ilgili bir sorun mu var?

Bunu her zaman biraz yaptım ama potansiyel bir sorun var, çünkü man gethostbyaddrbu çağrıya göre /etc/hostsbir IP adresini bir adla ilişkilendirmek için kullanabiliyorsunuz . Çok daha yaygın olan durum, başka bir yol olsa da (adından adres alın), komik bir şey olması durumunda bunun farkında olun.


Şüphelendiğim gibi, ancak bunun hakkında çok iyi belgeler olmadığından emin olmak istedim. Bazı ekstra katı unix dağıtımlarında daha fazla sorun olup olmayacağından da emin değildim. Başka hiç kimse farklı bir duruşta bulunmazsa, size kısa sürede cevap kredisi vereceğim.
AlexMA

Eh, nokta slmyapar dikkate değer; Belki de sistem sonuçta bu şekilde kullanılmak için tasarlanmamıştır. Bunu yapmaya devam edeceğim (nb bunu çoğunlukla 127.0.0.1 için kullanıyorum, böylece sanal bir ana bilgisayar yapılandırmasını değiştirmeden yerel olarak nakil ve test edebiliyorum), ancak son paragrafa bir uyarı ekledim.
goldilocks

Aslında bunu "potansiyel bir problemi" göz önüne almak için düzenledim ...
goldilocks

0

Apache 2.4, Unix sistemime başlamayı reddetti. Kök neden, / etc / hosts dosyasındaki yinelenen satırlardı. Yinelenen çizgiyi kaldırdıktan sonra web sunucusunu başlatabildim.


4
Bu yararlı bir bilgidir, ancak muhtemelen bu sitenin kurallarına göre bir cevap yerine bir yorum olmalıdır.
AlexMA
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.