Beim Überprüfen der IP des Hostnamens ist die Fehlermeldung „Hostname: Name oder Dienst unbekannt“ aufgetreten.

Beim Überprüfen der IP des Hostnamens ist die Fehlermeldung „Hostname: Name oder Dienst unbekannt“ aufgetreten.

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

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

Ich verstehe den Grund dafür nicht. 

Ich habe versucht, einen Ping an ubuntu14-graphite zu senden, aber es kam:

unknown host ubuntu14-graphite.

Bedeutet das, dass mein Host gar nicht existiert?

Ich habe einen anderen Server (keine Cloud-Instanz, sondern einen physischen Server). Auf diesem Server habe ich CentOS 6.7 installiert. Ich habe die IP des Hostnamens überprüft und sie hat funktioniert, obwohl nichts Besonderes darin stand /etc/hosts.

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

Antwort1

Das bedeutet, dass „das System“ (ich verwende diesen Begriff in einem breiten, allgemeinen, mehrdeutigen Sinn) nicht weiß, dass der Name ubuntu14-graphite Ihrem Host und seiner IP-Adresse entspricht. (Die Tatsache, dass es sich um die IP-Adresse Ihres Hosts handelt,Namereicht nicht aus, um dies zu erreichen.) Dies bedeutet mit ziemlicher Sicherheit, dass Sie ubuntu14-graphite in Ihrer /etc/hostsDatei keine Zeile für haben und dass es nicht in Ihrem Namensdienst (z. B. DNS oder NIS) enthalten ist. Folglich können Sie das Problem beheben, indem Sie ubuntu14-graphite(und seine IP-Adresse) zu Ihrem hinzufügen /etc/hosts. Wenn Sie ein anspruchsvolleres (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 Post Ihrer Hosts-Datei, dass dies der Fall ist.

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

Antwort2

Die tatsächliche Möglichkeit zum Überprüfen der IP-Adresse einer Maschine besteht in der Verwendung des ifconfigBefehls.

Beachten Sie, dass die Serverinstanz je nach tatsächlichem Cloud-Setup möglicherweise die öffentliche IP nicht kennt und nur eine VLAN-IP kennt. Einzelheiten hierzu finden Sie in der Dokumentation Ihres Anbieters.

Antwort3

Fügen Sie den myhostnameEintrag dem hostsDienst in hinzu /etc/nsswitch.conf.

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

hosts:      files dns

dazu:

hosts:      files dns myhostname

Während Hostnamen normalerweise mithilfe der Datei und des DNS aufgelöst werden /etc/hosts, kann der Hostname des Systems auch aufgelöst werden, indem der Name Service Switch dazu aufgefordert wird (wie es durch diese Konfigurationsänderung geschieht).

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

Weitere Informationen zur myhostnameFlagge finden Sie unterHier.

Antwort4

Gehen Sie zu etc/hosts.save und überprüfen Sie dort Ihren Hostnamen. Und bearbeiten Sie ihn dann, /etc/hosts um dort Ihren Hostnamen und den Hostnamen in einzutragen hosts.save. Überprüfen Sie auch die IP-Adresse. Beispiel:

127.0.0.1    ubuntu   
127.0.1.1    ubuntu.ubuntu-domain    ubuntu

verwandte Informationen