Ana bilgisayar adının IP'sini kontrol ederken "ana bilgisayar adı: Ad veya hizmet bilinmiyor" hatası aldım


13

Şirketimin bulut hizmetinde Ubuntu 14.04 kullanıyorum (örneğimin elastik IP'si var). Komut satırı ile çalıştırdığım örneğimin IP adresini kontrol etmek istiyorum, ancak işe yaramadı.

root@ubuntu14-graphite:~# hostname
ubuntu14-graphite
root@ubuntu14-graphite:~# hostname -i
hostname: Name or service not known

Sebebini anlamıyorum. 

Ubuntu14-grafite ping denedim ama dedi:

unknown host ubuntu14-graphite.

Bu, sunucumun var olmadığı anlamına mı geliyor?

Başka bir sunucum var (bulut örneği değil, fiziksel sunucu). Bu sunucuda CentOS 6.7'yi kurdum. Ana bilgisayar adının IP'sini kontrol ettim ve özel bir şey olmasa bile çalıştı /etc/hosts.

İşte çıktı cat /etc/hosts:

127.0.0.1   localhost

# The following lines are desirable for IPv6 capable hosts
::1         ip6-localhost ip6-loopback
fe00::0     ip6-localnet
ff00::0     ip6-mcastprefix
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters
ff02::3     ip6-allhosts

Yanıtlar:


15

Bu "sistem" (bu terimi geniş, genel, belirsiz bir anlamda kullanıyorum) adının ubuntu14-graphite ana makinenize ve IP adresine karşılık geldiğini bilmediği anlamına gelir. (Olduğu gerçeği Barındırıcınızın olan isim İşte bunun için bir hat yok neredeyse kesinlikle anlamına gelir. Bunun olması için yeterli değildir) ubuntu14-graphite sizin de /etc/hostsdosyaya ve adlandırma hizmetinde olmadığını (örneğin, DNS veya NIS). Sonuç olarak, düzeltmenin bir yolu, ubuntu14-graphite(ve IP adresini) 'nize eklemektir /etc/hosts. DNS veya NIS (veya belki ActiveDirectory?) Gibi daha karmaşık (dağıtılmış) bir adlandırma sistemi kullanıyorsanız, nihai çözüm, ana makinenizi bu hizmete eklemektir.
_____________
† ...

Ana bilgisayar adınızla hangi IP adresini ilişkilendirmeniz gerektiği konusunda bazı tartışmalar var. Herkes bunun ev sahibiniz için "çalışan" bir adres olması gerektiğini kabul eder; yani, komutlar başarılı olmalıdır. Bazı insanlar geri döngü adresi kullanmanızı önerir. Geridöngü adresleri her zaman 127 .BCD biçimindedir ; ortak değerler 127.0.0.1 ve 127.0.1.1'dir. Diğer insanlar 192.168 .CD'ye benzeyen bir LAN adresi kullanmanızı önerir (ancak neredeyse her şey olabilir) - ancak ana bilgisayarlar dosyanıza dinamik olarak atanmış bir adres koymamalısınız (ve DNS ile DHCP kullanıyorsanız, dinamik olarak atanan adres (ler) DNS kayıtlarınıza otomatik olarak girilmelidir). Hangi adreslerin kullanıldığını görmek için ve gibi komutları kullanın.ping A.B.C.Difconfighostname -I


Cevabınız için teşekkürler. 127.0.0.1 localhost dışında bir şey olmayan CentOS sunucumla ilgili bir durum daha fark ettim, ancak yine de ev sahibimin IP'sini kontrol edebiliyorum çünkü sorumu düzenledim.
Bir

Eh, belki CentOS sunucusunun adı ve adresi DNS sistemine (veya kullanımda olan herhangi bir ad hizmetine) girilir.
G-Man

CentOS sisteminde, bind ve bind-utils kurulmadı. Bu yüzden gerçekten kafam karıştı.
Biri

@TheOne Ubuntu davranır hostnamefarklı olduğunu RH tabanlı systems..put 127.0.1.1 ubuntu14-graphiteiçinde /etc/hostsdosya ve check..note, onun 127.0.1.1değil, 127.0.0.1(eğer koruyucu zaten sadece localhost için, hem hangi 127.0.0.0/8herhangi adresi kullanabilirsiniz engellemek geri döngü bazı sistemler önceden tanımlanmış olmasına rağmen kısıtlı adresleri )
heemayl

@heemayl Böylece / etc / hosts 127.0.1.1 ubuntu14-grafit koyarak IP kontrol ben doğru IP alamadım. Bu mantıklı değil, değil mi?
Biri

1

Bir makinenin IP adresini kontrol etmenin gerçek yolu ifconfigkomutu kullanmaktır .

Gerçek bulut kurulumuna bağlı olarak, sunucu örneğinin genel IP'den haberdar olmayabileceğini ve yalnızca bir VLAN IP'sini bildiğini unutmayın. Bununla ilgili ayrıntılar için, sağlayıcınızın belgelerine bakmanız gerekir.


Hayır; ip a s. Bkz. Serverfault.com/q/458628/89813 - ifconfig Linux'ta kullanımdan kaldırılmıştır.
Monica'yı eski durumuna döndürün - M. Schröder

1

myhostnameGirişi hostshizmete ekleyin /etc/nsswitch.conf.

Başka bir deyişle, bu satırı şurada değiştirin /etc/nsswitch.conf:

hosts:      files dns

buna:

hosts:      files dns myhostname

Genellikle anasistem adlarının /etc/hostsdosya ve dns kullanılarak çözümlendiği durumlarda , sistemin anasistem adı, Ad Hizmeti Anahtarına bunu yapmasını söyleyerek de çözülebilir (bu yapılandırma değişikliği gibi).

Bu /etc/hosts, sistemdeki dosya hakkında neden yerel ana bilgisayar adını çözebileceğiniz özel bir şey görmediğinizi açıklar .

myhostnameBayrak hakkında daha fazla bilgi burada .


0

Bence bu, hostname komutunun (net-tools paketi) sürümüne bağlıdır.

Bkz. Https://bugzilla.redhat.com/show_bug.cgi?id=319981

  • "openSuse Leap 42.3" ile ilgili örnek:
    # hostname -V
    net-tools 1.60
    hostname 1.100 (2001-04-14)

    # hostname -i
    hostname: Name or service not known
  • Lubuntu 17.10 üzerinde
  $ hostname -V
  hostname 3.18

hostname -i - IPv6 ve IPv4 hakkında bilgi verir


Bu hata raporu ilgili hostname -s, değil hostname -i. Bu, sürümleriyle ilgili değil hostname, verilen ana bilgisayar adının hostnameçözülebilir olup olmadığıyla ilgilidir .
Stephen Kitt

-2

Etc / hosts.save adresine gidin ve orada host adınızı kontrol edin. Ve sonra /etc/hosts ana bilgisayar adınızı ve ana bilgisayar adınızı buraya yazmak için düzenleyin hosts.save. Ayrıca IP adresini de kontrol edin. Misal:

127.0.0.1    ubuntu   
127.0.1.1    ubuntu.ubuntu-domain    ubuntu

1
Bir localhost IP'sinin ayarlanması /etc/hostsonlara gerçek IP adresini vermeyecektir. Ayrıca neden /etc/hosts.savebir teknik ve çok alakasız olduğuna da baktığınızı göremiyorum .
Julie Pelletier
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.