/ etc / hostsにドメイン名を含めるかどうか


15

CentOSノードのVMWareクラスターをセットアップしています。マシンの後にドメイン名を含めるのがベストプラクティスですか?除外する潜在的な問題は何ですか?ドメインは構成を複雑にしますか、それとも単純化しますか?

たとえば、ノードがにある場合、次のよう192.168.1.93に変更/etc/hostsする必要があります

127.0.0.1 localhost.localdomain localhost

127.0.0.1 localhost.cluster localhost
192.168.1.93 computernode1.cluster computenode1

または

127.0.0.1 localhost
192.168.1.93 computenode1

または

#127.0.0.1 localhost
192.168.1.93 computenode1

または

192.168.1.93 localhost
192.168.1.93 computenode1

回答:


24

ドメイン名の入力/etc/hostsはオプションであり、システムに悪影響を与えることなく実行できます。

除外する唯一の欠点は、システムの完全修飾ホスト名が適切に表示されないことです。たとえば、hostname -f

完全修飾ホスト名の検出方法は次のとおりです。

  1. 最初にホスト名または「ショートネーム」を取得します。これはの出力ですuname -nhostname
  2. 次に、そのホスト名のIPアドレスを、/etc/hosts(またはにあるものは何でも参照して取得し、/etc/resolv.conf見つからない場合は後者のソースにフォールバックします)取得します/etc/hosts
  3. IPを取得したら、再度相談することで逆引きを行い/etc/hostsます。
  4. にレコードが追加される/etc/hostsと、最初のエントリが完全修飾ホスト名として使用されます。

一言で言えば、完全修飾ホスト名を機能させるには、次のいずれかを実行する必要があります。

127.0.0.1 fully.qualified.hostname hostname localhost.localdomain localhost

または

127.0.0.1 localhost.localdomain localhost
1.2.3.4 fully.qualified.hostname hostname

1
私はその点を考慮しませんでした。完全修飾ホスト名はデスクトップPCには役に立たず、ラップトップにとっては問題になる可能性があります(ラップトップは異なるネットワークに持ち込まれる可能性が高いため)が、サーバーにとっては便利です。たとえば、Apache2は、FQDNを決定できない場合に文句を言います。
lgeorget

また、単に使用することができます@lgeorget libnss-myhostnameあなたのFQDNを解決するの世話をするが、内のエントリは必要ありません。これは/etc/hsots
ウルリッヒDangel

上記の構成では、問題を引き起こす表示される場合があり、この Debianの現在の設定の実践上の議論をhostsファイルを、そしてこのの使用(またはその欠如)に1 localhost.localdomainエントリー。
ジョアダム

1
sudoホスト名が次の場所にない場合も文句を言います/etc/hostssudo: unable to resolve host <hostname>
x-yuri

3

ホストがドメイン名に同意する限り、それを指定してもしなくて/etc/hostsも、何も変わりません。別の方法は、でdomainパラメータとして指定することです/etc/resolv.conf。指定しないと、ある日、ネットワーク管理者がそれを変更した場合に、あなたの人生を簡素化できます。私が知る限り、それを指定しても何も変わりません。

絶対に出発する127.0.0.1 localhost127.0.0.1 localhost localhost.localdomain、入る必要があり/etc/hostsます。アプリケーションによってlocalhostは、ループバックアドレス以外にバインドされるという奇妙な動作が発生する可能性があります。これは、これが本当に本当に予期しない設定だからです。


2

IPアドレスの後の最初の位置に完全修飾ドメイン名を指定する必要があります。

私たちが読んでいるようにman 5 hosts

各ホストには、次の情報を含む単一の行が存在する必要があります。

IPアドレスcanonical_hostname [エイリアス...]

ルールに従わない場合、一部のソフトウェアが破損する可能性があります。たとえば、Puppet構成管理システムは、ドメイン部分を指定しなかったため、またはFQDNの前の行にドメインなしのエイリアスを配置したために、実行ごとにホスト名の変更を開始する場合があります。


0

これが本当に「オプション」であるかどうかはわかりません(上記でPatrickが示したように)。私はついに、nfsパーミッションがnobody:nobodyに戻る問題を突き止めました。(idmapdを使用して)nfsマウントで適切に機能するためのパーミッションのように見えます。サーバーのドメイン名はクライアントのドメイン名と正確に一致する必要があります。私が見つけたいくつかのドキュメントから- hostname -f実際のホスト名はクライアントとサーバー間で同一である必要があります、またはクライアントのドメイン名を指定する必要があります、/etc/idmapd.confつまり各クライアントを意味します。

ドメイン名を指定する場所に関する公式のルールはありますか?domainnameコマンドは、その/ etc / hostsファイルを中に入れて.. / etc / hostsファイルからそれを拾うしていないようだ、それはそれはファイルシステム上の複数の場所に保存されている意味するので、私を気に..

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.