ger*_*rky 7 domain-name-system vps hostname domain-name fqdn
我知道有很多关于主机名的问题。但即使在阅读它们之后,我也没有真正完全理解主机名的概念。所以这是我的问题:
我一直在按照本指南使用 Linode 设置 VPS。
第一步是设置主机名。据我了解,主机名只是一个任意名称,您可以设置它来在网络中标识您的机器。此外,FQDN 是主机名加上域名(可以或不能与服务器上托管的 Web 域相关)。如果我错了,请纠正我。
然后它指示我修改 /etc/hosts 并添加如下内容:
12.34.56.78 plato.example.com plato
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,这条线到底完成了什么?我以前做过,但从来没有真正理解它的作用。另外,如果 FQDN 中使用的主机名和域名只是任意的,它们可以在哪里使用?实际用例会非常有帮助,详细的解释会很棒。谢谢!
Saf*_*ado 10
除非明确设置,否则某些应用程序将对某些参数使用主机名。例如,除非您在配置文件中另行指定,否则 Postfix 将使用机器的主机名来标识自己。
主机文件用于名称解析。解析域名时,您的服务器将在发出 DNS 请求之前检查其主机文件。
您发布的那行基本上会使您的服务器将“plato.example.com”和“plato”解析为该 IP 地址。这就是为什么您通常会看到第一行,127.0.0.1 localhost localhost.localdomain ....以便服务器始终将其主机名解析为自身。
这使得即使 DNS 处于离线状态,系统也能够解析它自己的名称。很久以前没有 DNS,每个人都共享主机文件,其中包含他们需要连接的每台机器的名称/IP 对。
如果你查看 /etc/nsswitch.conf 你会看到对于主机它(默认情况下)有一行写着 hosts: files dns
这意味着它首先会检查主机文件,如果在那里找不到名称,它将转到 DNS。如果您有一个经常查找本地主机名称或 IP 的应用程序,这可以为您节省大量网络流量(好吧,您没有像现在通常那样缓存名称查找)。