Назад | Перейти на главную страницу

Почему мой экземпляр AWS EC2 возвращает «Неизвестный хост» при выполнении «hostname -i»?

На прошлой неделе кто-то создал для нас экземпляр AWS EC2 с использованием типа AMI. Amazon Linux 2 AMI 2.0.20190313 x86_64 HVM gp2. Назовем это Instance1. Вчера мы обнаружили проблему с нашим программным обеспечением, которая могла быть вызвана этой версией Linux, поэтому мы создали новый экземпляр EC2, используя более старый тип AMI. Amazon Linux AMI 2018.03.0.20190514 x86_64 HVM. Мы использовали тот же тип экземпляра (m5.large), VPC, подсеть, теги и группы безопасности, что и Instance1.

После того, как мы запустили второй экземпляр (Instance2), наше программное обеспечение сгенерировало ошибку IP-адреса. Затем мы заметили, что команда hostname -i вернулся hostname: Unknown host.

В hostname команда сама по себе возвращает правильное имя хоста, а ifconfig команда показывает eth0 имея правильный IP-адрес.

Бег hostname -i на Instance1 вернул правильный IP-адрес.

Мы сравнили 2 экземпляра на вкладке «Описание» в консоли AWS и не обнаружили никаких различий. Мы спросили об этом парня, создавшего Instance1, и все, что он мог предложить, это проверить, что eth0 существовали и удостоверились, что группы безопасности были такими же (что они есть).

Кто-нибудь знает почему hostname -i возвращается Unknown host вместо IP-адреса?

В итоге мы нашли обходной путь:

В /etc/hosts файл как на Instance1, так и на Instance2 содержал:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost6 localhost6.localdomain6

Мы отредактировали файл на Instance2, чтобы он содержал:

<ip address>   localhost <hostname>
::1         localhost6 localhost6.localdomain6

После этого, hostname -i вернул IP-адрес. Но мы бы предпочли не вносить это изменение в /etc/hosts на Instance2, поскольку нам не нужно было вносить это изменение в Instance1.