it-swarm.com.de

Beim Überprüfen der IP-Adresse des Hostnamens wurde die Fehlermeldung "Hostname: Name oder Dienst nicht bekannt" angezeigt

Ich verwende Ubuntu 14.04 im Cloud-Service meines Unternehmens (meine Instanz hat eine elastische IP). Ich möchte die IP-Adresse meiner Instanz, die ich ausführe, über die Befehlszeile überprüfen, aber es hat nicht funktioniert.

[email protected]:~# hostname
ubuntu14-graphite
[email protected]:~# hostname -i
hostname: Name or service not known

Ich verstehe den Grund nicht.

Ich habe versucht, zu Ubuntu14-Graphit zu pingen, aber es hieß:

unknown Host ubuntu14-graphite.

Bedeutet das, dass mein Host nicht einmal existiert?

Ich habe einen anderen Server (keine Cloud-Instanz, sondern einen physischen Server). Auf diesem Server habe ich CentOS6.7 installiert. Ich habe die IP des Hostnamens überprüft und es hat funktioniert, obwohl /etc/hosts Nichts Besonderes enthielt.

Hier ist die Ausgabe von 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
13
The One

Dies bedeutet, dass "das System" (ich verwende diesen Begriff in einem allgemeinen, mehrdeutigen Sinne) nicht weiß, dass der Name ubuntu14-graphite Ihrem Host und seiner IP-Adresse entspricht. (Die Tatsache, dass dies der ) Name Ihres Hosts ist reicht nicht aus, um dies zu erreichen.) Dies bedeutet mit ziemlicher Sicherheit dass Sie keine Zeile für ubuntu14-graphite in Ihrer /etc/hosts - Datei habenund dass es nicht in Ihrem Namensdienst enthalten ist (z. B. DNS oder NIS). Eine Möglichkeit, dies zu beheben, besteht darin, ubuntu14-graphite (Und seine IP-Adresse) zu Ihrem /etc/hosts Hinzuzufügen. Wenn Sie ein komplexeres (verteiltes) Namenssystem wie DNS oder NIS (oder vielleicht ActiveDirectory?) Verwenden, besteht die ultimative Lösung darin, Ihren Host zu diesem Dienst hinzuzufügen.
_____________
† ... und ich sehe aus Ihrem Beitrag Ihrer Hosts-Datei, dass dies der Fall ist.

Es gibt einige Debatten über die Frage, welche IP-Adresse Sie Ihrem Hostnamen zuordnen sollten. Alle sind sich einig, dass es sich um eine Adresse handeln sollte, die für Ihren Host "funktioniert". d.h. Befehle wie ping A.B.C.D sollten erfolgreich sein. Einige Leute empfehlen die Verwendung einer Loopback-Adresse. Loopback-Adressen haben immer die Form 127.B.C.D;; Gemeinsame Werte sind 127.0.0.1 und 127.0.1.1. Andere Leute empfehlen die Verwendung einer LAN-Adresse, die wie 192.168 aussehen könnte.CD (aber es kann fast alles sein) - aber Sie sollten keine dynamisch zugewiesene Adresse in Ihre Hosts-Datei einfügen (und wenn Sie DHCP mit DNS verwenden, sollten die dynamisch zugewiesenen Adressen automatisch in Ihre DNS-Einträge eingegeben werden ). Verwenden Sie Befehle wie ifconfig und hostname -I, Um zu sehen, welche Adressen verwendet werden.

Die tatsächliche Methode zum Überprüfen der IP-Adresse eines Computers ist die Verwendung des Befehls ifconfig.

Beachten Sie, dass abhängig von der tatsächlichen Cloud-Einrichtung die Serverinstanz möglicherweise die öffentliche IP nicht kennt und nur eine VLAN IP kennt. Einzelheiten hierzu finden Sie in der Dokumentation Ihres Anbieters.

1
Julie Pelletier

Fügen Sie den Eintrag myhostname zum Dienst hosts in /etc/nsswitch.conf Hinzu.

Mit anderen Worten, ändern Sie diese Zeile in /etc/nsswitch.conf:

hosts:      files dns

dazu:

hosts:      files dns myhostname

Wenn Hostnamen normalerweise mit der Datei /etc/hosts Und DNS aufgelöst werden, kann der Hostname des Systems auch aufgelöst werden, indem der Name Service Switch dazu aufgefordert wird (wie dies bei dieser Konfigurationsänderung der Fall ist).

Dies würde erklären, warum Sie an der Datei /etc/hosts Auf dem System nichts Besonderes gesehen haben, mit dem Sie den lokalen Hostnamen auflösen könnten.

Weitere Informationen zum Flag myhostname finden Sie unter hier .

1
Kodey Converse

Meiner Meinung nach hängt es von der Version des Befehls hostname (Paket net-tools) ab.

Siehe: https://bugzilla.redhat.com/show_bug.cgi?id=319981

  • beispiel zu "openSuse Leap 42.3":
    # hostname -V
    net-tools 1.60
    hostname 1.100 (2001-04-14)

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

hostname -i - gibt mir Informationen zu IPv6 und IPv4

0
Bronek Dzikus