我正在尝试配置我的 Fios G1100 以强制向我的内部 DNS 服务器发出 DNS 请求192.168.1.131
。该设备运行 Pi-hole,配置为向1.1.1.3
和发出 DNS 请求1.0.0.3
。这效果很好!
但是,现在我试图通过手动配置 DNS 来限制网络上的设备绕过 DHCP 的 DNS 服务器。我最初看到这篇文章提供了一种避免这种规避的方法:如何防止用户使用防火墙规则规避 OpenDNS。
因此,我使用以下访问控制规则设置了我的 Fios G1100:
据我了解,此规则仅允许192.168.1.0
, 192.168.1.1
,192.168.1.131
向 LAN 发出 DNS 请求。
我已重新启动 G1100 并验证请求的 DNS 仍在工作并通过192.168.1.131
. 他们是。
然后在我的 Mac 上,我进入System Preferences -> Network -> Wi-Fi:Advanced -> DNS
并添加了8.8.8.8
DNS 服务器。果然DNS在设备上被阻止了。
然而,当我在我的 Pixel 2 XL 上做同样的事情时,DNS 请求被解析并被192.168.1.131
绕过。我关闭了移动数据,Wi-Fi配置如下:
Proxy: None
IP settings: Static
Privacy: Use device MAC
IP address: 192.168.1.120
Gateway: 192.168.1.1
Network prefix length: 24
DNS 1: 1.1.1.1
是什么允许 Android 绕过访问控制规则?
事实证明,Android 具有基于 TLS 的 DNS 的能力,也称为Private DNS。Private DNS 设置似乎使用端口 853 而不是端口 53。
似乎端口 853专用于 DNS 服务,因此阻止此端口(以与端口 53 相同的方式)不会导致任何问题。但是,基于 HTTPS 的 DNS 使用端口 443,该端口并非专用于 DNS 服务,因此不应被阻止。