Ich verwende Ubuntu 14.04 im Cloud-Dienst meines Unternehmens (meine Instanz hat eine elastische IP). Ich möchte die IP-Adresse meiner Instanz überprüfen, die über die Befehlszeile ausgeführt wird, aber sie hat nicht funktioniert.

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

Ich verstehe nicht der Grund warum.

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

unknown host ubuntu14-graphite. 

Bedeutet das, dass mein Host dies nicht tut? überhaupt vorhanden?

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 es hat funktioniert, obwohl /etc/hosts nichts Besonderes enthält.

Hier ist die Ausgabe von :

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 

Antwort

Dies bedeutet, dass „the System „(ich verwende diesen Begriff in einem weiten, allgemeinen, mehrdeutigen Sinne) weiß nicht, dass der Name ubuntu14-graphite Ihrem Host und seiner IP-Adresse entspricht. (Die Tatsache, dass es sich um den name Ihres Hosts handelt, reicht nicht aus, um dies zu erreichen .) Dies bedeutet fast sicher, dass Sie in Ihrer /etc/hosts -Datei iv id = „keine Zeile für ubuntu14-graphite haben. 67c62f026d „>

und 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 Ihrer/etc/hostshinzuzufügen. Wenn Sie ein komplexeres (verteiltes) Benennungssystem wie DNS oder NIS (oder möglicherweise 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 eine Adresse sein sollte, die für Ihren Host „funktioniert“, dh Befehle wie ping A.B.C.D sollten erfolgreich sein. Einige Leute empfehlen die Verwendung einer Loopback-Adresse. Loopback-Adressen sind immer von Formular 127 .BCD ; allgemeine Werte sind 127.0.0.1 und 127.0.1.1. Andere Personen empfehlen die Verwendung einer LAN-Adresse, die möglicherweise wie 192.168 .CD aussieht (dies kann jedoch sein) fast alles) – 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 in Ihre DNS-Einträge eingegeben werden automatisch). Verwenden Sie Befehle wie ifconfig und hostname -I, um zu sehen, welche Adressen verwendet werden.

Kommentare

  • Vielen Dank für Ihre Antwort. Ich habe meine Frage bearbeitet, weil mir ein weiterer Fall im Zusammenhang mit meinem CentOS-Server aufgefallen ist, der ‚ nur 127.0.0.1 localhost enthält, aber dennoch meinen Host ‚ s IP.
  • Nun, möglicherweise werden der Name und die Adresse des CentOS-Servers in das DNS-System eingegeben (oder welcher Name auch immer verwendet wird).
  • Im CentOS-System wurde bind und bind-utils nicht installiert. Also bin ich ‚ wirklich verwirrt.
  • @TheOne Ubuntu behandelt hostname anders als RH-basierte Systeme..put 127.0.1.1 ubuntu14-graphite in der Datei /etc/hosts und check..note, seine 127.0.1.1, nicht 127.0.0.1 (was Sie ohnehin nur für localhost speichern können, da 127.0.0.0/8 ein Loopback-Block ist, können Sie jede Adresse verwenden, obwohl einige Systeme vordefinierte eingeschränkte Adressen haben)
  • @heemayl Wenn Sie also 127.0.1.1 ubuntu14-graphite auf / etc / hosts setzen und dann die IP überprüfen, habe ich ‚ nicht die richtige IP erhalten. Das macht keinen ‚ Sinn, oder?

Antwort

Die IP-Adresse eines Computers kann mithilfe des Befehls ifconfig überprüft werden.

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

Kommentare

Antwort

Fügen Sie den Eintrag myhostname zum Dienst hosts in .

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

hosts: files dns 

in Folgendes:

hosts: files dns myhostname 

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

Dies würde erklären, warum Sie nichts Besonderes an der /etc/hosts Datei auf dem System, in der Sie den lokalen Hostnamen auflösen können.

Weitere Informationen zum Flag myhostname finden Sie unter hier .

Antwort

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 für “ openSuse Leap 42.3 „:
 # hostname -V net-tools 1.60 hostname 1.100 (2001-04-14) # hostname -i hostname: Name or service not known 
  • unter Lubuntu 17.10
 $ hostname -V hostname 3.18 

hostname -i – gibt mir Informationen zu IPv6 und IPv4

Kommentare

  • In diesem Fehlerbericht geht es um hostname -s, nicht hostname -i. Dies bezieht sich nicht auf Versionen von hostname, sondern darauf, ob der von hostname angegebene Hostname auflösbar ist.

Antwort

Wenn das Problem trotz Anwendung der obigen Problemumgehungen immer noch nicht behoben ist:

Versuchen Sie, den Teil http:// aus der URL in Ihrem Befehl telnet zu entfernen, wie unten gezeigt:

Anstatt Folgendes zu verwenden:

telnet http://website.lab7-2533586.ch-geni-net.instageni.colorado.edu 80 

Versuchen Sie Folgendes:

telnet website.lab7-2533586.ch-geni-net.instageni.colorado.edu 80 

Antwort

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

127.0.0.1 ubuntu 127.0.1.1 ubuntu.ubuntu-domain ubuntu 

Kommentare

  • Festlegen einer lokalen Host-IP in /etc/hosts gibt ihnen nicht die tatsächliche IP-Adresse. Ich verstehe auch nicht, warum Sie ‚ auch /etc/hosts.save betrachten, was technisch und sehr irrelevant ist.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.