Ik gebruik Ubuntu 14.04 op de cloudservice van mijn bedrijf (mijn instantie heeft elastische IP). Ik wil het IP-adres van mijn instantie die ik gebruik via de opdrachtregel bekijken, maar het werkte niet.

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

Ik begrijp het niet de reden waarom.

Ik probeerde te pingen naar ubuntu14-graphite maar er stond:

unknown host ubuntu14-graphite. 

Betekent dit dat mijn host zelfs bestaan?

Ik heb een andere server (geen cloudinstantie maar fysieke server). Op deze server heb ik CentOS 6.7 geïnstalleerd. Ik heb het IP-adres van de hostnaam gecontroleerd en het werkte ook al was er niets speciaals in /etc/hosts.

Hier is de uitvoer van 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 

Antwoord

Het betekent dat “de systeem “(ik gebruik die term in een brede, algemene, dubbelzinnige betekenis)” weet niet dat de naam ubuntu14-graphite overeenkomt met je host en zijn IP-adres. (Dat is het feit dat uw host “s name niet voldoende is om dit mogelijk te maken .) Dit betekent vrijwel zeker dat je geen regel hebt voor ubuntu14-graphite in je /etc/hosts bestand , en dat het niet in uw naamgevingsdienst staat (bijv. DNS of NIS). Daarom is een manier om het probleem op te lossen het toevoegen van ubuntu14-graphite (en zijn IP-adres) aan uw /etc/hosts. Als u een geavanceerder (gedistribueerd) naamgevingssysteem gebruikt zoals DNS of NIS (of misschien ActiveDirectory?), Is de ultieme oplossing om uw host aan die service toe te voegen.
_____________
† … en ik zie uit uw post van uw hosts-bestand dat dit het geval is.

Er is enige discussie over de vraag welk IP-adres u aan uw hostnaam moet koppelen . Iedereen is het erover eens dat het een adres moet zijn dat “werkt” voor uw host; dat wil zeggen dat opdrachten als ping A.B.C.D zouden moeten slagen. Sommige mensen raden het gebruik van een loopback-adres aan. Loopback-adressen zijn altijd van de formulier 127 .BCD ; algemene waarden zijn 127.0.0.1 en 127.0.1.1. Andere mensen raden het gebruik van een LAN-adres aan, dat eruit kan zien als 192.168 .CD (maar het kan ook bijna alles) – maar u mag geen dynamisch toegewezen adres in uw hosts-bestand plaatsen (en als u DHCP met DNS gebruikt, moeten de dynamisch toegewezen adressen in uw DNS-records worden ingevoerd automatisch). Gebruik commandos zoals ifconfig en hostname -I om te zien welke adressen in gebruik zijn.

Opmerkingen

  • Bedankt voor uw antwoord. Ik heb mijn vraag aangepast omdat ik nog een geval heb opgemerkt met betrekking tot mijn CentOS-server die niet ‘ iets anders heeft dan 127.0.0.1 localhost, maar ik kan nog steeds mijn host controleren ‘ s IP.
  • Misschien zijn de naam en het adres van de CentOS-server ingevoerd in het DNS-systeem (of welke naamservice dan ook).
  • In het CentOS-systeem waren de bind en bind-utils niet geïnstalleerd. Dus ik ‘ ben echt in de war.
  • @TheOne Ubuntu behandelt hostname anders dan op RH gebaseerde systemen..put 127.0.1.1 ubuntu14-graphite in het /etc/hosts -bestand en controleer..note, het is 127.0.1.1, niet 127.0.0.1 (die u sowieso alleen voor localhost kunt behouden, aangezien 127.0.0.0/8 een loopback-blok is, kunt u elk adres gebruiken, hoewel sommige systemen vooraf gedefinieerde beperkte adressen hebben)
  • @heemayl Dus door 127.0.1.1 ubuntu14-graphite op / etc / hosts te zetten en vervolgens het IP-adres te controleren, heb ik ‘ het juiste IP-adres niet gevonden. Dat is ‘ niet logisch, toch?

Antwoord

De daadwerkelijke manier om het IP-adres van een machine te controleren is door het ifconfig commando te gebruiken.

Merk op dat, afhankelijk van de feitelijke cloudconfiguratie, de serverinstantie Wees niet op de hoogte van het openbare IP-adres en ken alleen een VLAN IP. Voor details hierover, dient u de documentatie van uw provider te raadplegen.

Opmerkingen

Antwoord

Voeg de myhostname vermelding toe aan de hosts service in /etc/nsswitch.conf.

Met andere woorden, verander deze regel in /etc/nsswitch.conf:

hosts: files dns 

naar dit:

hosts: files dns myhostname 

Waar hostnamen meestal worden omgezet met het /etc/hosts -bestand en dns, kan de hostnaam van het systeem ook opgelost door de Name Service Switch te vertellen om dit te doen (zoals deze configuratiewijziging zal doen).

Dit zou verklaren waarom je “niets speciaals zag aan de /etc/hosts bestand op het systeem dat u de lokale hostnaam zou kunnen omzetten.

Meer informatie over de myhostname vlag is hier .

Antwoord

Naar mijn mening hangt het af van de versie van het hostnaamcommando (net-tools pakket).

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

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

hostname -i – geeft me informatie over IPv6 en IPv4

Reacties

  • Dat bugrapport gaat over hostname -s, niet hostname -i. Dit heeft niets te maken met versies van hostname, het heeft te maken met of de hostnaam gegeven door hostname kan worden opgelost.

Antwoord

Als het probleem nog steeds niet is opgelost ondanks het toepassen van de bovenstaande oplossingen:

Probeer het http:// gedeelte te verwijderen van de url in je telnet commando zoals hieronder getoond:

In plaats van:

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

Probeer dit:

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

Answer

Ga naar etc / hosts.save en controleer je hostnaam daar. En bewerk vervolgens /etc/hosts om daar uw hostnaam en de hostnaam in hosts.save te schrijven. Controleer ook het IP-adres. Voorbeeld:

127.0.0.1 ubuntu 127.0.1.1 ubuntu.ubuntu-domain ubuntu 

Reacties

  • Een localhost IP instellen in /etc/hosts geeft hen niet het daadwerkelijke IP-adres. Ik begrijp ook niet waarom je ‘ ook kijkt naar /etc/hosts.save, wat een technisch aspect is en zeer irrelevant.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *