有没有办法确定 DNS 服务器 ( dnsmasq
) 是否使用 8.8.8.8?
我有一个 Google Nest Wifi 路由器,它似乎很清楚(在诊断报告 [1] 中)它正在将 [2] google 的 8.8.8.8 和 8.8.4.4 DNS 名称服务器添加到电缆调制解调器的 DHCP 中分配的名称服务器。由于路由器正在使用dnsmasq
,我相信我的查询有效地使用了quad-8,无论配置如何(可以是以下之一:Google、ISP 或自定义/手动;在 Google Wifi 应用程序中设置)。
由于据称 8.8.8.8 不进行 IP 过滤——而且我不知道 Comcast/Xfinity 是否进行 IP 过滤——我不知道是否有可能找到一个在两台服务器中有意解析不同的主机名。我对dig
, host
, 和nslookup
知道如何查询特定服务器(假设在 ISP 中没有重定向)感到满意,但我不知道“知道”哪个服务器正在有效使用的好方法。
我控制两个域的区域(通过 hostmonster 和 godaddy)。是否有一些启发式方法可以进行区域更改并推断哪个上游服务器解决了它?它将缓存响应的事实使这有点问题[3]。
(我在诊断报告中没有找到任何dnsmasq
配置文件,并且我没有对路由器的 ssh 访问权限。我目前没有简单的机制来嗅探路由器的上游,尽管这可能是唯一的权威方式。我的私有网络上的操作系统包括 win10、mac 和 linux,并且我可以远程访问其他地方的多个 linux 主机。)
我的 ISP 的 dns 服务器是 75.75.75.75 和 75.75.76.76(如果有帮助的话)。
脚注:
诊断报告。Google Nest Wifi 路由器有几个 API 端点,用于提供瞬时状态 (json) 和完整的诊断报告 (gzipped protobuf)。例子:
http://testwifi.here/api/v1/status http://testwifi.here/api/v1/diagnostic-report
前置. 查看诊断报告,它显示首先
/etc/resolv.conf
列出 8.8.8.8 和 8.8.4.4 ,其中一个父进程是。当前配置是(主要用于此测试)。dhcpcd
shill --prepend-dns-servers=8.8.8.8,8.8.4.4
Custom: 75.75.75.75, 75.75.76.76
- 缓存。我相信 DNS 中没有禁用缓存结果的机制。https://serverfault.com/q/372066。
这是一个“大部分”的答案。
TL;博士
OpenDNS 是一种易于访问的名称服务器,它允许具有非常具体的已知差异(welcome.opendns.com 和 internetbadguys.com)。也就是说,导航到非 OpenDNS 服务连接上的任何一个站点,您会发现 OpenDNS 没有“保护”您免受这两个“金丝雀”(指标)的影响。
可重现的步骤
...确定路由器是否在劫持您的 DNS(并且您相信您可以控制名称服务器)。
导航到其中一个或两个站点。对于此示例,我将使用
internetbadguys.com
. 这一步是“控制”注册 OpenDNS。这不一定是永久条件,基本服务(足以满足这些目的)是免费的。
将您的路由器配置为使用 OpenDNS 名称服务器。对于我的 Google Nest Wifi 路由器,我需要使用 Google Wifi 应用程序(尽管我认为我也可以使用 Google Home 应用程序?)(我不会在此处包含广告的 IP 地址:它们有据可查,而且我不想要一个陈旧的答案,以防他们改变。)
如果您有疑问,您可能想要或需要包括以下各种选项:清除浏览器缓存(通常
Ctrl-Shift-Del
)和清除本地 dns 缓存(windows:ipconfig /flushdns
,在 linux 下有所不同,对于 macos 不确定)。您可能还需要等待几分钟。(当然,internetbadguys.com
TTL 为 1,所以......它应该不会花很长时间,但一些名称缓存可能会忽略 1。)旁注:在我的情况下,我验证了路由器在 opendns 名称服务器 IP 地址之前
/etc/resolv.conf
明确包含。这就是引发我对 DNS 劫持指控的原因,现在检查它仍然这样说:8.8.8.8
再次导航到上一个(相同的)URL。不要“重新加载”页面,因为它可能已被重定向,只需直接转到文字 URL。如果 DNS 被您的路由器(或您的计算机和 OpenDNS 名称服务器之间的任何路由器)重定向,那么您将看到如上图,说明“InternetBadGuys.com 只是一个演示站点”。但是,如果 DNS 按照您的指示运行(尽管
/etc/resolv.conf
上面也显示了),那么您应该会看到如下内容:就我而言,我相信路由器并没有劫持 DNS 以在我的网络上进行查询,而是使用 quad-8s 进行内部名称服务。