在Ubuntu 10.04上,/ etc / hostname是否应包含服务器的FQDN?


Answers:


12

不,仅主机名部分。根据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。


我认为手册页中的内容并不像您看上去的那么清晰,但我认为我会遵循服务器上的建议。谢谢。
瑞安(RyanTM)2010年

1
“ / etc / hostname此文件应仅包含域名,而不包含完整的FQDN。”对我来说似乎很清楚...但是我同意,这可能会造成混淆。
乔什(Josh)2010年

哦。我想我不小心没读过那句话。我以为我仔细阅读了多次。我建议将该句子加粗。
RyanTM'1

主机名为3.15ubuntu1的Ubuntu 12.04将该hostname(1)手册页更改为:“ /etc/hostname:从历史上看,该文件仅包含主机名,而不包含完整的规范FQDN。如今,大多数软件都可以在此处处理完整的FQDN。在启动时,系统初始化脚本会读取该文件以设置主机名。”
200_成功

7

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,则意味着它不必尝试附加一个或多个域:名称是明确的。

所以我会说这是有效的。如果有人可以证明我的话,我将非常感兴趣。


没错,这不是一成不变的规则:我切换了答案,因为某些服务器的主机名确实在中/etc/hostname!只有在回答并查找参考文献之后,我才意识到自己违背了官方文档。
乔什(Josh)2010年

1

随着中的libnss-MYHOSTNAME安装,你可以写的FQDN来/etc/hostname和完成。否则,您还需要进行编辑/etc/hosts以匹配短名称,并将其映射到完全限定的名称(您也可以将其放入dns中,但这并不安全)。使用非默认回送接口,如下所示:

127.0.0.2 hostname.fully.qualified hostname
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.