如何从/ etc / hostname和DNS域名获取主机名?


Answers:


17

当您键入

hostname

它会向您显示存储在其中的值

/etc/hostname

请参阅hostname --help以获取很多选择。从帮助...

-s, --short            short host name
-a, --alias            alias names
-i, --ip-address       addresses for the host name
-I, --all-ip-addresses all addresses for the host
-f, --fqdn, --long     long host name (FQDN)
-A, --all-fqdns        all long host names (FQDNs)
-d, --domain           DNS domain name
-y, --yp, --nis        NIS/YP domain name
-b, --boot             set default hostname if none available
-F, --file             read host name or NIS domain name from given file

该命令可以获取或设置主机名或NIS域名。您还可以获取DNS域或FQDN(完全合格的域名)。除非使用绑定或NIS进行主机查找,否则您可以在/ etc / hosts文件中更改FQDN(完全限定域名)和DNS域名(属于FQDN)。


所以

hostname -f

长主机名(FQDN)。


我得到:“主机名:名称或服务未知”
dada dudu

你有东西/etc/hostname吗?我们通常在这里为Apache编辑的那个。示例主题:askubuntu.com/a/218499/15811
Rinzwind

试图照顾/ etc / hosts我获得了一个本地主机,我不应该在虚拟机上运行它
dada dudu 16-10-13

1
@dadadudu localhost只是网络上“我自己”的昵称。所有计算机(包括VM)都可以使用localhost地址连接到自身。
Melebius

@dadadudu我在这里拥有的VM具有自己的名称(称为“ test1”)。
Rinzwind '16

0

假设您要使用本地(LAN)IPv4地址...。

为了避免服务器返回包含IPv4和IPv6地址的长字符串,请在bash脚本中以编程方式使用此字符串:

LOCALIP=$(hostname -I | awk '{print $1}')

或在CLI上键入以下内容:

hostname -I | awk '{print $1}'

仅当主机只有一个IPv4地址时,这才有效。IPv6主机通常具有多个IPv6地址(一个永久性和一个或多个临时性)。
David Foerster,

对。这就是为什么我的建议的第一行是“假设您要使用本地(LAN)IPv4地址...。”但是就您而言,“主机名”并不总是提供IP信息的最佳工具。取决于目标。OP在关于他们想要什么的问题中没有详细说明(大概是FQDN,但这是我的推测)。
MrPotatoHead '18
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.