Я использую Ubuntu 14.04 в облачной службе моей компании (у моего экземпляра эластичный IP). Я хочу проверить IP-адрес моего экземпляра, который я запускаю из командной строки, но он не работает.
root@ubuntu14-graphite:~# hostname
ubuntu14-graphite
root@ubuntu14-graphite:~# hostname -i
hostname: Name or service not known
Я не понимаю причину почему.
Я пытался пинговать Ubuntu14-графит, но он сказал:
unknown host ubuntu14-graphite.
Означает ли это, что мой хост даже не существует?
У меня есть другой сервер (не облачный экземпляр, а физический сервер). На этом сервере я установил CentOS 6.7. Я проверил IP-адрес хоста, и он работал, хотя в нем ничего особенного не было /etc/hosts
.
Вот вывод 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
источник
hostname
разному относится к системам , основанным на RH .. введите127.0.1.1 ubuntu14-graphite
в/etc/hosts
файл и проверьте..note, его127.0.1.1
, not127.0.0.1
(который вы можете сохранить в любом случае только для localhost, так как в качестве127.0.0.0/8
обратной петли вы можете использовать любой адрес, хотя некоторые системы имеют предопределенные ограниченные адреса )Фактический способ проверить IP-адрес устройства - использовать
ifconfig
команду.Обратите внимание, что в зависимости от фактической настройки облака экземпляр сервера может не знать об общедоступном IP-адресе и знать только IP-адрес VLAN. Для получения подробной информации об этом вам необходимо обратиться к документации вашего провайдера.
источник
ip a s
, См. Serverfault.com/q/458628/89813 - ifconfig устарела в Linux.Добавьте
myhostname
запись вhosts
сервис в/etc/nsswitch.conf
.Другими словами, измените эту строку в
/etc/nsswitch.conf
:к этому:
Где обычно имена хостов разрешаются с помощью
/etc/hosts
файла и DNS, имя хоста системы также можно разрешить, сказав переключателю службы имен (как это будет сделано при изменении конфигурации).Это объясняет, почему вы не увидели в системе ничего особенного,
/etc/hosts
что вы могли бы разрешить локальное имя хоста.Более подробная информация о
myhostname
флаге здесь .источник
На мой взгляд, это зависит от версии команды hostname (пакет net-tools).
Смотрите: https://bugzilla.redhat.com/show_bug.cgi?id=319981
hostname -i
- дает мне информацию об IPv6 и IPv4источник
hostname -s
, а неhostname -i
. Это не связано с версиямиhostname
, это связано с тем,hostname
разрешается ли имя хоста, заданное с помощью .Перейдите в etc / hosts.save и проверьте там свое имя хоста. И затем отредактируйте,
/etc/hosts
чтобы записать там ваше имя хоста и имя хоста вhosts.save
. Также проверьте IP-адрес. Пример:источник
/etc/hosts
IP-адреса не даст им фактический IP-адрес. Я также не понимаю, почему вы также смотрите,/etc/hosts.save
что является техническим и очень неуместным.