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
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
- Nej;
ip a s
. Se serverfault.com/q/458628/89813 – ifconfig är utfasad på Linux.
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
, intehostname -i
. Detta är inte relaterat till versioner avhostname
, det är relaterat till om värdnamnet som ges avhostname
ä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 ditttelnet
-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.
hostname
annorlunda än RH-baserade system..matar127.0.1.1 ubuntu14-graphite
i/etc/hosts
-filen och kontrollera..anmärkning, dess127.0.1.1
, inte127.0.0.1
(som du ändå kan behålla bara för localhost, eftersom127.0.0.0/8
är loopback-block, du kan använda valfri adress även om vissa system har fördefinierade begränsade adresser)