Ana bilgisayar adını ve / etc / hosts'i anlama


14

/ Etc / hostname'de var myname.

/ Etc / hosts dizininde:

127.0.0.1   localhost.localdomain   localhost myname
::1     localhost.localdomain   localhost myname

Gerçekten bir ana bilgisayar adı ve ne için kullanıldığına dair belirsiz bir anlayışım var.

Bu daha kesin sorular daha iyi anlamama yardımcı olabilir:

  1. Yukarıdaki örnekte ana bilgisayar adım gerçekten nedir? mynameveya başka bir şey? Bunun yerine olsaydı myname.domain.comiçinde /etc/hostnamene benim gerçek makine adı daha sonra olurdu?

  2. Örnekte, komut hostnamegeri dönerken myname, komut hostname -fgeri döner localhost.localdomain. Ben /etc/hostssadece isimleri ve IP adresleri arasında bir eşleme olduğunu aklımda vardı . Burada başka bir işleve hizmet ediyor gibi görünüyor. Fqdn nedir ve ne için kullanılır? Nasıl alınır? Neden öyle localhost.localdomain?

  3. Bunun yerine olsaydı myname.domain.comiçinde /etc/hostname, hostname -fdönecekti myname.domain.com. Neden?

  4. Neden fqdn bu dosyalarda bir nokta ile bitmiyor?

  5. Are hostname -dve dnsmydomaindengi?

  6. Hangi bağlamda hostname ( myname) ve ne zaman fqdn ( localhost.localdomain) kullanmam gerekir ?

Yanıtlar:


9
  1. /etc/hostnameyerel olarak çalışan uygulamalar tarafından bilindiği gibi makinenin adını içerir. /etc/hostsve DNS adları IP adresleriyle ilişkilendirilir. mynamemakinenin kendisine erişebileceği IP adresiyle eşleştirilebilir, ancak eşlemeyle 127.0.0.1uyumlu değildir.
  2. Değil /etc/hosts, ancak /bin/hostnameile başka bir işlev sunar -f.
  3. Çünkü /etc/hostssağduyu geçersiz kılabilir . Dikkatli bir şekilde düzenleyin ve geçici yamalar ve deneylerden sonra orada çöp bırakmayın.
  4. Her iki stil de (⋯ .TLD. ve ⋯ .TLD ) kabul edilebilir. Birincisi açıkken, ikincisi her yerde bulunur.
  5. Ne olduğunu bilmiyorum dnsmydomainama olası değil. Bir şey aramak /etc/hoststeknik olarak “DNS” değildir.
  6. 1. noktayı hatırlayın. Ana bilgisayar adı - yerel olarak çalışan uygulamalar için; ayrıca SMB (samba) gibi tuhaf ağ protokolleri için. FQDN (taklit veya yer tutucu değilse localhost.localdomain) - makineye dışarıdan erişmek için. FQDN, kullanıldığı yerde çözülebilir olmalıdır.

1
IP adresim dinamikse (DHCP) ve zaman zaman değişirse ne olur? myname/ etc / hosts'de hangi adresi kullanmalıyım ?
user156516

3

Birisi bana kılavuzu okumamı söylediğinde kesinlikle nefret ediyorum, ancak bu durumda lütfen ana makine adı için man sayfasına bir göz atın ve çoğu tüm sorularınız cevaplanmıyorsa. Yazabileceğimden çok daha iyi yazılmış.

Biraz yardım sağlamak için sorularınıza isabet eden alıntılardan bazıları şunlardır: - Ana bilgisayar adınız / etc / hosts'de gördüğünüz addır. - Döndürülen FQDN, çözümleyicinin döndürdüğüne bağlıdır, bu nedenle / etc / hosts içindeki değeri neden çözümleyici olarak döndürdüğünü görüyorsunuz, önce ana bilgisayar dosyasını kontrol eder, sonra gerekli DNS sorgularını yapar.

İnanmadığım bir şey, hostname man sayfasında (man sayfasını yeniden okumama dayanarak) dokunduğumda, dosyalardaki girişlerin bir nokta ile bitmemesidir.

Bu kural DNS kayıtları ile uğraşırken kullanılır. Ana bilgisayar adı ve ana bilgisayar dosyaları aslında DNS kayıtları değildir. Bağlamada bu girdileri DNS aramaları için çözümlenecek şekilde yapılandırıyorsanız, bir nokta kullanımı devreye girebilir (bu iyi kaynağa bakın: http://www.zytrax.com/books/dns/apa/dot.html ).

Ayrıca, tüm bu değerlerin sistemden yayınlanmadığını unutmayın. Bu nedenle, başka bir sistemin FQDN'ye dayalı olarak erişmesini istiyorsanız, o diğer sistemdeki ana bilgisayarlar dosyasına veya harici sistemin FQDN'ye geri dönmesine izin vermek için yaptığı DNS aramalarına dayanan ana bilgisayar girişlerine dayanmaz. sistemi.



3

Cevap olarak

IP adresim dinamikse (DHCP) ve zaman zaman değişirse ne olur? / etc / hosts içinde hangi adresi myname olarak kullanmalıyım?

Öncelikle, / etc / hosts komutunun yüklü olduğu ana bilgisayar için adres eşlemesine yönelik statik bir ad tanımı olduğunu ve SADECE bu ana bilgisayar tarafından adı IP adresine dönüştürmek için kullanıldığını belirtmeme izin verin.

Yani, dikkate alınması gereken 2 bakış açısı var - ev sahibi 'isim' ve diğer herkes.

Bu 'myhost' ana bilgisayarı için, 'localhost' kullanarak (/ etc / hosts içinde 127.0.0.1 olarak tanımlanır) geçerli ana makineye başvurun veya localhost'u tanımlayan / etc / hosts satırına 'myname' ekleyin. 'her zaman localhost ile eşleşir. Şöyle ki:

127.0.0.1 localhost takma adı

O zaman INTERFACE'in hangi IP adresine verildiği önemli değildir, her zaman çalışan bir adresiniz olacaktır (ek bir bonus 'myname' den 'myname' 'e konuşmak için donanıma çarpmanız gerekmez).

