ホスト名のIPをチェックすると、「ホスト名: 名前またはサービスが不明です」というエラーが表示されます

ホスト名のIPをチェックすると、「ホスト名: 名前またはサービスが不明です」というエラーが表示されます

会社のクラウド サービスで Ubuntu 14.04 を実行しています (インスタンスには Elastic IP があります)。実行しているインスタンスの IP アドレスをコマンド ラインで確認したいのですが、うまくいきませんでした。

root@ubuntu14-graphite:~# hostname
ubuntu14-graphite
root@ubuntu14-graphite:~# hostname -i
hostname: Name or service not known

理由は分かりません。 

ubuntu14-graphite に ping しようとしましたが、次のように表示されました:

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

答え1

これは、「システム」(この用語を広く、一般的で、曖昧な意味で使用しています)が、名前がubuntu14-graphite ホストとそのIPアドレスに対応していることを認識していないことを意味します。(それがホストの名前では、これを実現するには不十分です。) これは、ファイルubuntu14-graphite にの行がなく、名前付けサービス (DNS や NIS など) に含まれていないことをほぼ確実に意味しています。したがって、これを修正する方法の 1 つは、(およびその IP アドレス) を に追加することです。DNS や NIS (または ActiveDirectory?) などのより高度な (分散型) 名前付けシステムを使用している場合、究極の解決策は、そのサービスにホストを追加することです。 _____________ † ... hosts ファイルの投稿から、これが当てはまることがわかります。/etc/hostsubuntu14-graphite/etc/hosts

ホスト名にどの IP アドレスを関連付けるべきかという問題については議論があります。ホストで「機能する」アドレスであるべきであること、つまり次のようなコマンドが成功すべきであることについては誰もが同意しています。ループバック アドレスの使用を推奨する人もいます。ループバック アドレスは常に 127 の形式です。ping A.B.C.D.BCD; 一般的な値は127.0.0.1と127.0.1.1です。他の人は192.168のようなLANアドレスの使用を推奨しています。。CD(ほとんど何でも構いません) — ただし、動的に割り当てられたアドレスをホスト ファイルに入れないでください (また、DNS で DHCP を使用している場合は、動的に割り当てられたアドレスが DNS レコードに自動的に入力されるはずです)。 や などのコマンドを使用してifconfighostname -I 使用されているアドレスを確認します。

答え2

マシンの IP アドレスを確認する実際の方法は、ifconfigコマンドを使用することです。

実際のクラウド設定によっては、サーバー インスタンスがパブリック IP を認識せず、VLAN IP のみを認識する場合があることに注意してください。詳細については、プロバイダーのドキュメントを参照する必要があります。

答え3

のサービスmyhostnameにエントリを追加します。hosts/etc/nsswitch.conf

つまり、次の行を変更します/etc/nsswitch.conf

hosts:      files dns

これに:

hosts:      files dns myhostname

通常、ホスト名は/etc/hostsファイルと DNS を使用して解決されますが、システムのホスト名は、ネーム サービス スイッチにそのように指示することによっても解決できます (この構成変更によって実行されます)。

/etc/hostsこれにより、ローカル ホスト名を解決できるシステム上のファイルについて特別なことが何も見られなかった理由が説明されます。

旗に関する詳しい情報myhostnameここ

答え4

etc/hosts.save に移動して、ホスト名を確認します。次に、/etc/hosts そこにホスト名とホスト名を記述するように編集しますhosts.save。また、IP アドレスも確認します。例:

127.0.0.1    ubuntu   
127.0.1.1    ubuntu.ubuntu-domain    ubuntu

関連情報