domain.tld 与 domain.tld 对比

domain.tld 与 domain.tld 对比

我刚刚读完这个问题,在浏览答案时,我随机尝试了一些东西,发现http://admin.tohttp://admin.to.指向不同的位置。两者都返回 403 错误,但.to.域重定向到完全不同的服务器。

这怎么可能?我认为两者在技术上应该是相同的,那么这里发生了什么?

答案1

实际上,DNS条目是相同的(89.107.186.40),正如预期的那样。似乎不同之处在于虚拟主机。很可能,服务器为每个服务器名称都有一个虚拟主机,为其中一个指定最后一个点,而不为另一个指定最后一个点。我认为这更像是Apache问题,而不是DNS问题。

正如其他人所说,admin.to和之间的区别admin.to.在于第二个是一个完全限定名称,因此您的解析器不会尝试通过将您的 DNSsearch参数附加到它来解析它,而第一个将使用参数进行尝试search

举个例子,我输入raphink.info了我的搜索路径/etc/resolv.conf

$ grep '^search' /etc/resolv.conf
  search raphink.info

$ getent hosts www
  74.125.77.121   raphink.info www.raphink.info

$ getent hosts www.

第一个请求www没有尾随的点,因此解析器尝试使用搜索路径来解析它。第二个请求是完全限定名称,因为它有一个尾随的点,因此不会尝试搜索路径,解析不会产生任何结果。

正如我所说,在这种情况下,你的问题看起来更像是 HTTP 服务器的问题而不是 DNS 问题,因为我在我自己的机器上得到了相同的结果:

$ getent hosts admin.to
  89.107.186.40   admin.to

$ getent hosts admin.to.
  89.107.186.40   admin.to

答案2

这似乎是主机头问题:

就 DNS 而言,您是正确的:带或不带尾随的.域名都会解析为89.107.186.40,但驻留在那里的服务器(反转为名称serverdomain.org)在解析主机头时无法理解这一点。

答案3

尾随的点表示它是一个完全限定名称,DNS 解析器将以不同的方式处理它。

答案4

我的理解是,末尾的 . 表示它是一个完全合格域名。这意味着这是将要查找的确切主机名。

如果您省略末尾的 .,它将首先搜索您的域。例如,如果您访问 admin.to,而您恰好属于某个域 somedomain.com,那么它将首先查找 admin.to.somedomain.com。如果解析成功,那么它将转到该位置,而不是您想要的域 admin.to。

相关内容