web-dev-qa-db-ja.com

ホスト名の代わりに/ etc / hostnameでFQDNを使用する必要がありますか?

私がマニュアルページで読んだように、ホスト名(ドメイン名なし)を/etc/hostnameに置くことが推奨されます。たとえば、Host.domainsub.domaintld。の代わりにHostが、私が知っているように、一部のソフトウェアは/etc/hostnameFQDNを含むことに依存しています。

Debian/Ubuntuマシンの/etc/hostnameで何を指定すべきですか?

FQDNではない場合、代わりにFQDNを指定する必要がありますか?

質問は少し古いですが、明確な答えが見つかりませんでした。一部の人々はホスト名、一部はFQDNと言います。ありがとう。

10
Bulat M.

/ etc/hostnameファイルでは、ホスト名のみを使用します。設定できるFQDN:/ etc/hostsは次のようになります。

127.0.1.1        thishost.mydomain.org    thishost

Hostsファイルのマニュアルによると。

http://man7.org/linux/man-pages/man5/hosts.5.html

6
Adonist

修正回答:

ホスト自体は実際の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ページにアクセスすることもできます。

enter image description here

/ 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がどのように機能するかをよりよく理解できるようになります。

10
Terrance

hostname(1)のマンページ でこれについて説明しています(太字の段落は私によって強調されています):

THE FQDN
システムのFQDN(完全修飾ドメイン名)は
resolver(3)は、ursula.example.com。
などのホスト名を返します。通常は、ホスト名の後にDNSドメイン名(最初のドットの後の部分
)。 hostname --fqdnまたは
を使用してFQDNを確認できます。dnsdomainnamehostnameまたは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に保持されます。

そのため、この場合は、インストーラーにその機能を実行させるだけです。

4
muru