ホスト名とFQDNについての基本的な理解があります。今私は混乱しています、私は本当に私のホスト名の名前を指定する必要がありますか?だから例えば:
Hostname: somename
Domain: mydomain.com
FQDN: somename.mydomain.com
ここで、ホスト名がlocalhostであることがわかります。その違いと影響は何ですか?したがって、localhostが私のホスト名である場合、私のFQDNはlocalhost.mydomain.com
、 正しい?
localhostは、インターネットを使用できるすべてのコンピューターに存在するはずのIPアドレス127.0.0.1を指す「特別な名前」であり、マシン自体を指します。 (127.x.x.xで始まるIPアドレスはすべてローカルマシンを参照します)。
localhostはlocalhost.mydomain.comと同じではありません。
ファイル/ etc/hostnameは、コンピュータがその名前と見なしているものを表示します。 Debianでは、127.0.1.1を/ etc/hostsファイルのこの名前にリンクしているようです。 [静的に割り当てられている場合は、これを「有効な」IPアドレスに設定できます]
理想的には、ホスト名として「localhost」を使用しないでください(理論的には、私が行っていないため、例を考えることはできません)。一部のプログラムで問題が発生します。
「localhost」はループバックインターフェイスの「名前」であり、常に予約済みのIP 127.0.0.1があり、通常はデバイス名「lo」または「lo0」です。
わかりました。もうわかったようです。しかし、なぜホスト名-fがローカルホストを提供するのですか?
ホストに名前を付けない場合、名前のないシステムは「ネットワーク/インターネット準備完了」とは見なされないため、ホスト名はデフォルトでlocalhostになります。
doホストに名前を付けると、ホスト名はホストのIPアドレスに解決されます。実行するLinuxのフレーバーに応じて、これを設定するためのdiffconfファイルがあります。名前付きマシン(つまり、ホスト名が「localhost」ではないホストHost)からこの動作を確認するには、次のコマンドを実行します。
pingローカルホスト
ping $ hostname
127.0.0.1とマシンのIPの2つの異なるIPが表示されるはずです。そうでない場合は、confファイル、hupインターフェース/ネットワークスクリプトを確認するか、変更後に再起動します
したがって、localhostが私のホスト名である場合の私のFQDNはlocalhost.mydomain.comになりますよね?
いいえ、localhostはマシンの外部への接続には使用されないため、localhostには実際の「fqdn」はありません(ただし、インストールではデフォルトでlocalhost.localdomainがインストールされますが、インターネット上では実際には存在しないため、「完全修飾」imoではありません。 )。
「localhost」またはloは、ローカルマシンにのみ存在し、関連する疑似デバイスです。その理由は、スタックをローカルにトラバースすることです...たとえば、python "localhost"で実行されているデータベースに接続するコード
影響は、このマシンのIPアドレスとしてDNSゾーンファイルにlocalhost
を入力するか、127.0.0.1として入力することです。どちらを選択しても、正しく機能しないものがあります。
127.0.0.1と入力すると(これが推奨される方法です)、他のマシンからこのlocalhost
という名前のマシンにアクセスすることはできません。したがって、別の名前を使用するのが現実的です...
これをこのマシンのIPアドレスとして入力した場合、他のすべてのマシンが持つファイル(/ etc/hosts)を介した名前解決の結果とDNSサービスの間で、他のマシンで不一致が発生します。/etc/hostsファイルのlocalhost
行。アドレスは127.0.0.1で、DNSサービスには異なるアドレスが含まれます。
localhost
は、ローカルマシンへのループバックです。そのままlocalhost
にする必要があるので、localhost
という名前を付けるために邪魔をする必要はありません。 Linuxまたは任意のOSを任意のマシンにインストールし、何もしなくても、ネットワーク構成に常にlocalhost
が存在します。
つまり、入力しているMacMiniはlocalhost
に応答します。つまり、それは私のマシンと私のローカルマシンです。ローカルマシンを使用している場合は、localhost
がローカルマシンになります。
hostname
は、他のサービスの参照として使用できる、または使用できないマシンのニックネームです。多くの場合、hostname.local
(hostname
は実際のホスト名)に置き換えることで、マシンへのローカルネットワークループを実現できます。 hostname
と.local
の組み合わせは、完全修飾ドメイン名(FQDN)と見なされます。
たとえば、私はApacheの設定をいろいろと試していますが、Apacheでlocalhost
を使用している場合は、NameVirtualHost
またはhostname.local
に個別の設定を設定することには利点があります。
.local
を超えて拡張したい場合は、実際のドメインを外の世界の設定に接続する領域に入ります。これはまったく別の議論です。
EDIT:以下のコメントに基づくと、問題のマシンのホスト名はlocalhost
のようです。つまり、技術的にはlocalhost.local
に到達できます。これは、100%間違っているわけではありませんが、非常に混乱しています。ホスト名を新しいものに変更するには、次の手順を実行します。たとえば、新しいホストはcoolnewhost
と呼ばれるべきだと思います。
これにより、ホスト名が一時的にcoolnewhost
に変更されます。
Sudo hostname coolnewhost
恒久的に変更するには、ファイルを編集します(私はnano
を使用したいが、好きなものを使用します):
Sudo nano /etc/hostname
次に、そのファイルのホスト名を編集して、coolnewhost
を読み取ります。
もう1つのオプションは、sysctl
を使用してカーネルのホスト名を変更することです。
Sudo sysctl kernel.hostname= coolnewhost
そして、あなたは比較的良いはずです。ただし、/etc/hosts
ファイルをチェックして、古いlocalhost
が奇妙に設定されていることを確認します。
Sudo nano /etc/hosts
そこには次のような行が1つだけあるはずです。
127.0.0.1 localhost
その行に一致しないものが他にある場合は、編集、コメント、または削除する必要があります。