SuSE-Linux 上的文件/etc/HOSTNAME
包含主机名。
这应该是完整合格域名,还是简称(不带“。”)?
答案1
请注意,据我所知,大写字母/etc/HOSTNAME
是 SuSe 系统所特有的,但这应该是小写文件名的符号链接/etc/hostname
,由 systemd 使用因此也应该出现在其他发行版中。
推荐的 systemd 实用程序hostnamectl
区分三种不同的主机名:
- 高级“漂亮”主机名可能包含各种特殊字符(例如“Lennart's Laptop”),存储在
/etc/machine-info
用于在启动时初始化内核主机名的静态主机名(例如“lennarts-laptop”),存储在
/etc/hostname
从网络配置接收的默认临时主机名。
主机名配置文件的手册页man 5 hostname
并没有明确使用 FQDN 这一术语,但指出:
该
/etc/hostname
文件配置在启动期间使用系统调用设置的本地系统的名称sethostname(2)
。它应该包含一个以换行符结尾的主机名字符串。
注释(以“#”开头的行)将被忽略。
主机名可以是长度不超过 64 个字符的自由格式字符串;但是,建议它由仅包含 7 位 ASCII 小写字符,无空格或点,并将其限制为 DNS 域名标签允许的格式,尽管这并不是严格的要求。
其中“没有点“唯一的提示是,主机名文件应该只包含系统主机名组件,没有域后缀,因此不是 FQDN。
该命令的手册hostname
更加明确(man 1 hostname
):
FQDN
您不能
hostname --fqdn
使用此 [原文如此:] 命令更改 FQDN(由 返回)或 DNS 域名hostname
。系统的 FQDN 是解析器 (3) 为主机名返回的名称。
换句话说,主机名不是 FQDN。
然后如何配置 FQDN:
技术上:FQDN 是 gethostbyname(2) 返回的主机名的名称。DNS 域名是第一个点后面的部分。
因此,如何更改它取决于配置(通常在 中
/etc/host.conf
)。通常(如果 hosts 文件在 DNS 或 NIS 之前解析),您可以在 /etc/hosts 中更改它。
顺便说一句:如果你确实使用 FQDN(例如myhost.example.com
主机名和)/etc/hostname
,那么像dnsdomain
和这样的操作hostname -d
将返回空字符串,并且不会在第一个点处将该字符串拆分为 DNS 主机名组件myhost
和域名组件example.com