Şimdi, 'myhost' dinamik bir IP adresi olduğunda DİĞER ana makinelerin 'myhost'u bulmasına izin vermek için DNS kullanmalısınız ve söz konusu DNS sunucusunun DHCP tarafından atanan eşlemeleri işlemesi gerekir. (Peki, tamam, aklıma gelen başka çözümler var, ama akla gelen her şey 'aptalca' kategorisi IMHO'ya uyuyor. ama bu tamamen farklı bir soru / cevap akışına layık bir soru, IMHO)


2

/ etc / hostname ve / etc / hosts basit, ama aynı zamanda o kadar basit değil ...

Debian /etc/hostnameve/etc/hosts

1) düzenleme / etc / ana bilgisayar .

Bunu ayarlamanın 2 geçerli yolu vardır.

Ya yapın:

  • machine, yani bu işlemci için basit, tek bir kelime adı.
    Örneğin, ' joe' kendi seçtiğiniz makine adınız olabilir.
    Bunun / etc / hosts içinde aşağıda daha ayrıntılı olarak açıklanan bir takma ad gerektireceğini unutmayın.

VEYA

  • machine.domain.net, yani bir Tam Nitelikli Alan Adı (FQDN).
    Örneğin, ' joe.xyz.com'.
    (Bu, joe.xyz.com'dan joe'nizin IP adresine, yani joe adlı makinenize işaret eden bir DNS Ana Bilgisayarı 'A' kaydına sahip olduğunuzu varsayar. Normalde bu kaydı alan adınızı satın aldığınız yere ayarlarsınız. bir an.)

Bir kez / etc / hostname ayarlanır, ardından bir sonraki adım komutları elde etmektir hostname --all-fqdnve dnsdomainnameaşağıdaki gibi, bu sırayla düzgün çalışması için:

2) düzenleme / etc / ana .

İçinde bu ana bilgisayarın FQDN'si için bir satır var , örn. 'Machine.domain.net', bu makinenin IP adresiyle (muhtemelen dinamik bir IP adres sunucusundan) şu şekilde eklenmiştir:

#   IP           FQDN (CANONICAL_HOSTNAME)   ALIASES
#-------------- --------------------------- ------------------------
192.168.1.14    Joe.xyz.com                 joe
  • İlk olarak, büyük veya küçük harflerin burada önemli olmadığını unutmayın . İpucu: Bununla birlikte, bazı büyük harflerin açık olması, sonraki adımlarda işlerin nereden geldiğini fark etmemizi sağlar. Bu yüzden J oe'yi büyük harfle yazdım .

  • Ayrıca , basithostname (yani / etc / hostname = 'makine') bir FQDN'yi doğru bir şekilde oluşturmak için, / etc / hosts içinde 'makine' adlı bir takma ad bulunmalıdır. Bu yüzden takma joe orada. (BTW, siz kullanmasanız bile bu takma ada sahip olmak sorun değildir.) Aksi takdirde bu takma ad gerekmez, kullanılmaz.

  • Ayrıca, 'domain.net' çözümlenebilir olmalıdır, yani DNS'de bunun için bir A kaydı olmalıdır. Buna ' çözümlenebilir ' denir (DNS çözümleyici tarafından).

3) Şimdi / etc / hostname ve / etc / hosts içindeki bu yeni ayarları çalıştırarak çekirdeğe yükleyin:

    $ /etc/init.d/hostname.sh       # Or by rebooting

4) Ana makine adını test edin

$ hostname      # Reports the hostname previously read from in /etc/hostname.
joe

VEYA

$ hostname
joe.xyz.com

İpuçları:

  • Şu anda / etc / hostname adının bu olmadığına dikkat edin, tıpkı şu anda tekrar düzenlerseniz olduğu gibi, daha önce /etc/init.d/hostname.sh betiği tarafından daha önce okunmuş gibi, muhtemelen yeniden başlatma sonucunda okunanlara dikkat edin.

  • Ayrıca, 'j' harfinin küçük harf olduğuna dikkat edin, bu da / etc / hostname'den geldiğini / etc / hosts'den düşündürmektedir.

5) FQDN'yi test edin

$ hostname --all-fqdn   #reports the FQDN(s) matched in /etc/hosts.
Joe.xyz.com             #  It searches /etc/hosts for the joe in /etc/hostname.
                        #  Notice that the 'J' is uppercase.  
                        #     This suggest it came from /etc/hosts.

6) DNS alan adını test edin

$ dnsdomainname         #reports the computed DNS doman name    
xyz.com                 #  (i.e. the right most part of the FQDN; 
                        #    the part to the right of the first, left most, dot)
                        #  This is coming from Joe.xyz.com in /hosts, 
                        #    after 'Joe.' is removed.

Artık bu, web ve e-posta sunucusu kurmayı kolaylaştırmalıdır.

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.