「hostname -i」が「不明なホスト」を返すのはなぜですか?

「hostname -i」が「不明なホスト」を返すのはなぜですか?

AMIタイプを使用してAWS EC2インスタンスを作成しましたAmazon Linux AMI 2018.03.0.20190514 x86_64 HVM

インスタンスの起動後、ソフトウェアは無効なIPアドレスを印刷します。コマンドを実行しようとしたときにhostname -iコマンドが返されましたhostname: Unknown host

コマンドhostname自体は正しいホスト名を返し、コマンドに正しいIPアドレスがあるようですifconfigeth0

私たちの/etc/hostsファイルは次のとおりです。

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

最終的には以下を含めるように変更しました。

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

これにより、IPアドレスがhostname -i返されます。ただし、/etc/hostsまったく同じAMIタイプを実行している他のチームのEC2インスタンスとそのファイル/etc/hostsには次のものが含まれているため、変更する必要はありません。

127.0.0.1   localhost localhost.localdomain

そのインスタンスで実行すると正しいIPアドレスが返され、ファイルをhostname -i編集する必要はないようです。/etc/hosts

インスタンスhostname -iが返されるのはなぜですか?Unknown host

ベストアンサー1

hostname -iDNS検証を使用してIPを取得します。このエラーが発生した場合は、コンピュータのホスト名が正しく設定されていないことを意味します。デフォルトでは、コンピュータはVPCのDHCPサービスからホスト名とプライベートIPアドレスを取得します。 Amazon Linux でデフォルト設定に戻すには、次の点を確認します。

  1. あなたの/etc/sysconfig/network外観は次のようになります(これはあなたの問題かもしれません):
NETWORKING=yes
HOSTNAME=localhost.localdomain
NOZEROCONF=yes
  1. あなたは/etc/hosts次のようにする必要があります:
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost6 localhost6.localdomain6

これらの変更を適用するには、サーバーを再起動する必要があります。カスタムホスト名を使用する場合は、インスタンスの静的ホスト名を設定する必要があります。これは次のようにできます(ドメインが「example.com」で、マシンのホストが「server」であると仮定)。

  1. あなたは/etc/sysconfig/network次のようにする必要があります:
NETWORKING=yes
HOSTNAME=server.example.com
NOZEROCONF=yes
  1. あなたは/etc/hosts次のようにする必要があります:
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost6 localhost6.localdomain6
<instance-private-ip>   server server.example.com

サーバーを再起動したことを確認し、コマンドを実行するとその内容が印刷され、hostnameコマンドをserver.example.com実行したときにプライベートIPを取得する必要がありますhostname -i

DHCP と DHCP が VPC で動作する方法の詳細については、次を参照してください。この文書

おすすめ記事