DNS 错误和不存在的子域

DNS 错误和不存在的子域

当我访问 anythinghere.mysite.tld 时,我收到 DNS 错误。但是,如果您观察 anythinghere.google.com 和 anythinghere.example.com 的行为,您会发现没有 DNS 错误。

注意:doesnotexist.mysite.tld、random.mysite.tld 等不存在;所有不存在的子域似乎都受到影响。在这种情况下出现 DNS 错误的原因可能是什么?

注 2:我正在使用带有 CloudFlare 的 GitHub Pages。

更新:如果我清除浏览器缓存,DNS 错误就不会发生。我在 random.lsquo.com 上看到的行为与在 random.google.com 上看到的行为完全相同。这很好,因为这正是我想要的。然而,当我再次访问 lsquo.com 并再次访问 random.lsquo.com 时,我再次看到 DNS 错误。

答案1

首先,在所有提到的示例中出现 DNS 错误是正常的(都无法解析,也无法random.google.comrandom.lsquo.com

然而,查看您的屏幕截图时,请务必注意,您实际上并没有收到 DNS 错误random.lsquo.com,而是收到“连接超时”错误。

看起来您配置的 DNS 服务器(可能是由您的 ISP 提供的)确实劫持了 NXDOMAIN,它们将无法解析的名称(即状态 NXDOMAIN)解析为某个可以为其带来收入的页面。

访问您的网站后,行为会发生变化,因为您使用 HSTS,并表示该政策也适用于子域。
即,包括子域Strict-Transport-Security: max-age=15552000; includeSubDomains; preload

在您的情况下,浏览器也被 NXDOMAIN 劫持所欺骗,但由于托管 NXDOMAIN 劫持站点的服务器不执行 HTTPS(即使执行,它也不会拥有您域名的有效证书,因此尝试也没有意义),因此浏览器无法连接。

总而言之,得益于您的 HSTS 政策,您的域名在上述示例中表现最佳。很好!

答案2

为了实现这一点,您应该为您的域名设置通配符记录。目前您还没有

*.lsquo.com.   IN   A       104.27.176.48
*.lsquo.com.   IN   A       104.27.177.48
*.lsquo.com.   IN   AAAA    2400:cb00:2048:1:0:0:681b:b030  
*.lsquo.com.   IN   AAAA    2400:cb00:2048:1:0:0:681b:b130

其中 IP 地址与您的相匹配lsquo.com.

我不明白的是为什么你能让它工作一次以及如何让它与 Google 一起工作,它似乎也没有任何通配符记录。

好消息是,您已配置 HSTS,并且您的证书具有通配符 *.lsquo.com。这意味着您已做好一切准备,可以达到所需的状态。在许多情况下,这些将成为下一个问题。

希望您的网络服务器没有一个万能的虚拟主机,而是使用重定向到您网站的规范主机名。

相关内容