私は最近、いくつかのsysadmin作業を実行するように「強制」されましたが、これは、私が読んで、実験して、たくさん学んできたことで、私が絶対に好きなことではありません。
サーバー構成には、把握できていない基本的な側面が1つあります-hostnames。
たとえばUbuntuでは、次のようにホスト名を設定する必要があります( Linode Library に従って):
echo "plato" > /etc/hostname
hostname -F /etc/hostname
ファイル:/ etc/hosts
127.0.0.1 localhost.localdomain localhost
12.34.56.78 plato.example.com plato
plato
は任意の名前であり、plato.example.com
はFQDNであると想定しています。
今私の質問は:
plato.example.com
FQDNのDNSエントリを設定する必要がありますか?plato.example.com
を使用する必要がありますか?また、ホスト名を選択するための「ベストプラクティス」はありますか?ギリシャ文字、惑星名、さらには神話の人物を使用している人を見たことがあります。文字や惑星がなくなるとどうなりますか?
これが馬鹿げた質問である場合は申し訳ありませんが、ネットワーク構成にあまり熱心に取り組んだことがありません。
最近では、システムに複数のインターフェースがあり、それぞれに複数のアドレスがあり、各アドレスに複数のDNSエントリが関連付けられている場合もあります。では、「システムホスト名」とはどういう意味でしょうか。
多くのアプリケーションは、他の場所と通信するとき、システムのホスト名をデフォルトの識別子として使用します。たとえば、中央サーバーでsyslogメッセージを収集している場合、メッセージはすべて、発信元システムのホスト名でタグ付けされます。理想的な世界ではおそらくこれを無視するでしょう(必ずしもクライアントを信頼する必要はないためです)が、デフォルトの動作(すべてのシステムに「localhost」という名前を付けた場合)では、次のような一連のログメッセージが生成されます。特定のシステムに関連付けることができません。
他の人々が指摘したように、システムのホスト名は、多数のシステムにリモートでアクセスしている場合に役立つ識別子でもあります。 「localhost」という名前のシステムに5つのウィンドウが接続されている場合、それらをまっすぐに保つのに苦労することになります。
同様に、システムのホスト名を、システムへの管理アクセスに使用するホスト名と一致させます。これは、システムを参照するときの混乱を避けるのに役立ちます(電子メール、会話、ドキュメントなど)。
DNSについて:
混乱を避けるために、アプリケーションに適切な正引きおよび逆引きDNSエントリを用意する必要があります。人々がアプリケーションに簡単にアクセスできるようにするには、some転送エントリ(名前-> IPアドレス)が必要です。逆エントリの一致は、いくつかの理由で役立ちます。たとえば、対応するIPアドレスがログで見つかった場合に、アプリケーションを正しく識別するのに役立ちます。
ここでは「システム」ではなく「アプリケーション」について話していることに注意してください。これは、特にWebサーバーでは、システムに複数のIPアドレスがあり、異なるホスト名とサービスに関連付けられていることが一般的だからです。
ますます多くのシステムを管理しているため、/etc/hosts
ファイルで名前とIPのマッピングを維持するのはすぐに困難になります。ローカルホストファイルがDNSに関して同期しなくなることは非常に簡単であり、混乱を引き起こし、場合によっては誤動作する可能性があります(たとえば、システムに存在しないIPアドレスに何かがバインドしようとしたためです)。
すべてのホスト名を「localhost」に設定することもできますが、sshを介してマシンを管理するときにコマンドプロンプトにalix@plato ~ $
を含めると非常に便利です。そうしないと、サーバーをリモートで管理することは非常に混乱する可能性があります。
ウェブサーバーやメールサーバーをホストする場合は、正しいFQDNが重要です。これらの種類のサーバーアプリケーションは、実行されている "だれ"を知りたいと思っています。
適切な命名方式を選択するために、私は この非常に人気のある質問 を紹介します。
FQDNは、別のコンピューターにとって意味がある場合にのみ役立ちます。これには3つのレベルがあります。
電子メールを送信したり、Webページを外部に提供したりする場合、3番目は必要なものです。他のほとんどの場合、ローカルDNSを使用するか、hostsファイルを編集することさえできます。
その場合は、ローカルネットワーク内で使用するためのドメイン名(plato.alixnetworkはFQDNとしても問題ない可能性があります)を作成できます。 「alixnetwork」の部分(ドメイン名)を持つことの唯一の付加価値は、それと区別したい別のローカルネットワークがある場合の利便性です。
基本的な概要。ホスト名は単なるポインタです。特定の1つをマシンが参照するホスト名に割り当てることもできますが、複数にすることもできます。一部のサービス、注目すべきメールおよびHTTPは、ドメイン名に依存して、サービスの場所とアクセス方法を知っています。
昔、これらすべての名前(これもIPアドレスへのポインタにすぎません)は、hosts
というファイルで追跡されていました。システムが成長するにつれ、相互接続されたさまざまなネットワークに参加しているすべての関連するコンピューター間でファイルを同期させることができませんでした。そこでDNSシステムが発明されました。名前の検索を行う場合でも、まずホストファイルがチェックされ、次にDNSシステムがチェックされます。 Windowsは、WINSまたはNetBIOSのような他のシステムもチェックします。
エントリをhosts
ファイルに入れると、それはコンピュータに割り当てられません。コンピューターが使用するホスト名としてのホスト名の割り当ては、(* nixシステムの)構成ファイルとWindowsシステムのシステムプロパティで行われます(WindowsシステムはNIC特定のサフィックスを持つこともできます)。
hosts
ファイルのエントリは、DNSシステムと同様に、ホスト名からIPアドレスへの単なるマッピングです。ホスト名 'localhost'を使用するには(特別なことは何もありません。他のすべてのホスト名です)、ループバックインターフェイスにマップする必要があります(したがって、常にローカルコンピュータをポイントします)。これを確実に機能させるために、すべてのコンピューターのhosts
ファイルにこのデフォルトのマッピングが付属していますが、そのホスト名を使用したくない場合は、削除される可能性があります。
さらに、他の人が指摘したように、コンピュータにホスト名を割り当てることは非常に便利です。コンピューターに接続すると、ログイン時に、またはプロンプトとして、または他の任意の場所にホスト名を表示させることができます。これにより、接続しているコンピューターを簡単に特定できます。そのホスト名をDNSに設定するか、すべてのhosts
ファイルに配置すると、IPアドレスを常に知る必要がなく、ホスト名を参照することでコンピューターに接続できます。 (コンピューターがDHCPを使用している場合、アドレスが変更される可能性があるため、さらに便利です。コンピューターがDNSを更新すると、DNSレコードは新しいIPアドレスをポイントします。DNS名がわかっているため、新しいIPアドレスを知らなくても接続できます。 )。
hosts
とDNSの両方の他の多くの使用法がありますが、これをすべて読んだ場合、答えよりも多くの質問があると思います。
Ever Hostには意味のある名前を付ける必要があります。ホスト名は複数の目的を果たすことができます:
1-現在作業しているものを認識するのに役立ちます。
2- /etc/hosts
やDNSレコードで構成された名前を使用する方が、多くのIPアドレスを覚えるよりも簡単です。
3- Localhostは、現在のマシン(アドレス127.0.0.1)を参照するために予約されている名前です。
4- DNSレコードは、サーバーを一般公開するのに役立ちます。
各サーバーに適切な名前を選択すると、管理に役立ちます。また、クライアントがサーバーにアクセスするのにも役立ちます。
余談ですが、DNS解決を適切に進め、逆に進めることは、この地球上のすべてのITインストールの絶対的な礎石です。十分に維持されたDNSと適切なホスト名解決の必要性を過小評価しないでください。
免責事項:主な質問はLinuxシステムに関するものなので、問題のWindows側に関心がない場合は、この回答を無視してください。
とにかく、Windowsシステムでは、他の回答で言及されているすべての点を除いて、ホスト名は実際にはO.S.ネットワーキングおよび認証の目的で、それ自体。特に:
LocalSystem
およびNetworkService
ユーザーアカウントを使用してシステムで実行されているすべてのプロセスに影響します。これらのプロセスは、実行中のシステムの資格情報を使用して他のシステムを認証できます。これにより、f.e。 SystemAのNetworkService
として実行されているプロセスは、SystemAのユーザーアカウントにフォルダーのアクセス許可を付与することにより、SystemBの共有フォルダーにアクセスします。