在使用服务器的过程中,我遇到了配置文件,您应该在其中输入外部服务器的地址。我已经看到一些人直接使用服务器的IP地址,但是我听到了很多建议使用主机名完全限定域名(FQDN)代替。为什么要使用主机名而不是直接IP地址?
因为如果使用主机名,则需要一个本地DNS服务器,该服务器会将每个主机名链接到一个IP地址。使用主机名或IP地址的缺点是什么?
::1
?:-)
在使用服务器的过程中,我遇到了配置文件,您应该在其中输入外部服务器的地址。我已经看到一些人直接使用服务器的IP地址,但是我听到了很多建议使用主机名完全限定域名(FQDN)代替。为什么要使用主机名而不是直接IP地址?
因为如果使用主机名,则需要一个本地DNS服务器,该服务器会将每个主机名链接到一个IP地址。使用主机名或IP地址的缺点是什么?
::1
?:-)
Answers:
使用IP地址可确保您不依赖DNS服务器。它还具有防止通过DNS欺骗进行攻击的好处。
使用FQDN代替IP地址意味着,如果要将服务迁移到具有其他IP地址的服务器,则只需更改DNS中的记录,而不必尝试查找使用该IP地址的任何地方。 。
当您有多个由多个人配置的服务器和服务时,此功能特别有用。
stackoverflow.com
而不是151.101.1.69
。当然,如今,它还允许虚拟主机,与其父母相关的子域以及由此产生的其他好处。
DNS不仅是FQDN = IP
DNS的重要之处在于,它不仅提供A记录(主机名= IP)。DNS提供了某些软件有时可能需要的不同类型的记录,例如MX,CNAME,TXT等。它允许多个地址记录,IPv4 + IPv6记录,动态地址,负载平衡,基于地理位置的解析,故障转移/冗余等。DNS告诉您什么(www.google.com是Google的网络服务,172.217 .4.110?是什么?)它允许您更改这些设置/记录,并让客户端拾取它们,而无需在所有客户端上进行更改。DNS可以做复杂的事情。
通过直接IP地址使用DNS通常具有明显的优势。
可能需要FQDN
诸如使用基于名称的虚拟主机或负载平衡器等的Web服务器之类的东西,绝对需要您通过FQDN或主机名对其进行寻址。它们根据您要连接的FQDN确定如何响应您的请求。通过IP连接可能根本无法工作。
SSL证书是根据域名颁发的,因此如果没有DNS,您可能无法(正确)使用某些启用SSL的服务。
这是对google.com域的深入查询,可让您了解DNS的复杂性
google.com。299英寸A 172.217.0.174 google.com。299英寸AAAA 2607:f8b0:400b:807 :: 200e google.com。599 IN MX 10 aspmx.l.google.com。 google.com。599 IN MX 40 alt3.aspmx.l.google.com。 google.com。59 IN SOA ns2.google.com。dns-admin.google.com。126990955 900 900 1800 60 google.com。599 IN MX 30 alt2.aspmx.l.google.com。 google.com。21599 IN NS ns2.google.com。 google.com。599 IN MX 20 alt1.aspmx.l.google.com。 google.com。599 IN MX 50 alt4.aspmx.l.google.com。 google.com。21599 IN NS ns1.google.com。 google.com。3599 IN TXT“ v = spf1 include:_spf.google.com〜all” google.com。21599 IN CAA 0问题“ symantec.com” google.com。21599 IN NS ns3.google.com。 google.com。21599 IN NS ns4.google.com。
雅虎用3个IP地址响应
$主机-ta yahoo.ca yahoo.ca地址为77.238.184.24 yahoo.ca地址为74.6.50.24 yahoo.ca地址为98.137.236.24
使用IP地址的优势
对我来说,通常是DNS可能以某种方式阻碍或不可用。通常,大多数情况下我都会使用DNS。
一个IP地址可能更好的示例是,当您有两台机器之间具有直接链接(无交换机)且具有专用网络地址(例如192.168.1.1和192.168.1.2),并且它们正在使用它进行高可用性通信时或DRBD或其他非常特定的服务。在这种情况下,在DNS中进行设置可能没有任何意义。这样做没有必要,会增加复杂性,性能问题并可能导致故障点。
另一个例子是路由。路由表出于各种原因记录IP地址。
另一个是引用名称服务器(例如/etc/resolv.conf中的名称服务器)。由于没有名称服务器,因此无法解决任何问题。