使用 pihole/adguard 后,无法使用公共 DNS 服务器解析域名

使用 pihole/adguard 后,无法使用公共 DNS 服务器解析域名

在树莓派上的本地网络中使用 adguard/pihole 后,我在客户端机器(Mac)访问不同的网站(例如 reddit.com)时遇到了问题。

为了解决这个问题,我认为将 DNS 服务器设置为类似于8.8.8.8 (google)wifi 界面上的服务器就足够了。

但是当我这样做时nslookup -debug reddit.com仍然得到以下答案:

Server:     8.8.8.8
Address:    8.8.8.8#53

------------
    QUESTIONS:
    reddit.com, type = A, class = IN
    ANSWERS:
    AUTHORITY RECORDS:
    ->  reddit.com
    origin = cleanbrowsing.rpz.noc.org
    mail addr = accesspolicy.rpz.noc.org
    serial = 1
    refresh = 7200
    retry = 900
    expire = 1209600
    minimum = 86400
    ttl = 3600
    ADDITIONAL RECORDS:
------------
** server can't find reddit.com: NXDOMAIN

由于 DHCP DNS 配置,我之前在网络中的所有客户端机器上将我的 pi 用作 pihole 服务器或 adguard 家庭服务器。

但是现在我对 Google DNS 进行了硬编码,难道我不应该从 Google DNS 获得正确的权威答案吗?Google DNS 肯定知道 reddit.com。

编辑:

我已经尝试过什么了?

  • 我刷新了 Mac 的 DNS 缓存以及网络上几乎所有的 DNS 缓存
  • 我连接到了另一个网络(个人热点) - 我可以使用 8.8.8.8 解析 reddit.com!

所以这似乎与我的网络有关:

这是我的网络:

  • Unifi Dream Machine SE 作为具有不同网络的路由器
  • UDM 上的每个网络都为 DHCP 设置了 2 个 DNS 服务器:一个指向 pihole,一个指向自身

当我连接到网络时,我会通过 DHCP 配置自动获取 2 个 DNS 服务器。目的是阻止恶意网站。

在处理该问题时,我停用了阻止功能,但仍然无法访问网站,并且广告拦截功能处于活动状态 :/ 。

然后我将我的机器的上游 DNS 硬编码为 Google DNS,但仍然无法解析 reddit.com。

现在我很困惑,并且仍然困惑。

答案1

我无法评论,但是您清除了 DNS 缓存吗?

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

答案2

我建议使用dighost,因为 OSX 是 Unix,所以它自带bind实用程序,而且nslookup比较旧,难以定制。也就是说,直接使用dig reddit.com或查询 DNS 服务器host reddit.com不会使用 OS 缓存:如果使用ping reddit.com或 ,则会通过缓存curl https://reddit.com。可能是 Ubuqity 设备正在执行某些防火墙以禁止客户端设置自己的 DNS?要确认这一点,您可以在 Unify 上设置 google DNS。我会查看 pihole 日志/配置,以了解它是否能够自行解决:如果路由器是网络的新成员,并且它正在过滤 DNS 查询,那么它可能也在过滤 pihole。

大概有帮助

答案3

感谢@Nicola 的回答以及我的问题评论的帮助这里我在我的网络 Unifi UDM SE 路由器中找到了问题的解决方案:在“设置 > 网络 > [YourNetworkHere] > 高级:内容过滤”下,将过滤模式设置为“无”,否则 cleanbrowsing.org 将用于 DNS

相关内容