为什么我需要设置一个主机名?

我知道有很多关于主机名的问题。 但是即使阅读完后,我也不太了解主机名的概念。 所以这是我的问题:

我一直在按照这个指南来build立与Linode的VPS。

第一步是设置一个主机名。 据我所知,主机名是一个任意的名字,你可以设置在networking中识别你的机器。 此外,FQDN是主机名加上域名(可以或不可以与服务器上托pipe的Web域相关)。 如果我错了,请纠正我。

然后它指示我修改/ etc / hosts并添加如下内容:

12.34.56.78 plato.example.com plato 

所以我的问题是,这条线究竟做了什么? 我以前做过,但从来没有真正理解它做了什么。 另外,如果FQDN中使用的主机名和域名是任意的,那么它们可以在哪里使用? 实际的使用情况会非常有帮助,详细的解释会很好。 谢谢!

某些应用程序将使用某些参数的主机名,除非明确设置。 例如,Postfix将使用机器的主机名来识别自身,除非在configuration文件中另外指定。

hosts文件用于名称parsing。 parsing域名时,服务器会在发出DNS请求之前检查其主机文件。

您发布的这一行本质上会使您的服务器将“plato.example.com”和“plato”parsing为该IP地址。 这就是为什么你通常会看到第一行127.0.0.1 localhost localhost.localdomain ....所以服务器将始终parsing其主机名本身。

这使得即使DNS脱机,系统也能够parsing自己的名字。 很久以前,没有DNS,每个人都需要为他们需要连接的每台机器共享带有名称/ IP对的主机文件。

如果你看一下/etc/nsswitch.conf,你会发现对于主机来说,它(默认情况下)有一个表示主机的行:files dns

这意味着首先它将检查主机文件,如果没有find它的名字,它会去DNS。 如果您有一个应用程序频繁地查找本地主机的名称或IP(并且您没有caching目前正在执行的名称查找),这可以为您节省大量的networkingstream量。