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

  • Takk svaret ditt. Jeg redigerte spørsmålet mitt fordi jeg la merke til en sak til relatert til CentOS-serveren min som ikke ' ikke har noe annet enn 127.0.0.1 localhost, men jeg kan fortsatt sjekke verten min ' s IP.
  • Vel, kanskje navnet og adressen til CentOS-serveren blir lagt inn i DNS-systemet (eller hvilken som helst navnetjeneste som er i bruk).
  • I CentOS-systemet ble ikke bind og bind-utils installert. Så jeg ' er veldig forvirret.
  • @TheOne Ubuntu behandler hostname annerledes enn RH-baserte systemer..put 127.0.1.1 ubuntu14-graphite i /etc/hosts filen og sjekk..merknad, dens 127.0.1.1, ikke 127.0.0.1 (som du uansett kan beholde bare for localhost, da 127.0.0.0/8 er loopback-blokk, du kan bruke hvilken som helst adresse, selv om noen systemer har forhåndsdefinerte begrensede adresser)
  • @heemayl Så ved å sette 127.0.1.1 ubuntu14-grafitt på / etc / hosts, sjekk deretter IP-en, jeg fikk ikke ' for å få riktig IP. ' t gir mening, ikke sant?

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

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, ikke hostname -i. Dette er ikke relatert til versjoner av hostname, det er relatert til om vertsnavnet gitt av hostname 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 i telnet -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.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *