web-dev-qa-db-ja.com

ホスト名のIPを確認すると、「ホスト名:名前またはサービスが不明です」というエラーが発生しました

会社のクラウドサービスでUbuntu 14.04を実行しています(私のインスタンスにはエラスティック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に特別なものは何もないにもかかわらず、IPは機能しました。

これが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
13
The One

これは、「システム」(その用語を広く、一般的で、あいまいな意味で使用しています)は、名前ubuntu14-graphiteがホストとそのIPアドレスに対応していることを認識していないことを意味します。 (それがホストのnameであるという事実は、これを実現するのに十分ではありません。)これは、ほぼ間違いなく、 ubuntu14-graphiteファイルに/etc/hostsの行がない、それがネーミングサービス(DNSやNISなど)にないこと。したがって、これを修正する方法は、ubuntu14-graphite(およびそのIPアドレス)を/etc/hostsに追加することです。 DNSやNIS(またはActiveDirectory?)などのより高度な(分散)ネーミングシステムを使用している場合、最終的な解決策は、ホストをそのサービスに追加することです。
_____________
†...そして、あなたのhostsファイルの投稿から、これが事実であることがわかります。

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

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

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

1
Julie Pelletier

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

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

hosts:      files dns

これに:

hosts:      files dns myhostname

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

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

myhostnameフラグの詳細は here です。

1
Kodey Converse

私の意見では、ホスト名コマンド(net-toolsパッケージ)のバージョンに依存します。

参照: https://bugzilla.redhat.com/show_bug.cgi?id=319981

  • 「openSuse Leap 42.3」の例:
    # hostname -V
    net-tools 1.60
    hostname 1.100 (2001-04-14)

    # hostname -i
    hostname: Name or service not known
  • lubuntu 17.10
  $ hostname -V
  hostname 3.18

hostname -i-IPv6およびIPv4に関する情報を提供します

0
Bronek Dzikus