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
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
- Ne;
ip a s
. Viz serverfault.com/q/458628/89813 – ifconfig je v systému Linux zastaralý.
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
, nehostname -i
. To nesouvisí s verzemihostname
, 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říkazutelnet
, 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í.
hostname
jinak než se systémy založenými na RH..put127.0.1.1 ubuntu14-graphite
v souboru/etc/hosts
a zkontrolujte..note, její127.0.1.1
, ne127.0.0.1
(který můžete stejně uložit jako localhost, protože127.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)