Estou executando o Ubuntu 14.04 no serviço de nuvem da minha empresa (minha instância tem IP elástico). Quero verificar o endereço IP da minha instância que estou executando pela linha de comando, mas não funcionou.
root@ubuntu14-graphite:~# hostname
ubuntu14-graphite
root@ubuntu14-graphite:~# hostname -i
hostname: Name or service not known
Eu não entendo o motivo.
Eu tentei executar ping no ubuntu14-graphite, mas ele disse:
unknown host ubuntu14-graphite.
Isso significa que meu host nem existe?
Eu tenho outro servidor (não instância de nuvem, mas servidor físico). Neste servidor, instalei o CentOS 6.7. Eu verifiquei o IP do nome do host e funcionou mesmo que não houvesse nada de especial /etc/hosts
.
Aqui está a saída de 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
fonte
hostname
diferente que os sistemas baseados127.0.1.1 ubuntu14-graphite
em/etc/hosts
RH..putam no arquivo e verificam .. note,127.0.1.1
não127.0.0.1
(que você pode preservar de qualquer maneira apenas para o host local, como no127.0.0.0/8
bloco de loopback, você pode usar qualquer endereço, embora alguns sistemas tenham endereços restritos predefinidos )A maneira real de verificar o endereço IP de uma máquina é usando o
ifconfig
comandoObserve que, dependendo da configuração real da nuvem, a instância do servidor pode não estar ciente do IP público e conhecer apenas um IP da VLAN. Para detalhes sobre isso, você precisa consultar a documentação do seu provedor.
fonte
ip a s
. Consulte serverfault.com/q/458628/89813 - ifconfig está obsoleto no Linux.Adicione a
myhostname
entrada aohosts
serviço em/etc/nsswitch.conf
.Em outras palavras, altere esta linha em
/etc/nsswitch.conf
:para isso:
Onde geralmente os nomes de host são resolvidos usando o
/etc/hosts
arquivo e o DNS, o nome do host do sistema também pode ser resolvido, solicitando ao Name Service Switch que faça isso (como essa alteração na configuração).Isso explicaria por que você não viu nada de especial sobre o
/etc/hosts
arquivo no sistema que pudesse resolver o nome do host local.Mais informações sobre a
myhostname
bandeira estão aqui .fonte
Na minha opinião, depende da versão do comando hostname (pacote net-tools).
Consulte: https://bugzilla.redhat.com/show_bug.cgi?id=319981
hostname -i
- fornece informações sobre IPv6 e IPv4fonte
hostname -s
, nãohostname -i
. Isso não está relacionado às versõeshostname
, está relacionado ao fato de o nome do host fornecido porhostname
ser resolvível.Vá para etc / hosts.save, verifique seu nome de host lá. E edite
/etc/hosts
para escrever lá o nome do host e o nome do hosthosts.save
. Verifique também o endereço IP. Exemplo:fonte
/etc/hosts
não fornecerá o endereço IP real. Também não entendo por que você também está vendo o/etc/hosts.save
que é um detalhe técnico e muito irrelevante.