我切换到 comodo DNS 并收到 .local 域名提示

我切换到 comodo DNS 并收到 .local 域名提示

我今天切换到了 Comodo DNS,因为 Norton DNS 似乎已完全关闭,并且网站几天都无法访问。

Comodo DNS 运行正常,但每次我登录电脑时,它都会提示 avahi 因使用 .local 域而被禁用。我只是想了解这是什么意思,我做了一些研究,但什么也没找到。

当我切换到 OpenDNS 时,该提示消失了。有人知道为什么会发生这种情况吗?

答案1

问题在于该.local域名不应该存在于 DNS 中 - 它是为仅限本地的 mDNS 保留的 - 但 Comodo 的 DNS 服务器假装它存在。

为何 Comodo DNS 出现故障

Comodo DNS 并不完全干净——当你查找任何不存在的名称时,Comodo 的服务器不会回复“此域名不存在”,而是假装所有这些名称都指向他们自己的网站(也称为DNS 劫持或“NXDOMAIN 劫持”)。

例如,如果你尝试访问类似http://this.goes.nowhere,Comodo 的综合网站只显示“该域名无效”,并附有 Comodo 的标志和一些文字广告。

重要的是要理解这是不是与回复 DNS 查询“域不存在”相同。Comodo 的 DNS 服务器表示域存在并指向 Comodo 拥有的 IP 地址。当你在程序中遇到这种情况时,差异非常明显除了网络浏览器之外;例如,如果您尝试使用连接到另一台计算机ssh但输入了错误的名称,您可能甚至不会注意到您正在连接到 Comodo 的服务器。维基百科会列出您还有更多东西坏了与此类 DNS 提供商合作。

综合网站截图

...以及为什么 OpenDNS 也坏了

顺便说一下,以上所有操作也都是由 OpenDNS 完成的 - OpenDNS 服务器会做同样的事情,当您尝试访问一个不存在的网站时,会将您重定向到 OpenDNS“搜索”网站(尽管他们允许您选择退出)。

区别仅在于 Comodo 和 OpenDNS 处理保留.localTLD 的方式。

Avahi 是什么

OS X 和 Linux 使用一种称为 mDNS 的协议,让您能够通过名称访问同一 LAN 中的其他计算机,而rockos-laptop.local无需设置内部 DNS 服务器或直接输入 IP 地址。(在 Linux 上,“Avahi”是使用 mDNS 的程序的名称。)标准 mDNS 设置.local对所有此类名称使用域,以避免将它们与全局名称混淆。

然而,许多公司网络已经设置了内部 DNS 服务器,虽然大多数公司出于自己的目的使用.loc.corp使用.lan,但事实证明有些公司.local也使用域。

因此,如果您尝试访问something.local,操作系统不知道首先要询问哪里——LAN 中使用 mDNS 的其他计算机,还是公司自己的 DNS 服务器。因此,如果操作系统发现.localDNS 中存在该域,它必须关闭本地 mDNS 查找。这就是警告所说的内容。

为什么 OpenDNS 不会引起警告

虽然 OpenDNS 也有一个捕获所有答复的功能,但它实际上排除了某些保留的顶级域名,例如.test.local.example,并为它们返回实际的 NXDOMAIN 错误。

然而,Comodo DNS 仍然声称,下面的所有名称都.local指向该万能网站。(更令人困惑的是,http://127.0.0.1只要万能网站看到域名以“.local”结尾,它就会进一步将您的浏览器重定向到 - 因此浏览器最终会尝试访问您自己的计算机。此重定向是在 HTTP 级别完成的,因此非浏览器程序仍会继续尝试连接到 Comodo 的服务器。)

例如...

$ host superuser.com
superuser.com 的地址为 198.252.206.140

$ 主机 this.does.not.exist
this.does.not.exist 的地址为 92.242.144.50

$ 主机不存在.local
nonexistent.local 的地址为 92.242.144.50

一个好的 DNS 服务器会说:

$ 主机 this.does.not.exist
未找到主机 this.does.not.exist:3(NXDOMAIN)

如何修复此问题

不要使用 Comodo DNS。

(我建议也不要使用 OpenDNS,或者至少选择退出“拼写错误纠正”和其他类似的服务仪表板

考虑使用“干净”的公共 DNS 提供商,例如Google 公共 DNS,或者只是通过安装Unbound并将DNS设置指向来为自己运行DNS服务器127.0.0.1

您的 ISP 的 DNS 服务器可能也能正常工作。

相关内容