RHEL 5.7 kullanıyorum ve hostname
komut bana doğru ana bilgisayar adını veriyor.
Ama hostname -s
ve hostname -f
dönüş: Unknown host
. Neden?
/etc/hostname
?
hostname -f
DNS kullanıyor, IP'niz için ters DNS girişiniz var mı?
RHEL 5.7 kullanıyorum ve hostname
komut bana doğru ana bilgisayar adını veriyor.
Ama hostname -s
ve hostname -f
dönüş: Unknown host
. Neden?
/etc/hostname
?
hostname -f
DNS kullanıyor, IP'niz için ters DNS girişiniz var mı?
Yanıtlar:
(SF'deki yanıtlarımdan birinden kopyalandı )
hostname
Komut DNS ve sonuç döndürmüyor /etc/hosts
.
hostname
, uname -n
kutunun gerçek "ana bilgisayar adı" veya "nodename" i ile eşdeğerdir ve o addır.
Diğer tüm hostname
argümanlar bu nodename'i bilgi aramak için kullanır.
Bu yüzden daha ileri gitmeden önce /etc/hosts
dosya 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.conf
bu yöntemde nasıl yapılandırıldığınıza bağlı olarak değişecektir.
/etc/resolv.conf
DNS'den bir IP geri alana kadar yapılandırılmış arama alanlarını kullanır . /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 -a
DNS'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/hosts
bunun 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