在 Ubuntu 10.04 上,/etc/hostname 是否应包含服务器的完全限定域名?
答案1
不,只有主机名部分。根据 Ubuntu 的手册页,/etc/hostname
应该仅包含主机名的主机名部分,而不是 FQDN:
FQDN
您无法使用此命令更改 FQDN(由 hostname --fqdn 返回)或 DNS 域名(由 dnsdomainname 返回)。系统的 FQDN 是 resolver(3) 为主机名返回的名称。
技术上:FQDN 是 gethostbyname(2) 返回的主机名的名称。DNS 域名是第一个点后面的部分。
因此,如何更改它取决于配置(通常在 /etc/host.conf 中)。通常(如果在 DNS 或 NIS 之前解析 hosts 文件),您可以在 /etc/hosts 中更改它。
笔记
主机名在查找主机的 FQDN、别名和网络地址时尝试的地址系列由解析器的配置决定。例如,在 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.
这意味着,如果它是裸词,解析器将附加search
或domain
设置中列出的域/etc/resolv.conf
以尝试查找 FQDN。如果 /etc/hostname 中有 FQDN,则意味着它不必尝试附加一个或多个域:名称是明确的。
所以我认为两种说法都是正确的。如果有人能证明其他说法,我会非常感兴趣。
答案3
和libnss-我的主机名安装后,您可以写入 fqdn/etc/hostname
并完成。否则,您还需要编辑/etc/hosts
以匹配短名称并将其映射到完全限定名称(您也可以将其放在 dns 中,但这不是万无一失的)。使用非默认环回接口,如下所示:
127.0.0.2 hostname.fully.qualified hostname