guettli Asked: 2019-06-19 23:52:21 +0800 CST2019-06-19 23:52:21 +0800 CST 2019-06-19 23:52:21 +0800 CST SuSE 上的 /etc/HOSTNAME:短名称还是 FQDN? 772 SuSE-Linux 上的文件/etc/HOSTNAME包含主机名。 这应该是完整的限定域名,还是短名称(不带“.”)? 相关问题:socket.getfqdn() 不返回域,但 socket.gethostname() 呢? systemd 1 个回答 Voted Best Answer HBruijn 2019-06-20T01:25:35+08:002019-06-20T01:25:35+08:00 请注意,大写的 AFAIK/etc/HOSTNAME特定于 SuSe 系统,但这应该是小写文件名的符号链接,/etc/hostnamesystemd 使用该文件名,因此也应该出现在其他发行版中。 推荐 systemd 实用程序hostnamectl 区分三个不同的主机名: 可能包含各种特殊字符(例如“Lennart 的笔记本电脑”)的高级“漂亮”主机名,它存储在/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 您不能使用此 [sic: the ] 命令更改 FQDN(由 返回hostname --fqdn)或 DNS 域名。系统的 FQDN 是 resolver(3) 为主机名返回的名称。hostname 换句话说,主机名不是 FQDN。 然后是如何配置 FQDN: 从技术上讲:FQDN 是 gethostbyname(2) 为 gethostname(2) 返回的主机名返回的名称。DNS 域名是第一个点之后的部分。 因此,它取决于配置(通常在 中/etc/host.conf)如何更改它。通常(如果 hosts 文件在 DNS 或 NIS 之前解析)您可以在 /etc/hosts 中更改它。 顺便说一句:如果您确实使用 FQDN,例如myhost.example.comhostname 和 in /etc/hostname,则dnsdomainandhostname -d将返回空字符串,并且不会在第一个点处将该字符串拆分为 DNS 主机名组件myhost和域名组件example.com
请注意,大写的 AFAIK
/etc/HOSTNAME
特定于 SuSe 系统,但这应该是小写文件名的符号链接,/etc/hostname
systemd 使用该文件名,因此也应该出现在其他发行版中。推荐 systemd 实用程序
hostnamectl
区分三个不同的主机名:/etc/machine-info
用于在启动时初始化内核主机名的静态主机名(例如“lennarts-laptop”),存储在
/etc/hostname
临时主机名,它是从网络配置中接收的默认值。
主机名配置文件的手册页
man 5 hostname
并没有真正明确地使用术语 FQDN,但指出:其中“无点”是主机名文件应仅包含系统主机名组件的唯一提示,没有域后缀,因此不是 FQDN。
该
hostname
命令的手册更明确 (man 1 hostname
) :换句话说,主机名不是 FQDN。
然后是如何配置 FQDN:
顺便说一句:如果您确实使用 FQDN,例如
myhost.example.com
hostname 和 in/etc/hostname
,则dnsdomain
andhostname -d
将返回空字符串,并且不会在第一个点处将该字符串拆分为 DNS 主机名组件myhost
和域名组件example.com