Jag kör Ubuntu 14.04 på mitt företags molntjänst (min instans har elastisk IP). Jag vill kolla IP-adressen för min instans jag kör via kommandoraden, men den fungerade inte.

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

Jag förstår inte anledningen till det.

Jag försökte pinga till ubuntu14-grafit men det stod:

unknown host ubuntu14-graphite. 

Betyder det att min värd inte t existerar ens?

Jag har en annan server (inte molninstans utan fysisk server). I den här servern installerade jag CentOS 6.7. Jag kollade värdnamnet IP och det fungerade trots att det inte fanns något speciellt i /etc/hosts.

Här är utdata från 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 

Svar

Det betyder att ” system ”(jag använder den termen i vid, allmän, tvetydig mening) vet inte att namnet ubuntu14-graphite motsvarar din värd och dess IP-adress. (Det faktum att det är din värd ”s namn är inte tillräckligt för att detta ska ske .) Detta betyder nästan säkert att du inte har en rad för ubuntu14-graphite i din /etc/hosts -fil , och att den inte finns i din namntjänst (t.ex. DNS eller NIS). Följaktligen är ett sätt att fixa det att lägga till ubuntu14-graphite (och dess IP-adress) till din /etc/hosts. Om du använder ett mer sofistikerat (distribuerat) namngivningssystem som DNS eller NIS (eller kanske ActiveDirectory?) Är den ultimata lösningen att lägga till din värd till den tjänsten.
_____________
† … och jag ser från ditt inlägg i din värdfil att så är fallet.

Det finns en del debatt om frågan om vilken IP-adress du ska associera med ditt värdnamn Alla är överens om att det ska vara en adress som ”fungerar” för din värd, dvs. kommandon som ping A.B.C.D ska lyckas. Vissa rekommenderar att du använder en återkopplingsadress. Loopback-adresser är alltid av form 127 .BCD ; vanliga värden är 127.0.0.1 och 127.0.1.1. Andra människor rekommenderar att man använder en LAN-adress, som kan se ut som 192.168 .CD (men det kan vara nästan vad som helst) – men du borde inte lägga in en dynamiskt tilldelad adress i din värdfil (och om du använder DHCP med DNS, ska den eller de dynamiskt tilldelade adresserna anges i dina DNS-poster automatiskt). Använd kommandon som ifconfig och hostname -I för att se vilka adresser som används.

Kommentarer

  • Tack för ditt svar. Jag redigerade min fråga eftersom jag märkte ett annat fall relaterat till min CentOS-server som ' inte har något annat än 127.0.0.1 localhost men jag kan fortfarande kontrollera min värd ' s IP.
  • Tja, kanske namnet och adressen till CentOS-servern matas in i DNS-systemet (eller vilken namntjänst som helst används).
  • I CentOS-systemet installerades inte bindnings- och bindningsverktygen. Så jag ' är verkligen förvirrad.
  • @TheOne Ubuntu behandlar hostname annorlunda än RH-baserade system..matar 127.0.1.1 ubuntu14-graphite i /etc/hosts -filen och kontrollera..anmärkning, dess 127.0.1.1, inte 127.0.0.1 (som du ändå kan behålla bara för localhost, eftersom 127.0.0.0/8 är loopback-block, du kan använda valfri adress även om vissa system har fördefinierade begränsade adresser)
  • @heemayl Så genom att sätta 127.0.1.1 ubuntu14-grafit på / etc / hosts, kontrollera sedan IP: n, jag fick inte ' för att få rätt IP. ' är inte vettigt, eller hur?

Svar

Det verkliga sättet att kontrollera maskinens IP-adress är med kommandot ifconfig.

Observera att serverinstansen kan bero på den faktiska molninstallationen var inte medveten om den offentliga IP-adressen och känner bara till en VLAN-IP. För mer information om detta, måste du hänvisa till din leverantörs dokumentation.

Kommentarer

Svar

Lägg till myhostname posten till hosts tjänsten i /etc/nsswitch.conf.

Med andra ord, ändra den här raden i /etc/nsswitch.conf:

hosts: files dns 

till detta:

hosts: files dns myhostname 

Där vanligen värdnamn löses med /etc/hosts -filen och dns kan systemets värdnamn också löst genom att be namnet Service Switch att göra det (som denna konfigurationsändring kommer att göra).

Detta förklarar varför du inte såg något speciellt med /etc/hosts fil på systemet som du kan lösa det lokala värdnamnet.

Mer information om myhostname -flaggan är här .

Svar

Enligt min mening beror det på versionen av värdnamnkommandot (paketet net-tools).

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

  • exempel på ” openSuse Leap 42.3 ”:
 # hostname -V net-tools 1.60 hostname 1.100 (2001-04-14) # hostname -i hostname: Name or service not known 
  • på Lubuntu 17.10
 $ hostname -V hostname 3.18 

hostname -i – ger mig information om IPv6 och IPv4

Kommentarer

  • Den felrapporten handlar om hostname -s, inte hostname -i. Detta är inte relaterat till versioner av hostname, det är relaterat till om värdnamnet som ges av hostname är löst.

Svar

Om problemet fortfarande inte är löst trots att lösningarna ovan har tillämpats:

Försök ta bort http:// del från url i ditt telnet -kommando som visas nedan:

Istället för att använda:

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

Prova detta:

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

Svar

Gå till etc / hosts.save kontrollera ditt värdnamn där. Och redigera sedan /etc/hosts för att där skriva ditt värdnamn och värdnamnet i hosts.save. Kontrollera också IP-adressen. Exempel:

127.0.0.1 ubuntu 127.0.1.1 ubuntu.ubuntu-domain ubuntu 

Kommentarer

  • Ställa in en lokal värd för IP i /etc/hosts ger dem inte den verkliga IP-adressen. Jag förstår inte heller varför du ' också tittar på /etc/hosts.save vilket är tekniskt och väldigt irrelevant.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *