iv class = se mi zobrazila chyba “ název hostitele: název nebo služba není známa ” „question“>

Používám Ubuntu 14.04 na cloudové službě mé společnosti (moje instance má elastickou IP). Chci zkontrolovat IP adresu mé instance, kterou běžím z příkazového řádku, ale nefungovalo to.

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

Nerozumím důvod proč.

Snažil jsem se ping na ubuntu14-graphite, ale řekl:

unknown host ubuntu14-graphite. 

Znamená to, že můj hostitel není dokonce existují?

Mám jiný server (ne cloudovou instanci, ale fyzický server). Na tento server jsem nainstaloval CentOS 6.7. Zkontroloval jsem IP adresu hostitele a fungovalo to, i když v /etc/hosts nebylo nic zvláštního.

Zde je výstup 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 

Odpověď

Znamená to, že „ system „(používám tento výraz v širokém, obecném a nejednoznačném smyslu) neví, že název ubuntu14-graphite odpovídá vašemu hostiteli a jeho IP adrese. (Skutečnost, že váš hostitel je name nestačí k tomu, aby se to stalo .) To téměř jistě znamená, že ve svém /etc/hosts souboru iv id = „nemáte řádek pro ubuntu14-graphite. 67c62f026d „>

a že to není ve vaší pojmenovací službě (např. DNS nebo NIS). Způsob, jak to opravit, je tedy přidatubuntu14-graphite(a jeho IP adresu) do vašeho/etc/hosts. Pokud používáte propracovanější (distribuovaný) systém pojmenování, jako je DNS nebo NIS (nebo možná ActiveDirectory?), Je konečným řešením přidat do této služby hostitele.
_____________
† … a z příspěvku vašeho souboru hostitelů vidím, že tomu tak je.

O otázce, jakou IP adresu byste měli spojit se jménem svého hostitele, se vedou určité debaty. . Každý souhlasí s tím, že by to měla být adresa, která „funguje“ pro vašeho hostitele; tj. Příkazy jako ping A.B.C.D by měly být úspěšné. Někteří lidé doporučují použít adresu zpětné smyčky. formulář 127 .BCD ; běžné hodnoty jsou 127.0.0.1 a 127.0.1.1. Ostatní lidé doporučují použít adresu LAN, která může vypadat jako 192.168 .CD (ale může být téměř cokoli) – ale do souboru hostitelů byste neměli vkládat dynamicky přiřazenou adresu (a pokud používáte DHCP s DNS, pak by měla být do vašich záznamů DNS zadána dynamicky přiřazená adresa) automaticky). Pomocí příkazů jako ifconfig a hostname -I zjistíte, jaké adresy se používají.

Komentáře

  • Děkujeme za vaši odpověď. Upravil jsem svou otázku, protože jsem si všiml ještě jednoho případu týkajícího se mého serveru CentOS, který nemá ‚ nic jiného než 127.0.0.1 localhost, ale stále můžu zkontrolovat svého hostitele ‚ s IP.
  • Možná je do systému DNS zadáno jméno a adresa serveru CentOS (nebo jakákoli jiná služba jmen).
  • V systému CentOS nebyl nainstalován bind a bind-utils. Takže jsem ‚ m opravdu zmatený.
  • @TheOne Ubuntu zachází s hostname jinak než se systémy založenými na RH..put 127.0.1.1 ubuntu14-graphite v souboru /etc/hosts a zkontrolujte..note, její 127.0.1.1, ne 127.0.0.1 (který můžete stejně uložit jako localhost, protože 127.0.0.0/8 je blok smyčky, můžete použít libovolnou adresu, i když některé systémy mají předdefinované omezené adresy)
  • @heemayl Takže vložením 127.0.1.1 ubuntu14-graphite na / etc / hosts pak zkontroluj IP, nezískal jsem ‚ správnou IP. To nedává ‚ smysl, že?

Odpověď

Skutečným způsobem, jak zkontrolovat IP adresu stroje, je použití příkazu ifconfig.

Upozorňujeme, že v závislosti na skutečném nastavení cloudu může instance serveru nevíte o veřejné IP a znáte pouze VLAN IP. Podrobnosti najdete v dokumentaci vašeho poskytovatele.

Komentáře

Odpovědět

Přidejte položku myhostname do služby hosts ve službě /etc/nsswitch.conf.

Jinými slovy změňte tento řádek v /etc/nsswitch.conf:

hosts: files dns 

na tento:

hosts: files dns myhostname 

Tam, kde jsou názvy hostitelů obvykle řešeny pomocí souboru /etc/hosts a dns, může být také název hostitele systému vyřešeno tak, že to řeknete přepínači názvových služeb (jak to udělá tato změna konfigurace).

To by vysvětlovalo, proč jste neviděli nic zvláštního o /etc/hosts soubor v systému, který můžete vyřešit pomocí místního názvu hostitele.

Další informace o příznaku myhostname jsou zde .

Odpověď

Podle mého názoru to závisí na verzi příkazu hostname (balíček net-tools).

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

  • příklad na openSuse Leap 42.3 „:
 # hostname -V net-tools 1.60 hostname 1.100 (2001-04-14) # hostname -i hostname: Name or service not known 
  • na Lubuntu 17.10
 $ hostname -V hostname 3.18 

hostname -i – poskytuje mi informace o IPv6 a IPv4

Komentáře

  • Zpráva o chybě se týká hostname -s, ne hostname -i. To nesouvisí s verzemi hostname, souvisí to s tím, zda je název hostitele daný hostname rozeznatelný.

Odpověď

Pokud problém přetrvává i přes výše uvedená řešení:

Zkuste odstranit http:// část z adresy URL v příkazu telnet, jak je uvedeno níže:

Místo použití:

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

Zkuste toto:

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

Odpovědět

Přejít na etc / hosts.save tam zkontrolovat název hostitele. A pak upravte /etc/hosts tak, aby tam bylo zapsáno vaše jméno hostitele a název hostitele v hosts.save. Zkontrolujte také IP adresu. Příklad:

127.0.0.1 ubuntu 127.0.1.1 ubuntu.ubuntu-domain ubuntu 

Komentáře

  • Nastavení adresy IP místního hostitele v /etc/hosts jim neposkytne skutečnou adresu IP. Také nechápu, proč se ‚ díváte také na /etc/hosts.save, což je technicky a velmi irelevantní.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *