ドメイン名はIPアドレスを抽象化したものです。そのIPがどのコンピュータにあっても、ドメイン名はそのコンピュータを指す必要があります。それでは、ドメイン名をコンピュータに関連付けるために/ etc / {hosts、hostname}、および/またはsystemdのhostnamectlを使用するのはなぜですか?私は何も知りませんが、これは私にとって間違っているようです。
動的DNSドメイン名を使用して自宅で初めてパブリックにアクセスできるサーバーを設定していたため、このホスト/ホスト名の問題が発生しました。私は唯一の人ではありません。質問してくださいしかし、その人は答えを得ませんでした。
答え1
/etc/hostname
(参照)でman 5 hostname
サーバーのローカルホスト名を設定して設定する必要があります。この名前は、このサーバーで実行されているソフトウェアで使用できます。これは単なる文字列であり、サーバーの外側には表示されません。
代わりに、このファイルは/etc/hosts
コンピュータ名をIPアドレスに解決するために使用されます。貧しい人のDNSサーバーだと思ってください。以前は、ドメインネームシステムが開発される前に、統合ネットワークを名前にマッピングするために、大量のホストファイルがインターネット上のコンピュータ間で実際に転送されていました。実行中のDNSサーバーがあり、ローカルネットワークに2つ以上のサーバーがある場合は、通常、ここにエントリを追加する必要はありません。
ネームサーバーに依存しない場合は、自分のサーバーとIPアドレスを入力します/etc/hosts
。ただし、サーバーの数が増えてアドレス範囲が変わると、このファイルを維持するのが面倒になることに注意してください。
答え2
DNS名はIPアドレスと一対一の関係ではありません。たとえば、ドメイン名は電子メールでのみ使用できるため、MXレコードのみがあり、IPアドレスはありません。あるいは、複数の名前が単一のIPアドレスを指すことがあります。これは、別々のドメイン名で複数のサイトを提供するWebサーバーでよく発生します。さらに、単一ドメイン名が複数のIPアドレスを指すことがあり、これは負荷分散に役立ちます。
このような場合、ほとんどの場合、DNSのパブリック「サービス名」とシステムを識別し、ログとコマンドプロンプトに表示される内部名を区別するのが便利です。
/etc/hosts
本当に重要ですか/etc/hostname
?前者はDNSを置き換えますが、後者はシステムの「内部」ホスト名を格納するために使用されます。