如果在同一台机器上托管多台服务器,如何设置主机名?

如果在同一台机器上托管多台服务器,如何设置主机名?

我正在学习如何设置自己的网络和邮件服务器,几天来我一直对这个问题感到困惑,而且网上的文章(包括 Server Fault)对“子域”和“主机名”这两个术语的使用似乎不一致。

据我了解:

  1. 主机名唯一地标识网络中的一台计算机
  2. 域名和子域名必须具有指向一个或多个主机的 DNS A 记录

假设我的 Web 服务器位于1.2.3.4,我将主机名设置为development(通过在 bash shell 中运行确认hostname),并且我正在设置 A 记录,如下所示:

@   -> 1.2.3.4
www -> 1.2.3.4
mx  -> 1.2.3.4
mx  -> 9.8.7.6

然后,我有wwwmx子域指向我的 Web 服务器,其主机名为developmentmx子域也指向两个主机(用于冗余)。

为什么需要主机名?我的机器已经可以通过其 IP 地址来识别。

我读到过一篇文章,说主机名很重要,因为它会在某些消息中发送。但如果我的服务器既是邮件服务器,又是文件服务器、数据库服务器等,我应该将主机名设置为什么?我当然不希望收到我邮件的人看到发件人地址development。一台机器只能有一个主机名,对吗?我应该将我的电脑设置hostnameabc.example.com还是只是abc

主要问题

如果在同一台机器上托管多台服务器,如何设置主机名?

答案1

主机名可以方便地唯一标识网络上的主机。它是一个完全内部的名称,可以是任何您想要的名称。主机名不必与其任何 DNS 名称相关。

例如,名为 abc 的主机可以拥有指向它的 DNS 记录,例如 www.example.com、mail.example.com 等等。

如果您在 LAN 内运行本地 DNS,您还可以为主机指定一个本地 DNS 名称 abc 或 abc.localdomain,这样您就可以http://abc在浏览器中输入该名称。同样,这只会帮助您识别 LAN 内的主机。

答案2

回答您的问题 - 主机名应该是对您或您的组织有意义的名称。

主机名

主机名仅由主机使用。当未指定上下文特定身份时,系统和服务会将其用作默认(人类可读?)身份。

它可能用于日志文件中;它可能在您的 shell 上使用,以指示您正在管理哪个主机;正如您所指出的,您的邮件服务器的默认域名是您的主机名,但这需要进行配置。

DNS

在您的情形下,互联网上的任何事物都会使用 DNS,尝试找到通往您服务器的路径。这就是全部 - 一个指向 IP 地址的名称。您有多个指向同一服务器的记录,应用程序和服务可以使用它来决定如何处理请求,例如显示哪个网站,或将电子邮件发送到哪个邮箱。您需要告诉服务域名对它们意味着什么,但它们对主机本身没有任何实际意义。

说这两者毫无关联是错误的,因为通常会有一个内部管理的 DNS 基础设施(在 LAN 或 WAN 上),或者像 NetBIOS 或 MDNS 这样的分散名称发现方法。在这些情况下,主机名将用于在该命名服务中识别或注册主机。但是,从您对环境的描述来看,它们目前似乎没有任何关系。

答案3

主机名可以是任何你想要的,不一定非要从服务器的 FQDN 中获取,例如 abc.example.com 的主机名是 abc,尽管这样做很常见。这其实没什么大不了的,只是 example.com 下的其他服务器可能很容易识别出 abc 服务器。

然而,问题可能在于,如果想要为同一台机器上托管的每个服务器服务设置多个 FQDN,如问题中提到的 mail.example.com、db.example.com、web.example.com、ftp.example.com 和 dns.example.com 等,它们都在 abc.example.com 机器上。

原因可能是服务器管理员不希望服务器服务以 abc.example.com 的身份进行通信,而是希望例如 mail.example.com 以其自己的 FQDN 进行通信。

为此,他或她可能希望在自己的 FQDN 中保护每个服务器服务,而不仅仅是服务器主 FQDN abc.example.com。

如果是这样,我认为编辑 /etc/hosts 并在服务器的固定 IP 行(无论是 127.0.1.1 还是 192.168.0.1 或静态公共 IP)中添加服务器服务所需的所有 FQDN 可能是解决方案,例如:

abc.server.fixed.ip  abc.example.com  web.example.com  mail.example.com dns.example.com other-services.example.com abc-server-preferred-name

相关内容