Ubuntu 10.04 では、/etc/hostname にサーバーの FQDN を含める必要がありますか?

Ubuntu 10.04 では、/etc/hostname にサーバーの FQDN を含める必要がありますか?

Ubuntu 10.04 では、/etc/hostname にサーバーの完全修飾ドメイン名を含める必要がありますか?

答え1

いいえ、ホスト名の部分だけです。Ubuntuのマニュアルページによるとには、/etc/hostnameFQDN ではなく、ホスト名の部分のみを含める必要があります。

FQDN

このコマンドでは、FQDN (hostname --fqdn によって返される) または DNS ドメイン名 (dnsdomainname によって返される) を変更することはできません。システムの FQDN は、resolver(3) がホスト名に対して返す名前です。

技術的には、FQDN は gethostname(2) によって返されるホスト名に対して gethostbyname(2) が返す名前です。DNS ドメイン名は最初のドットの後の部分です。

したがって、変更方法は設定 (通常は /etc/host.conf 内) によって異なります。通常は (hosts ファイルが DNS または NIS の前に解析される場合)、/etc/hosts 内で変更できます。

ノート

ホストの FQDN、エイリアス、ネットワーク アドレスを検索するときに hostname が試行するアドレス ファミリは、リゾルバの設定によって決まります。たとえば、GNU Libc システムでは、/etc/resolv.conf の inet6 オプションを使用して、リゾルバに IPv6 検索を最初に試行するように指示できます。

ファイル

/etc/hosts /etc/hostname このファイルには完全な FQDN ではなくドメイン名のみを含める必要があります。

答え2

Josh は Ubuntu が推奨するものを指摘していますが、それが厳格なルールであるかどうかはわかりません。

/etc/hostnameはシステムのホスト名を設定するために使用されます。これは、hostnameまたはによって印刷されるものと同じですuname -n。その名前は、仮想コンソールや Gnome GDM ログイン画面などのログインプロンプトで使用されます。

マニュアル ページに記載されているように、hostname --fqdnまたは を実行するときに DNS クエリへの入力としても使用されますdnsdomainname

Technically: The FQDN is the name gethostbyname(2) returns for the host name
returned by gethostname(2). The DNS domain name is the part after the first dot.

つまり、それが単なる単語である場合、リゾルバは またはsearchdomain設定にリストされているドメインを追加して/etc/resolv.conf、FQDN を見つけようとします。 /etc/hostname に FQDN がある場合は、1 つ以上のドメインを追加する必要がなく、名前が明確になります。

したがって、どちらも有効であると言えます。誰かが反対のことを証明できるとしたら、非常に興味があります。

答え3

libnss-ホスト名インストールされていれば、FQDN を書き込むだけ/etc/hostnameで完了です。そうでない場合は、/etc/hosts短縮名と一致するように編集し、完全修飾名にマップする必要があります (DNS に入力することもできますが、これはフェイルセーフではありません)。デフォルト以外のループバック インターフェイスを使用すると、次のようになります。

127.0.0.2 hostname.fully.qualified hostname

関連情報