Jeg kjører Ubuntu 14.04 på selskapets skytjeneste (forekomsten min har elastisk IP). Jeg vil sjekke IP-adressen til forekomsten jeg kjører etter kommandolinje, men den fungerte ikke.
root@ubuntu14-graphite:~# hostname ubuntu14-graphite root@ubuntu14-graphite:~# hostname -i hostname: Name or service not known
Jeg forstår ikke grunnen til det.
Jeg prøvde å pinge til ubuntu14-grafitt, men det sto:
unknown host ubuntu14-graphite.
Betyr det at verten min ikke t eksisterer til og med?
Jeg har en annen server (ikke skyforekomst, men fysisk server). På denne serveren installerte jeg CentOS 6.7. Jeg sjekket vertsnavnet IP, og det fungerte selv om det ikke var noe spesielt i /etc/hosts
.
Her er utgangen til 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 betyr at » system «(jeg bruker det ordet i en bred, generell, tvetydig forstand) vet ikke at navnet ubuntu14-graphite
tilsvarer verten din og dens IP-adresse. (Det faktum at det er verten din «s navn er ikke nok til at dette skjer .) Dette betyr nesten helt sikkert at du ikke har en linje for ubuntu14-graphite
i /etc/hosts
-filen † , og at den ikke er i navngivningstjenesten din (f.eks. DNS eller NIS). Følgelig er en måte å fikse det på å legge til ubuntu14-graphite
(og IP-adressen) til /etc/hosts
. Hvis du bruker et mer sofistikert (distribuert) navngivningssystem som DNS eller NIS (eller kanskje ActiveDirectory?), Er den ultimate løsningen å legge verten din til den tjenesten.
_____________
† … og jeg ser fra innlegget ditt til vertsfilen din at dette er tilfelle.
Det er noen debatt om spørsmålet om hvilken IP-adresse du skal knytte til vertsnavnet ditt. Alle er enige om at det skal være en adresse som «fungerer» for verten din. Det vil si at kommandoer som ping A.B.C.D
skal lykkes. Noen anbefaler å bruke en tilbakekoblingsadresse. Loopback-adresser er alltid av skjema 127 .BCD ; vanlige verdier er 127.0.0.1 og 127.0.1.1. Andre mennesker anbefaler å bruke en LAN-adresse, som kan se ut som 192.168 .CD (men det kan være nesten hva som helst) – men du bør ikke legge en dynamisk tildelt adresse i vertsfilen din (og hvis du bruker DHCP med DNS, skal den eller de dynamisk tildelte adressene legges inn i DNS-postene dine automatisk). Bruk kommandoer som ifconfig
og hostname -I
for å se hvilke adresser som er i bruk.
Kommentarer
Svar
Den faktiske måten å sjekke maskinens IP-adresse er ved å bruke kommandoen ifconfig
.
Merk at serverforekomsten kan avhenge av det faktiske skyoppsettet. ikke være oppmerksom på den offentlige IP-en og bare kjenne en VLAN-IP. For detaljer om dette, må du se leverandørens dokumentasjon.
Kommentarer
- Nei;
ip a s
. Se serverfault.com/q/458628/89813 – ifconfig er utdatert på Linux.
Svar
Legg til myhostname
-oppføringen i hosts
-tjenesten i /etc/nsswitch.conf
.
Med andre ord, endre denne linjen i /etc/nsswitch.conf
:
hosts: files dns
til dette:
hosts: files dns myhostname
Hvor vanligvis vertsnavn løses ved hjelp av /etc/hosts
-filen og dns, kan vertsnavnet til systemet også være løst ved å be Name Service Switch om å gjøre det (som denne konfigurasjonsendringen vil gjøre).
Dette vil forklare hvorfor du ikke så noe spesielt med /etc/hosts
fil på systemet som du kan løse det lokale vertsnavnet.
Mer informasjon om myhostname
-flagget er her .
Svar
Etter min mening avhenger det av versjon av vertsnavn-kommandoen (net-tools-pakken).
Se: https://bugzilla.redhat.com/show_bug.cgi?id=319981
- eksempel 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
– gir meg informasjon om IPv6 og IPv4
Kommentarer
- Den feilrapporten handler om
hostname -s
, ikkehostname -i
. Dette er ikke relatert til versjoner avhostname
, det er relatert til om vertsnavnet gitt avhostname
kan løses.
Svar
Hvis problemet fremdeles ikke er løst til tross for at du har brukt løsningene ovenfor:
Prøv å fjerne
http://
del fra url itelnet
-kommandoen som vist nedenfor:
I stedet for å bruke:
telnet http://website.lab7-2533586.ch-geni-net.instageni.colorado.edu 80
Prøv dette:
telnet website.lab7-2533586.ch-geni-net.instageni.colorado.edu 80
Svar
Gå til etc / hosts.save sjekk vertsnavnet ditt der. Og rediger deretter /etc/hosts
for å skrive vertsnavnet ditt og vertsnavnet i hosts.save
. Sjekk også IP-adressen. Eksempel:
127.0.0.1 ubuntu 127.0.1.1 ubuntu.ubuntu-domain ubuntu
Kommentarer
- Angi en lokal IP-adresse i
/etc/hosts
vil ikke gi dem den faktiske IP-adressen. Jeg kan heller ikke se hvorfor du ' også ser på/etc/hosts.save
som er teknisk og veldig irrelevant.
hostname
annerledes enn RH-baserte systemer..put127.0.1.1 ubuntu14-graphite
i/etc/hosts
filen og sjekk..merknad, dens127.0.1.1
, ikke127.0.0.1
(som du uansett kan beholde bare for localhost, da127.0.0.0/8
er loopback-blokk, du kan bruke hvilken som helst adresse, selv om noen systemer har forhåndsdefinerte begrensede adresser)