在我使用服务器的工作中,我遇到了configuration文件,您应该将地址input到外部服务器。 我已经看到一些直接使用服务器的IP地址,但我听到很多build议,而不是使用主机名完全限定的域名 (FQDN)。 为什么我应该使用主机名而不是直接IP地址?
因为如果您使用主机名,那么您需要一个本地DNS服务器,将每个主机名连接到一个IP地址。 使用主机名或IP地址有什么缺点?
使用IP地址可确保您不依赖于DNS服务器。 它还有防止通过DNS欺骗攻击的好处。
使用FQDN而不是IP地址意味着,如果要将服务迁移到具有不同IP地址的服务器,则只需更改DNS中的logging,而不是尝试在每个地方查找使用的IP地址。
当你有许多个人configuration的服务器和服务时,这是特别有用的。
DNS不仅仅是FQDN = IP
DNS的重要之处在于它提供的不仅仅是Alogging(主机名= IP)。 DNS提供了不同types的logging,例如MX,CNAME,TXT等等,有些软件可能需要这些logging。 它允许多个地址logging,IPv4 + IPv6logging,dynamic地址,负载平衡,基于地理位置的parsing,故障转移/冗余等… DNS告诉你什么是事情(www.google.com是谷歌的networking服务,172.217 .4.110是什么?)它允许你改变这些设置/logging,让它们被客户拿走,而不用在所有客户端上做出改变。 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 IN 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在SOA ns2.google.com中。 dns-admin.google.com。 12 900 900 1800 60 google.com。 599 IN MX 30 alt2.aspmx.l.google.com。 google.com。 21599在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在NS ns1.google.com。 google.com。 3599 IN TXT“v = spf1 include:_spf.google.com〜all” google.com。 21599在CAA 0问题“symantec.com” google.com。 21599在NS ns3.google.com。 google.com。 21599在NS ns4.google.com。
雅虎回应3个IP地址
$ host -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地址可能更好的一个例子是,当你有两台机器之间有一个直接连接(没有交换机)和专用networking地址(比如192.168.1.1和192.168.1.2),并且它们正在使用它进行高可用性通信或DRBD或另一个非常具体的服务。 在这种情况下,在DNS中设置东西可能没有任何意义。 没有必要,会增加复杂性,性能问题,并可能引入失败点。
另一个例子是路由。 路由表出于各种原因loggingIP地址。
另一个是引用名称服务器(如在/etc/resolv.conf中)。 由于没有名称服务器,您无法解决任何问题。