linux hostname -f komutu RHEL üzerinde çalışmıyor


13

RHEL 5.7 kullanıyorum ve hostnamekomut bana doğru ana bilgisayar adını veriyor.
Ama hostname -sve hostname -fdönüş: Unknown host. Neden?


Ne dağıtımı? Ubuntu 12.04 sistemimde tüm 3 çalışma.
Anthon

Hangi işletim sistemini kullanıyorsunuz? Linux ise, hangi dağıtım? İçeriği nedir /etc/hostname?
terdon

1
hostname -fDNS kullanıyor, IP'niz için ters DNS girişiniz var mı?
Barmar

@terdon RHEL5 kullanıyorum (kırmızı şapka kurumsal linux sunucu sürümü 5.7 (tikanga)) ve böyle bir dosya yok (/ etc / hostname)
redoc

@Barmar Ana bilgisayarımda dns yapılandırılmamış. IP adresimi ve fqdn'yi ana bilgisayarım dosyasına (/ etc / hosts) ekledim, bu hata dns'in yapılandırılmamasından kaynaklanıyor mu?
redoc

Yanıtlar:


21

(SF'deki yanıtlarımdan birinden kopyalandı )

hostnameKomut DNS ve sonuç döndürmüyor /etc/hosts.

hostname, uname -nkutunun gerçek "ana bilgisayar adı" veya "nodename" i ile eşdeğerdir ve o addır.
Diğer tüm hostnameargümanlar bu nodename'i bilgi aramak için kullanır.

Bu yüzden daha ileri gitmeden önce /etc/hostsdosya formatını açıklamalıyım .
İlk alan oldukça açıktır, satırdaki tüm ana bilgisayar adlarının çözmesi gereken IP adresidir. İkinci alan, söz konusu IP için birincil ana bilgisayar adıdır. Kalan alanlar takma adlardır.

Bu nedenle, çalıştırırsanız hostname -fönce nodename için IP'yi çözmeye çalışacaktır. hosts:Girişin /etc/nsswitch.confbu yöntemde nasıl yapılandırıldığınıza bağlı olarak değişecektir.

  • DNS kullanmak üzere yapılandırdıysanız, /etc/resolv.confDNS'den bir IP geri alana kadar yapılandırılmış arama alanlarını kullanır .
  • Dosyaları kullanmak üzere yapılandırdıysanız /etc/hosts, birincil ana bilgisayar adının veya takma adın geçerli nodename ( uname -n) adınız olduğu bir satır bulup bu satırdaki IP adresini döndürür.

IP'ye sahip olduğunda, o IP'de geriye doğru arama yapmayı dener. Yine bu ve ana bilgisayarlarınız dosyası için DNS kullanır nsswitch.conf. Hosts dosyanızı kullanmanız durumunda, birincil girişi (dosyadaki IP'den sonraki ilk alan olan) döndürür.

hostname -aDNS'de geriye doğru arama yapmak size yalnızca 1 sonuç verdiğinden yalnızca hosts dosyasıyla çalışır. Hosts dosyası ile eşleşen satırdaki (ilk girişten sonra birincil ana bilgisayar adı olan her şey) alises döndürür.

 

Kısacası, sorununuzun olası nedeni /etc/hosts, ana bilgisayar adınızı ( uname -n) içeren hiçbir girişinizin olmamasıdır .


Örnekler
Nodename 'foobar' ise ve /etc/hostsbunun gibi bir girişiniz varsa :

127.0.0.1 foobar.example.com foobar localhost.localdomain localhost

Sonra aşağıdaki komut sonuçlarını alırsınız:

# hostname
foobar
# uname -n
foobar

# hostname -f
foobar.example.com

# hostname -a
foobar localhost.localdomain localhost

Değeri nasıl elde ettiğine dair bu açıklama harika! Birincil ana bilgisayar adı localhost olan 127.0.0.1 satırının sonunda benim FQDN vardı. Sadece sildim ve FQDN'yi sadece gerçek IP'ye sahip olan satırda bıraktım ve hosthost -f localhost döndürme sorunumu düzeltti.
qwertzguy
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.