在树莓派上的本地网络中使用 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
我建议使用dig
或host
,因为 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