命令行手册

Man » hostname 手册在线 - 详细的在线文档,用于 hostname 手册页

🌍
hostname - 显示或设置系统的域名
domainname - 显示或设置系统的 NIS/YP 域名
ypdomainname - 显示或设置系统的 NIS/YP 域名
nisdomainname - 显示或设置系统的 NIS/YP 域名
dnsdomainname - 显示系统的 DNS 域名

概要

hostname   [-a|--alias]   [-d|--domain]   [-f|--fqdn|--long]  [-A|--all-fqdns]  [-i|--ip-address]
[-I|--all-ip-addresses] [-s|--short] [-y|--yp|--nis]
hostname [-b|--boot] [-F|--file filename] [hostname]
hostname [-h|--help] [-V|--version]

domainname [nisdomain] [-F file]
ypdomainname [nisdomain] [-F file]
nisdomainname [nisdomain] [-F file]

dnsdomainname

描述

Hostname 用于显示系统的 DNS 名称,以及显示或设置其主机名或 NIS 域名。

获取名称

在不带任何参数调用时,程序会显示当前名称:

hostname 将打印系统名称,该名称由 gethostname(2) 函数返回。

domainname 将打印系统的 NIS 域名。 domainname 使用 gethostname(2) 函数,而 ypdomainname 和 nisdomainname 使用 getdomainname(2)。

dnsdomainname 将打印 FQDN(完全限定域名)的域名部分。 系统的完整 FQDN 使用 hostname --fqdn 返回(但请参阅“THE FQDN”部分中的警告)。

设置名称

在带有一个参数或使用 --file 选项调用时,这些命令将设置主机名或 NIS/YP 域名。 hostname 使用 sethostname(2) 函数,而所有三个 domainname、ypdomainname 和 nisdomainname 命令均使用 setdomainname(2)。 请注意,这仅在下次重新启动之前有效。 更改 /etc/hostname 以进行永久更改。

请注意,只有超级用户才能更改名称。

无法使用 dnsdomainname 命令设置 FQDN 或 DNS 域名(请参阅“THE FQDN”部分)。

主机名通常在系统启动时在 /etc/init.d/hostname.sh 中设置(通常是通过读取包含主机名的文件,例如 /etc/hostname)。

THE FQDN

系统的 FQDN(完全限定域名)是 resolver(3) 为主机名返回的名称,例如,ursula.example.com。 它通常是主机名后跟 DNS 域名(第一个点后的部分)。 可以使用 hostname --fqdn 或 domainname 命令检查 FQDN。

您无法使用 hostname 或 dnsdomainname 命令更改 FQDN。

设置 FQDN 的推荐方法是在 /etc/hosts、DNS 或 NIS 中使主机名成为完全限定名称的别名。 例如,如果主机名为“ursula”,则可以在 /etc/hosts 中添加一行:


12.0.1.1    ursula.example.com ursula

从技术上讲:FQDN 是 `getaddrinfo(3)` 函数为 `gethostname(2)` 函数返回的主机名。DNS 域名是第一个点之后的字符。

因此,这取决于解析器的配置(通常在 /etc/host.conf 中),你可以如何更改它。通常,/etc/hosts 文件在 DNS 或 NIS 之前进行解析,因此最常见的方法是在 /etc/hosts 中更改 FQDN。

如果一台机器有多个网络接口/地址或在移动环境中,则它可能具有多个 FQDN/域名或根本没有 FQDN/域名。因此,应避免使用 hostname --fqdnhostname --domaindnsdomainnamehostname --ip-address 具有相同的限制,因此也应避免使用。

选项

-a, --alias

显示主机的别名(如果使用)。此选项已被弃用,不应再使用。

-A, --all-fqdns

显示机器的所有 FQDN。此选项枚举所有配置的网络地址,并将其转换为 DNS 域名。无法转换的地址(例如,因为它们没有适当的反向 IP 记录)将被跳过。请注意,不同的地址可以解析为相同的名称,因此输出可能包含重复的条目。不要对输出的顺序做出任何假设。

-b, --boot

始终设置主机名;这允许指定的文件 -F 不存在或为空,在这种情况下,如果尚未设置主机名,则将使用默认主机名 localhost

-d, --domain

显示 DNS 域名。不要使用 domainname 命令来获取 DNS 域名,因为它会显示 NIS 域名而不是 DNS 域名。请使用 dnsdomainname。请参阅上面“FQDN”部分中的警告,并尽可能使用 hostname --all-fqdns 选项。

-f, --fqdn, --long

显示 FQDN(完全限定域名)。FQDN 由一个简短的主机名和 DNS 域名组成。除非你使用 bind 或 NIS 进行主机查找,否则可以在 /etc/hosts 文件中更改 FQDN 和 DNS 域名(DNS 域名是 FQDN 的一部分)。请参阅上面“FQDN”部分中的警告,并尽可能使用 hostname --all-fqdns 选项。

-F, --file filename

从指定的文件中读取主机名。注释(以 \#\'` 开头的行)将被忽略。

-i, --ip-address

显示主机的网络地址。请注意,只有当主机名可以解析时,此选项才有效。避免使用此选项;请使用 hostname --all-ip-addresses 选项。

-I, --all-ip-addresses

显示所有网络地址。此选项枚举所有配置的网络地址。循环回接口和 IPv6 链路本地地址将被省略。与选项 -i 不同,此选项不依赖于名称解析。不要对输出的顺序做出任何假设。

-s, --short

显示简短的主机名。这是在第一个点处截断的主机名。


-V, --version

在标准输出上打印版本信息并成功退出。

-y, --yp, --nis

显示 NIS 域名。如果提供了参数(或 --file 名称),则 root 用户也可以设置新的 NIS 域名。

-h, --help

打印用法消息并退出。

注意事项

主机名尝试查找 FQDN、别名和主机网络地址时使用的地址族由解析器的配置决定。例如,在 GNU Libc 系统上,可以通过在 /etc/resolv.conf 中使用 inet6 选项来指示解析器首先尝试 IPv6 查找。

文件

/etc/hostname 历史上,此文件应该只包含主机名,而不是完整的规范 FQDN。现在,大多数软件都能够处理此处的完整 FQDN。此文件在启动时由系统初始化脚本读取,以设置主机名。

/etc/hosts 通常,通过将主机名别名为 FQDN,在此处设置域名。

作者

Peter Tobias, <_> Bernd Eckenfels, <_>(NIS 和手册页)。 Michael Meskes, <_>