AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 746712
Accepted
shenkwen
shenkwen
Asked: 2016-01-05 14:26:41 +0800 CST2016-01-05 14:26:41 +0800 CST 2016-01-05 14:26:41 +0800 CST

Linux 主机:在主机文件中设置主机名/FQDN 的目的是什么?

  • 772

我刚刚购买了Linode VPS 托管计划,并按照本指南进行设置。在“设置主机名”部分和“更新/etc/hosts”部分中,它说这里要设置的FQDN/主机名不需要与我要托管的网站相关,这让我很困惑。

我通过阅读大量文章进行了自己的研究,但仍然不太确定主机名/FQDN 在我的网络托管业务中扮演什么角色。以下是我设法找出的一些基本事实,如果有任何错误,请随时纠正我:

  1. FQDN 必须类似于 xxx.somedomain.com,如果是“xxx”。省略则它不是 FQDN。
  2. 根据https://kb.iu.edu/d/aiuvxxx,我认为可以松散地称为子域的 . 也可以称为“主机名” 。
  3. 在我的本地机器中,通过将以下行添加到hosts文件中

    63.117.14.58 www.yahoo.com 随便

对“www.yahoo.com”或“whatever”的每个网络请求都将被重定向到 IP 地址 63.117.14.58(这是 google.com 的 IP)。这是一种阻止本地计算机中不需要的站点的方法。

现在教程建议将此行添加到我服务器中的“主机”文件中

12.34.56.78(//my server's IP) myhostname.anything.com myhostname

它提到在上面的行中,域名可能是也可能不是我将要托管的域,但主机名应该是我在前面的步骤中已经设置的那个。我的问题是:

1) 基于 Facts#3,我认为这一行会将服务器上针对我的 IP 地址的任何请求重定向到myhostname.anything.com或重定向myhostname到我的 IP 地址,但这意味着什么?用户计算机的任何请求不应该myhostname.anything.com已经转换为某个 IP 地址(无论是否是我的 IP 地址)?为什么我必须在我的服务器上重定向它?我对 HTTP 请求如何工作的理解是,当用户在浏览器中输入域名时,浏览器会联系域服务器,域服务器会根据域的 DNS 记录将其定向到 DNS 服务器,然后 DNS服务器将解析 IP 地址,然后浏览器从该 IP 地址获取数据。我理解的这个过程似乎与我服务器上的“主机”文件无关。

2) A.关于FQDN,为什么主机名必须与我在服务器上设置的主机名相同,而域名却不一样?

B.如果我在这里设置不同的主机名会发生什么?

C. 这里设置或不设置我的域名为 FQDN 的目的是什么?

D.如果我只设置 FQDN 而没有设置主机名会发生什么?像这样

12.34.56.78(//my server's IP) myhostname.anything.com

很多问题,但我相信其中一些问题的答案是重叠的,总的来说,我认为最大的问题是“设置主机名/编辑主机文件在我的虚拟主机业务中起什么作用?”

提前感谢您的时间。

linux
  • 1 1 个回答
  • 3333 Views

1 个回答

  • Voted
  1. Best Answer
    Andrew B
    2016-01-05T15:52:34+08:002016-01-05T15:52:34+08:00

    人们很难回答这个问题,因为它从一个更简单的前提开始,然后从那里进入一个深深的兔子洞。让我们从头开始。

    主机文件与 DNS

    我认为这不需要太多解释,所以我会保持简短。hosts 文件的目的是定义不依赖 DNS 的主机到 IP 地址的映射。对于服务器而言,其中最重要的是设备自己的名称,因为如果您的 DNS 服务器出现问题以阻止您的设备通过名称引用自身,这是很愚蠢的。

    只要我们只使用主机文件,我们根本不需要使用域。不涉及 DNS,所以谁在乎呢?不幸的是,随着我们网络的发展,让每台设备独立跟踪我们网络上所有设备的名称变得越来越不可持续。这导致我们使用 DNS,并引入了一些新的后勤障碍。

    主机名与 FQDN

    如果您愿意,主机名是设备名称或节点名称。这是一个对设备所有者有意义的唯一标识名称,但不一定有意义,甚至不会暴露给在设备上使用服务的人。这就是 Linode 的意思,当它说名称不需要与您托管的服务有任何关系时。

    例如,假设您拥有一家名为 Contoso 的公司,并且您经营一个名为example.com. 该网站托管在六台机器上,dalek01通过dalek06. 外界需要知道的是,如果他们插入www.example.com他们的网络浏览器,他们就可以获得他们想要的网站。过度好奇的时间领主不必关心他们的请求www.example.com得到了服务的事实dalek03。

    就其本身而言,主机名不一定与 DNS有任何关系。它只是设备的名称,甚至不一定有与之关联的域后缀。到目前为止,这很简单!

    现在我们让事情变得更棘手。讲故事的时间!

    • 您的公司 Contoso 拥有许多通过专用网络与 dalek 群集通信的桌面计算机。
    • 当其中一台服务器出现问题时,您需要登录出现问题的特定设备。我们不能只连接到www.example.com,因为它由几台不同的机器托管。我们有一个唯一标识有问题的服务器的名称是一件好事!
    • 由于我们拥有庞大的设备网络,因此我们最常见的是希望使用 DNS 来管理它。这意味着我们需要将主机名粘贴dalek01到dalek06某个 DNS 域中。幸运的是,我们拥有contoso.com(以我们公司命名),完全独立于www.example.com可能是我们的客户之一。
    • 因为互联网不需要知道我们的内部 IP 地址,所以我们维护一个名为corp.contoso.com. 我们所有的台式机都配置了 DNS 搜索后缀corp.contoso.com. 这意味着如果我们创建一个名为 的 DNS 条目dalek01.corp.contoso.com,我们网络上的任何人都可以通过连接到dalek01他们的 SSH 客户端来访问该机器。方便的!
    • dalek01知道它被调用dalek01是因为我们把它放在了 hosts 文件中。我们希望它知道它也被称为dalek01.corp.contoso.com,但我们不希望它依赖 DNS 来知道它自己的名称。那将是愚蠢的。因此,我们dalek01.corp.contoso.com在 hosts 文件中定义了一个别名,dalek01以便它知道其所有名称。
    • 与此同时,人们继续使用www.example.com,而忽略了您有六台名为dalek01through的服务器dalek06、您的公司名为 Contoso 的事实(除了您的客户),或者为了方便您为dalek01through创建 DNS 记录的员工dalek06.corp.contoso.com。

    把它们放在一起

    • 您的主机名对您和运行服务器的人有意义,而不一定对使用其服务的人有意义。
    • 主机名不需要存储在 DNS 中(或根本没有 DNS 域),除非您拥有多个共享专用网络的设备。
    • 服务器依赖 DNS 与自己对话是愚蠢的。
    • 将您的主机名放入 DNS 需要在您的主机文件中定义该 FQDN,以便它不依赖 DNS 使用 FQDN 与自己对话。(如前所述,这很愚蠢)

    希望这涵盖了所有基础。

    • 15

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve