Sto eseguendo Ubuntu 14.04 sul servizio cloud della mia azienda (la mia istanza ha un IP elastico). Voglio controllare lindirizzo IP della mia istanza che sto eseguendo dalla riga di comando, ma non ha funzionato.

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

Non capisco il motivo.

Ho provato a eseguire il ping a ubuntu14-graphite ma diceva:

unknown host ubuntu14-graphite. 

Significa che il mio host non “t esisti?

Ho un altro server (non unistanza cloud ma un server fisico). In questo server ho installato CentOS 6.7. Ho controllato lIP del nome host e ha funzionato anche se non cera niente di speciale in /etc/hosts.

Ecco loutput di 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 

Risposta

Significa che “il system “(sto usando questo termine in un senso ampio, generale, ambiguo)” non sa che il nome ubuntu14-graphite corrisponde al tuo host e al suo indirizzo IP. (Il fatto che sia il tuo host “s name non è” t abbastanza per farlo accadere .) Questo significa quasi sicuramente che non hai una riga per ubuntu14-graphite nel tuo /etc/hosts file e che non è nel tuo servizio di denominazione (ad esempio, DNS o NIS). Di conseguenza, un modo per risolverlo è aggiungere ubuntu14-graphite (e il relativo indirizzo IP) al tuo /etc/hosts. Se stai utilizzando un sistema di denominazione più sofisticato (distribuito) come DNS o NIS (o forse ActiveDirectory?), La soluzione definitiva è aggiungere il tuo host a quel servizio.
_____________
† … e vedo dal tuo post del tuo file hosts che è così.

Cè qualche dibattito sulla questione di quale indirizzo IP dovresti associare al tuo nome host . Tutti concordano sul fatto che dovrebbe essere un indirizzo che “funziona” per il tuo host; ad esempio, comandi come ping A.B.C.D dovrebbero avere successo. Alcune persone consigliano di utilizzare un indirizzo di loopback. Gli indirizzi di loopback sono sempre dei form 127 .BCD ; i valori comuni sono 127.0.0.1 e 127.0.1.1. Altre persone consigliano di utilizzare un indirizzo LAN, che potrebbe essere 192.168 .CD (ma può essere quasi tutto) – ma non dovresti inserire un indirizzo assegnato dinamicamente nel tuo file hosts (e, se stai usando DHCP con DNS, allora gli indirizzi assegnati dinamicamente dovrebbero essere inseriti nei tuoi record DNS automaticamente). Utilizza comandi come ifconfig e hostname -I per vedere quali indirizzi sono in uso.

Commenti

  • Grazie per la tua risposta. Ho modificato la mia domanda perché ho notato un altro caso relativo al mio server CentOS che ‘ non ha nientaltro che 127.0.0.1 localhost ma riesco ancora a controllare il mio host ‘ s IP.
  • Beh, forse il nome e lindirizzo del server CentOS sono stati inseriti nel sistema DNS (o qualsiasi altro servizio di nomi sia in uso).
  • Nel sistema CentOS, bind e bind-utils non erano installati. Quindi ‘ sono davvero confuso.
  • @TheOne Ubuntu tratta hostname in modo diverso dai sistemi basati su RH..put 127.0.1.1 ubuntu14-graphite nel file /etc/hosts e controlla..note, il suo 127.0.1.1, non 127.0.0.1 (che puoi comunque conservare solo per localhost, poiché 127.0.0.0/8 è un blocco di loopback puoi utilizzare qualsiasi indirizzo sebbene alcuni sistemi abbiano indirizzi limitati predefiniti)
  • @heemayl Quindi, mettendo 127.0.1.1 ubuntu14-graphite su / etc / hosts, quindi controlla lIP non ho ‘ ottenuto lIP corretto. Non ‘ ha senso, vero?

Risposta

Il modo effettivo per controllare lindirizzo IP di una macchina è utilizzare il comando ifconfig.

Tieni presente che, a seconda della configurazione cloud effettiva, listanza del server potrebbe non essere a conoscenza dellIP pubblico e conosce solo un IP VLAN. Per i dettagli su questo, è necessario fare riferimento alla documentazione del provider.

Commenti

Risposta

Aggiungi la myhostname voce al servizio hosts in /etc/nsswitch.conf.

In altre parole, cambia questa riga in /etc/nsswitch.conf:

hosts: files dns 

in questo:

hosts: files dns myhostname 

Dove di solito i nomi host vengono risolti utilizzando il file /etc/hosts e dns, il nome host del sistema può anche essere risolto dicendo a Switch del servizio nomi di farlo (come farà questa modifica alla configurazione).

Questo spiegherebbe perché “non hai visto niente di speciale nel /etc/hosts sul sistema che potresti risolvere il nome host locale.

Ulteriori informazioni sul flag myhostname sono qui .

Risposta

Secondo me dipende dalla versione del comando hostname (pacchetto net-tools).

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

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

hostname -i – mi fornisce informazioni su IPv6 e IPv4

Commenti

  • La segnalazione di bug riguarda hostname -s, non hostname -i. Questo non è correlato alle versioni di hostname, è correlato al fatto che il nome host fornito da hostname sia risolvibile.

Risposta

Se il problema non viene ancora risolto nonostante lapplicazione delle soluzioni alternative precedenti:

Prova a rimuovere la parte http:// dallURL nel tuo comando telnet come mostrato di seguito:

Invece di utilizzare:

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

Prova questo:

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

Risposta

Vai a etc / hosts.save controlla il tuo hostname lì. Quindi modifica /etc/hosts per scrivere il tuo nome host e il nome host in hosts.save. Controlla anche lindirizzo IP. Esempio:

127.0.0.1 ubuntu 127.0.1.1 ubuntu.ubuntu-domain ubuntu 

Commenti

  • Impostazione di un IP localhost in /etc/hosts non fornirà loro lindirizzo IP effettivo. Inoltre non riesco a capire perché ‘ stai anche guardando /etc/hosts.save che è un tecnicismo e molto irrilevante.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *