私がマニュアルページで読んだように、ホスト名(ドメイン名なし)を/etc/hostname
に置くことが推奨されます。たとえば、Host.domainsub.domaintld。の代わりにHostが、私が知っているように、一部のソフトウェアは/etc/hostname
にFQDN
を含むことに依存しています。
Debian/Ubuntuマシンの/etc/hostname
で何を指定すべきですか?
FQDNではない場合、代わりにFQDNを指定する必要がありますか?
質問は少し古いですが、明確な答えが見つかりませんでした。一部の人々はホスト名、一部はFQDNと言います。ありがとう。
/ etc/hostnameファイルでは、ホスト名のみを使用します。設定できるFQDN:/ etc/hostsは次のようになります。
127.0.1.1 thishost.mydomain.org thishost
Hostsファイルのマニュアルによると。
修正回答:
ホスト自体は実際のFQDNを処理しません。それは DNS によって処理されます。 FQDN(完全修飾ドメイン名)は、名前をIPアドレスに変換するDNSによって処理されます。 /etc/hosts
ファイルを使用すると、本質的にDNSサーバーをオーバーライドします。コンピューターはまず/etc/hosts
ファイルを参照して、ホスト名からIPアドレスへのエントリが定義されているかどうかを確認します。 /etc/hosts
のエントリは次のようになります。
127.0.0.1 localhost
127.0.1.1 terrance-ubuntu.local terrance-ubuntu
これらのエントリはディストリビューション固有ではありません。すべてのOSはこれらの行に同じ形式を使用します。 hosts
ファイルの場所のみが変更されます。 Linux、通常は/etc/
フォルダーにありますが、Windowsでは通常、C:\Windows\System32\drivers\etc\
フォルダーにあります。
その行を分割すると、アプリケーションがコンピューターを離れないようにDNSをオーバーライドするFQDNそのものであるterrance-ubuntu.local
と、ホスト名であるterrance-ubuntu
の両方を割り当てていることがわかります。アプリケーションが私のコンピューターまたは127.0.0.1( localhost )を離れないようにするためです。システムのホスト名を127.0.1.1
に割り当てても、ネットワーク上でホストを見つける残りのコンピューターには影響しません。 DNSが正常に機能している場合、ホスト名は10.0.0.100
として表示されます。 127.0.1.1
を使用する理由は、システムがネットワーク上の他の場所にないことをアプリケーションが認識できるため、アプリケーションがシステムをより速く見つけるためです。 .local
がFQDNである実際のホスト名、.local
は、実際にはネットワーク上の別のDNSサーバーでもあるルーターを介して設定したドメインです。
ここで、ローカルネットワーク上のDNSサービスがホスト名またはFQDNをIPアドレスに割り当てていないものの、ローカルネットワーク上のホストのIPアドレスはわかっているとしましょう。次に、そのホストを/etc/hosts
ファイルに割り当てて、アクセスするたびにホストのIPアドレスを入力する必要がないようにします。ホストは、ツールサーバー、プリンター、またはその他のネットワーク接続システムである場合があります。通常のようにエントリを/etc/hosts
ファイルに追加します。
たとえば、ネットワークに接続されたプリンターを使用します。 10.0.0.253の静的IPがあります。名前はわかりませんが。このために、私はそれをhp_printer
と呼びたいです。 IPとそのホスト名をpingし、/etc/hosts
に追加します。
terrance@terrance-ubuntu:~$ ping -c 2 10.0.0.253
PING 10.0.0.253 (10.0.0.253) 56(84) bytes of data.
64 bytes from 10.0.0.253: icmp_seq=1 ttl=255 time=0.326 ms
64 bytes from 10.0.0.253: icmp_seq=2 ttl=255 time=0.334 ms
terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
ping: unknown Host hp_printer
terrance@terrance-ubuntu:~$ Sudo vi /etc/hosts
10.0.0.253 hp_printer.local hp_printer
terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
PING hp_printer.local (10.0.0.253) 56(84) bytes of data.
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=1 ttl=255 time=0.334 ms
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=2 ttl=255 time=0.303 ms
これで、覚えやすいIPアドレスの代わりに、指定した名前でプリンター設定のWebページにアクセスすることもできます。
/ etc/resolv.conf ファイルは、ホスト名を見つけるためにDNSでも使用されます。これはリゾルバーの構成ファイルです。ホストを探しているときにFQDNを常に指定する必要がないように、検索ドメインを提供します。また、ローカルネットワークのDNSまたはネームサーバーのIPアドレスも提供します。下のsearch
行は、私のドメイン名である名前local
を示しています。
terrance@terrance-ubuntu:~$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.0.1
search local
これにより、DNSおよびFQDNがどのように機能するかをよりよく理解できるようになります。
hostname(1)
のマンページ でこれについて説明しています(太字の段落は私によって強調されています):
THE FQDN システムのFQDN(完全修飾ドメイン名)は resolver(3)は、ursula.example.com。 などのホスト名を返します。通常は、ホスト名の後にDNSドメイン名(最初のドットの後の部分 )。 hostname --fqdnまたは を使用してFQDNを確認できます。dnsdomainname。 hostnameまたはdnsdomainnameでFQDNを変更することはできません。 FQDNの推奨される設定方法は、/ etc/hosts、DNS、またはNISを使用して、ホスト名を完全修飾名のエイリアスにすることです。 たとえばホスト名が「ursula」の場合、 /etc/hostsに 127.0.1.1 ursula.example.com ursula と表示される行がある場合があります。 技術的に:FQDNは、gethostname(2)によって返されるHost 名に対してgetaddrinfo(3)が返す名前です。 DNSドメイン名は、 最初のドットの後の部分です。 したがって、リゾルバーの構成によって異なります(通常は /etc/Host.conf)変更方法。通常、hostsファイルはDNSまたはNISの前に解析 されるため、 /etc/hostsのFQDNを変更するのが最も一般的です。
インストール時にFQDNをホスト名として指定すると、最初のコンポーネントのみが/etc/hostname
に書き込まれ、FQDNが/etc/hosts
に保持されます。
そのため、この場合は、インストーラーにその機能を実行させるだけです。