Answers:
不,仅主机名部分。根据Ubuntu的手册页,/etc/hostname
应仅包含主机名的主机名部分,而不应包含FQDN:
FQDN
您不能使用此命令更改FQDN(由主机名--fqdn返回)或DNS域名(由dnsdomainname返回)。系统的FQDN是resolver(3)为主机名返回的名称。
从技术上讲:FQDN是gethostbyname(2)返回的名称,代表由gethostname(2)返回的主机名。DNS域名是第一个点之后的部分。
因此,如何更改它取决于配置(通常在/etc/host.conf中)。通常(如果在DNS或NIS之前解析了hosts文件),则可以在/ etc / hosts中进行更改。
笔记
查找FQDN时尝试使用的地址族主机名,主机的别名和网络地址由解析器的配置确定。例如,在GNU Libc系统上,可以通过使用/etc/resolv.conf中的inet6选项,指示解析器首先尝试进行IPv6查找。
档案
/ etc / hosts / etc / hostname此文件应仅包含域名,而不应包含完整的FQDN。
hostname(1)
手册页更改为:“ /etc/hostname
:从历史上看,该文件仅包含主机名,而不包含完整的规范FQDN。如今,大多数软件都可以在此处处理完整的FQDN。在启动时,系统初始化脚本会读取该文件以设置主机名。”
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,则意味着它不必尝试附加一个或多个域:名称是明确的。
所以我会说这是有效的。如果有人可以证明我的话,我将非常感兴趣。
/etc/hostname
!只有在回答并查找参考文献之后,我才意识到自己违背了官方文档。
随着中的libnss-MYHOSTNAME安装,你可以写的FQDN来/etc/hostname
和完成。否则,您还需要进行编辑/etc/hosts
以匹配短名称,并将其映射到完全限定的名称(您也可以将其放入dns中,但这并不安全)。使用非默认回送接口,如下所示:
127.0.0.2 hostname.fully.qualified hostname