はいといいえ。ホスト名と呼ばれる2つの異なるものです。
「内部」ホスト名は、基本的にカーネルが保持する文字列です。これはhostname
コマンド(またはgethostname()
呼び出し)によって返されるもので、システム内で一意です(*)。
主に、プログラムが実行されているシステムの識別子を出力したいときに使用されます。たとえば\h
、BashのPS1
ホスト名に展開します。同様に、syslogスタイルのログファイルには、ログエントリのホスト名も含まれます。
(* Stephen Kittがコメントしているように、名前空間は同じシステム上のプロセスに異なるホスト名を表示するために使用できます。これは主に、異なるシステムのように振る舞うコンテナに使用されます。)
次に、他のシステムが別のシステムのIPアドレスを検索するために使用するDNS名もあります。同じIPアドレスを指す複数のDNS名が存在する可能性があるため、同じホストが存在する可能性があります。
内部ホスト名とDNS名は同じである必要はありません。誰かがIPアドレスを使用してorange
(*)を呼び出すことにしたWebサーバーを持っているとします192.0.2.9
。これは、2つの異なるドメインにサービスを提供でき、DNSが持つように設定されるだろうwww.example.org
とwww.example.com
の両方のポイント192.0.2.9
システムの内部ホスト名があるかもしれないが、orange.example.org
あるいは単にorange
。その場合には、DNSの設定は、通常、必要があります逆引き参照の192.0.2.9
名前をポイントバックをorange.example.org
、しかし、その力には何もありません。
(*果物にちなんでサーバーに名前を付けるのが好きだからです。誰かが使用webserver1
するなどの可能性がありますが、ポイントは実際のドメインのいずれかに名前を付ける必要がないということです。)
それに加えて、仮想ホスティングでは、ブラウザがアクセスしようとしたサイトの名前をWebサーバーに通知する必要があります。そうしないと、サーバーはクライアントがどの仮想サイトに到達しようとしたかを知りません。HTTPにはそのためのHost
ヘッダーがあります。
DNS名と内部ホスト名の区別を混乱させるのは、mDNSプロトコル
(たとえばavahiデーモンによって実装される)と他のディスカバリプロトコルです。mDNSを使用すると、ホストは同じネットワーク上の他のすべてのホストに名前情報を照会し、DNSで明示的に設定することなく、自分のホスト名を他のホストに表示できます。