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

我刚买了一个 Linode VPS主机方案,并按照这个 guide进行设置.在“设置主机名”部分和“更新/ etc / hosts”中
“部分,它说要在这里设置的FQDN /主机名不需要与我即将主持的网站相关联,这让我感到困惑.

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

>如果是“xxx”,FQDN必须类似于xxx.somedomain.com.省略,那么它不是FQDN.
根据https://kb.iu.edu/d/aiuv,我认为可以被称为子域的xxx也可以称为“主机名”.
>在我的本地计算机中,通过将以下行添加到hosts文件中

63.117.14.58 www.yahoo.com无论如何

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

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

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

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

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

2)
答:关于FQDN,为什么主机名必须与我在服务器上设置的主机名相同,而域名不是?

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

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

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

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

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

感谢您提前的时间.

解决方法

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

主机文件与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域.我们所有的桌面计算机都配置了一个DNS搜索后缀corp.contoso.com.这意味着如果我们创建一个名为dalek01.corp.contoso.com的DNS条目,我们网络上的任何人都可以通过使用SSH客户端连接到dalek01来访问该计算机.方便!
> dalek01知道它被称为dalek01,因为我们把它放在hosts文件中.我们希望它知道它也被称为dalek01.corp.contoso.com,但我们不希望它依赖DNS知道它自己的名字.那太傻了.因此,我们在dalek01上的hosts文件中为dalek01.corp.contoso.com定义了一个别名,以便它知道它的所有名称.
>与此同时,人们继续使用www.example.com,不知道你有六台服务器通过dalek06命名为dalek01,事实上你的公司名为Contoso(你的客户放在一边),或者为了方便你的您通过dalek06.corp.contoso.com为dalek01创建DNS记录的员工.

把它们放在一起

>您的主机名对您和运行服务器的人员有意义,而不一定是使用其服务的人员.
>主机名不需要存储在DNS中(或者根本没有DNS域),除非您拥有共享专用网络的多个设备.
>服务器依靠DNS与自己交谈是愚蠢的.
>将您的主机名置于DNS中,还需要在主机文件中定义该FQDN,以便它不依赖DNS使用FQDN与自身通信. (如上所述,会很愚蠢)

希望这涵盖了所有的基础.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、信号(signal)、消息队列、共享内存、信号量、套接字(socket)。管道用于具有亲缘关系的进程间通信,有名管道的每个管道具有名字,使没有亲缘关系的进程间也可以通信。信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别对整个系统的性能做统计,而进程级别则具体到进程,为每个进程维护统计信息。

按实现原理分,可分为基于计数器和跟踪以及剖析。含义如下:

计数器:内核维护的统计数据,通常为无符号整型,用于对发生的事件计数,比如,网络包接收计数器,磁
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书验证,详细追踪整个交互过程,可用于调用网络后端接口,诊断http和https网络服务故障。
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满、fd泄漏等问题。命令包括ping、fping、tcpdump、lsof、netstat、/proc/$pid/fd、du、grep、traceroute、dig。
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的进程数目,用uptime查看到负载很高,既有可能是CPU利用率高,也可能是大量在等待io的进程导致,用mpstat查看每个CPU的使用情况,查看CPU的使用率或者CPU花在等待io的时间,接着用pidstat定位具体的进程
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线程切换及中断切换,进程切换的开销较大,除了需要保存寄存器和程序计数器中的值还需保存全局变量、栈等到内存中,以便下次运行恢复,而同一进程中的线程切换开销会小很多,只需更新寄存器和线程独有的栈,共享资源如打开的文件、全局变量等无需切换,当硬件中
1.top命令 作用:该命令可以按CPU使用.内存使用和执行时间对任务进行排序,常用来监控系统中占用CPU或内存较高的程序及CPU和内存的负载。 默认视图: 当想看系统负载时,可观察汇总的%CPU中的us用户进程和sy系统进程是否占用CPU很高,相加接近100%就说明占用很高了,有些程序可能得不到及
文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限!!!粘滞位!!!超详解!!!
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Windows、Linux、MacBook_mack book 安装qt
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Linux——了解操作系统的发展历史以及初次体验Linux编程环境
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,个人学习时很认真的记录的,觉得好的麻烦点个赞。
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.5p1(亲测无问题,建议收藏)_openssh_9.5p1
文章浏览阅读3.5k次,点赞93次,收藏78次。初识Linux中的线程,理解线程的各种概念,理解进程地址空间中的页表转换,介绍pthread线程库并理解线程库!
文章浏览阅读863次。出现此问题为Linux文件权限问题,解决方案为回到引擎目录执行命令。输入用户密码后运行./UnrealEditor。_increasing per-process limit of core file size to infinity.
文章浏览阅读2.9k次。使用文本编辑器:打开CSV文件,并使用文本编辑器(如Notepad++、Sublime Text、Visual Studio Code等)来查看文件的字符编码格式。通常在编辑器的底部状态栏或设置中可以找到当前编码的显示。请注意,上述方法并非绝对准确,特别是当文件没有明确的编码标识时。因此,如果你发现CSV文件在不同的工具或方法中显示不同的编码格式,可能需要进行进一步的分析和判断,或者尝试使用不同的编码转换方法。该命令将输出文件的MIME类型和编码信息。使用命令行工具:在命令行中,你可以使用。_shell读取csv文件逐行处理
本文介绍了如何在Linux系统中升级gcc版本,以便更好地支持C++11及以上版本的新特性。通过升级gcc,可以提升编译器的功能和性能,获得更好的开发体验。详细的步骤和方法请参考原文链接。
文章浏览阅读4.4k次,点赞6次,收藏19次。Mosquitto是一个开源的MQTT消息代理服务器。MQTT是一个轻量级的、基于发布/订阅模式的消息传输协议。 mosquitto的安装使用比较简单,可以方便的来进行一些测试。_linux mosquitto
文章浏览阅读7.2k次,点赞2次,收藏12次。Linux中,用于根目录下有一个.ssh目录,保存了ssh相关的key和一些记录文件。_~/.ssh/
文章浏览阅读4.5k次,点赞5次,收藏18次。首先需要安装 snmp ,使用下面的命令进行安装安装完毕之后,使用下面的命令查看是否安装成功当命令行显示如图即为安装成功。_snmp工具