J'utilise Ubuntu 14.04 sur le service cloud de mon entreprise (mon instance a une IP élastique). Je veux vérifier l'adresse IP de mon instance que j'exécute par ligne de commande, mais cela n'a pas fonctionné.
root@ubuntu14-graphite:~# hostname
ubuntu14-graphite
root@ubuntu14-graphite:~# hostname -i
hostname: Name or service not known
Je ne comprends pas pourquoi.
J'ai essayé de faire un ping vers ubuntu14-graphite mais il a dit:
unknown host ubuntu14-graphite.
Est-ce à dire que mon hôte n'existe même pas?
J'ai un autre serveur (pas une instance cloud mais un serveur physique). Sur ce serveur, j'ai installé CentOS 6.7. J'ai vérifié l'adresse IP du nom d'hôte et cela a fonctionné même s'il n'y avait rien de spécial dans /etc/hosts
.
Voici la sortie 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
la source
hostname
différemment que les systèmes basés sur RH..mettez127.0.1.1 ubuntu14-graphite
dans le/etc/hosts
fichier et vérifiez..notez, ce127.0.1.1
n'est pas le cas127.0.0.1
(que vous pouvez conserver de toute façon juste pour localhost, tout comme le127.0.0.0/8
bloc de bouclage, vous pouvez utiliser n'importe quelle adresse bien que certains systèmes aient des adresses restreintes prédéfinies )La façon réelle de vérifier l'adresse IP d'une machine est d'utiliser la
ifconfig
commande.Notez qu'en fonction de la configuration réelle du cloud, l'instance de serveur peut ne pas connaître l'adresse IP publique et ne connaître qu'une adresse IP VLAN. Pour plus de détails à ce sujet, vous devez vous référer à la documentation de votre fournisseur.
la source
ip a s
. Voir serverfault.com/q/458628/89813 - ifconfig est déconseillé sous Linux.Ajoutez l'
myhostname
entrée auhosts
service dans/etc/nsswitch.conf
.En d'autres termes, modifiez cette ligne en
/etc/nsswitch.conf
:pour ça:
Lorsque les noms d'hôte sont généralement résolus à l'aide du
/etc/hosts
fichier et du DNS, le nom d'hôte du système peut également être résolu en demandant au commutateur de service de noms de le faire (comme le fera cette modification de configuration).Cela expliquerait pourquoi vous n'avez rien vu de spécial sur le
/etc/hosts
fichier sur le système que vous pourriez résoudre le nom d'hôte local.Plus d'informations sur le
myhostname
drapeau sont ici .la source
À mon avis, cela dépend de la version de la commande hostname (package net-tools).
Voir: https://bugzilla.redhat.com/show_bug.cgi?id=319981
hostname -i
- me donne des informations sur IPv6 et IPv4la source
hostname -s
, nonhostname -i
. Ce n'est pas lié aux versions dehostname
, c'est lié à la possibilité de résoudre le nom d'hôte donné parhostname
.Allez dans etc / hosts.save, vérifiez votre nom d'hôte là-bas. Ensuite, modifiez
/etc/hosts
pour y écrire votre nom d'hôte et le nom d'hôtehosts.save
. Vérifiez également l'adresse IP. Exemple:la source
/etc/hosts
ne leur donnera pas l'adresse IP réelle. Je ne vois pas non plus pourquoi vous cherchez également/etc/hosts.save
ce qui est une technicité et très hors de propos.