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


13

会社のクラウドサービスで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

の出力は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

回答:


15

これは、「システム」(広義の、曖昧な意味でこの用語を使用しubuntu14-graphite ています)が、名前がホストとそのIPアドレスに対応していることを知らないことを意味します。(ホスト名であるという事実は、これを実現するのに十分ではありません。)これは、ほぼ確実ubuntu14-graphite に、/etc/hostsファイル†に行がないこと、およびネームサービス(DNSまたはNIS)。したがって、それを修正する方法は、にubuntu14-graphite(およびそのIPアドレス)を追加することです/etc/hosts。DNSやNIS(またはActiveDirectory?)などのより洗練された(分散)ネーミングシステムを使用している場合、究極のソリューションはホストをそのサービスに追加することです。
_____________
†...

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


ご回答ありがとうございます。127.0.0.1 localhost以外のものを持たないCentOSサーバーに関連するもう1つのケースに気づいたので、質問を編集しましたが、ホストのIPを確認することはできます。
ワン

おそらく、CentOSサーバーの名前とアドレスがDNSシステムに入力されている(または使用中のネームサービス)。
G-マンは「元に戻すモニカ言う

CentOSシステムでは、bindおよびbind-utilsはインストールされませんでした。だから私は本当に混乱しています。
ワン

@TheOne Ubuntuはhostname、RHベースのシステム127.0.1.1 ubuntu14-graphiteである/etc/hosts..putファイルとcheck..note 127.0.1.1ではなく、127.0.0.1あなただけのローカルホストのためにとにかく浮き袋ことができます(、127.0.0.0/8ループバックいくつかのシステムが制限されたアドレスをあらかじめ定義されているが、あなたが任意のアドレスを使用することができますブロックしています)
heemayl

@heemaylしたがって、127.0.1.1 ubuntu14-graphiteを/ etc / hostsに配置してから、正しいIPを取得できなかったIPを確認します。それは意味がありませんよね?
一つの

1

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

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


いや; ip a s。参照serverfault.com/q/458628/89813を - ifconfigコマンドは、Linux上で推奨されていません。
モニカの復職-M.シュレーダー

0

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

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

hosts:      files dns

これに:

hosts:      files dns myhostname

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

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

myhostnameフラグの詳細については、こちらをご覧ください


0

私の意見では、hostnameコマンドのバージョン(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に関する情報を提供します


そのバグレポートはではhostname -sなく、についてhostname -iです。これはのバージョンとは関係なくhostname、で指定されたホスト名hostnameが解決可能かどうかに関係します。
スティーブンキット

-2

etc / hosts.saveにアクセスして、ホスト名を確認します。そして/etc/hosts 、ホスト名とホスト名を編集してそこに書き込みますhosts.save。IPアドレスも確認してください。例:

127.0.0.1    ubuntu   
127.0.1.1    ubuntu.ubuntu-domain    ubuntu

1
localhost IPを設定し/etc/hostsても、実際のIPアドレスは提供されません。また、なぜあなたが/etc/hosts.saveどちらが技術的で非常に無関係であるかを見ているかもわかりません。
ジュリーペレティエ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.