Käytän Ubuntu 14.04: tä yritykseni pilvipalvelussa (instanssillani on joustava IP). Haluan tarkistaa instanssini IP-osoitteen, jota suoritan komentoriviltä, mutta se ei toiminut.

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

En ymmärrä syy miksi.

Yritin pingata ubuntu14-grafiittiin, mutta siinä sanottiin:

unknown host ubuntu14-graphite. 

Tarkoittaako tämä sitä, että isäntäni ei ”t” edes olemassa?

Minulla on toinen palvelin (ei pilvi-ilmentymä vaan fyysinen palvelin). Tähän palvelimeen asensin CentOS 6.7: n. Tarkistin isäntänimen IP: n ja se toimi, vaikka /etc/hosts -kohdassa ei ollut mitään erityistä.

Tässä on :

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 

Vastaa

Se tarkoittaa, että ” system ”(en käytä tätä termiä laajassa, yleisessä, epäselvässä merkityksessä) ei tiedä, että nimi ubuntu14-graphite vastaa isäntäsi ja sen IP-osoitetta. (Tosiasia, että isäntäsi ”s nimi ei ole tarpeeksi tämän toteuttamiseksi .) Tämä tarkoittaa melkein varmasti sitä, että sinulla ei ole riviä ubuntu14-graphite /etc/hosts -tiedostossasi ja että se ei ole nimipalvelussa (esim. DNS tai NIS). Näin ollen tapa korjata on lisätä ubuntu14-graphite (ja sen IP-osoite) /etc/hosts -kansioon. Jos käytät kehittyneempää (hajautettua) nimijärjestelmää, kuten DNS tai NIS (tai ehkä ActiveDirectory?), Lopullinen ratkaisu on lisätä isäntäsi palveluun.
_____________
† … ja näen isäntätiedostosi viestistä, että näin on.

On keskusteltu siitä, mikä IP-osoite sinun tulisi liittää isäntänimeesi . Kaikki ovat yhtä mieltä siitä, että sen pitäisi olla osoite, joka ”toimii” isäntänne, eli komentojen, kuten ping A.B.C.D, pitäisi onnistua. Jotkut suosittelevat loopback-osoitteen käyttöä. Loopback-osoitteet ovat aina lomake 127 .BCD ; yleiset arvot ovat 127.0.0.1 ja 127.0.1.1. Muut ihmiset suosittelevat LAN-osoitteen käyttöä, joka saattaa näyttää 192.168 .CD (mutta se voi olla melkein mitä tahansa) – mutta sinun ei pitäisi laittaa dynaamisesti osoitettua osoitetta isäntätiedostoon (ja jos käytät DHCP: tä DNS: n kanssa, dynaamisesti osoitetut osoitteet tulisi syöttää DNS-tietueihisi automaattisesti). Käytä komentoja, kuten ifconfig ja hostname -I nähdäksesi, mitkä osoitteet ovat käytössä.

Kommentit

  • Kiitos vastauksestasi. Muokkasin kysymystäni, koska huomasin vielä yhden CentOS-palvelimelleni liittyvän tapauksen, jolla ' ei ole muuta kuin 127.0.0.1 localhost, mutta voin silti tarkistaa isäntäni ' IP.
  • No, ehkä CentOS-palvelimen nimi ja osoite syötetään DNS-järjestelmään (tai mitä tahansa nimipalvelua käytetään).
  • CentOS-järjestelmässä bind ja bind-utils ei ollut asennettuna. Joten olen ' m todella hämmentynyt.
  • @TheOne Ubuntu kohtelee hostname toisin kuin RH-pohjaiset järjestelmät..put 127.0.1.1 ubuntu14-graphite /etc/hosts -tiedostossa ja tarkista..huom., sen 127.0.1.1, ei 127.0.0.1 (jonka voit silti säilyttää vain localhostille, koska 127.0.0.0/8 on loopback-lohko, voit käyttää mitä tahansa osoitetta, vaikka joissakin järjestelmissä on ennalta rajoitetut osoitteet)
  • @heemayl Joten asettamalla 127.0.1.1 ubuntu14-grafiitti tiedostoon / etc / hosts, tarkista sitten IP, josta en saanut ' saan oikean IP-osoitteen. Ei ' ole järkevää, eikö?

Vastaa

Todellinen tapa tarkistaa koneen IP-osoite on käyttää ifconfig -komentoa.

Huomaa, että todellisesta pilviasetuksesta riippuen palvelinilmentymä voi ole tietoinen julkisesta IP-osoitteesta ja tiedä vain VLAN-IP-osoite. Lisätietoja saat palveluntarjoajan ohjeista.

Kommentit

Vastaa

Lisää myhostname -merkintä palveluun hosts /etc/nsswitch.conf.

Toisin sanoen, muuta tämä rivi /etc/nsswitch.conf:

hosts: files dns 

tähän:

hosts: files dns myhostname 

Missä yleensä isäntänimet ratkaistaan /etc/hosts -tiedoston ja dns: n avulla, järjestelmän isäntänimi voidaan myös määrittää ratkaistiin käskemällä nimipalvelukytkintä tekemään niin (kuten tämä kokoonpanomuutos tekee).

Tämä selittäisi, miksi et nähnyt mitään erityistä /etc/hosts tiedosto järjestelmässä, jonka avulla voit ratkaista paikallisen isäntänimen.

Lisätietoja myhostname -lipusta on täällä .

Vastaus

Mielestäni se riippuu isäntäkomennon versiosta (paketti net-tools).

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

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

hostname -i – antaa minulle tietoja IPv6: sta ja IPv4: stä.

Kommentit

  • Tämä virheraportti koskee hostname -s, ei hostname -i. Tämä ei liity hostname -versioihin, vaan siihen, onko hostname -palvelimen antama isäntänimi ratkaistavissa.

vastaus

Jos ongelma ei vieläkään ratkea huolimatta yllä olevien kiertotapojen soveltamisesta:

Yritä poistaa http:// -osa telnet -komennosi URL-osoitteesta alla esitetyllä tavalla:

Käyttämisen sijaan:

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

Kokeile tätä:

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

Vastaa

Siirry osoitteeseen etc / hosts.save tarkista isäntänimesi siellä. Ja muokkaa sitten /etc/hosts ja kirjoita isäntänimi ja isäntänimi kohtaan hosts.save. Tarkista myös IP-osoite. Esimerkki:

127.0.0.1 ubuntu 127.0.1.1 ubuntu.ubuntu-domain ubuntu 

kommentit

  • paikallisen isännän IP-osoitteen asettaminen /etc/hosts ei anna heille todellista IP-osoitetta. En myöskään näe, miksi ' tarkastelet myös /etc/hosts.save, joka on tekninen ja erittäin merkityksetön.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *