NetGuard 中文文档 下载 App

自定义 DNS 服务器:替换系统默认 DNS

为什么替换 DNS

Android 默认使用运营商提供的 DNS 服务器。使用运营商 DNS 的问题:

NetGuard 允许在高级选项里设置两台自定义 DNS 服务器,完全替换系统默认 DNS。

设置位置

主菜单 → 设置 → 高级选项 → DNS 服务器配置区域。

注意这个 DNS 设置和 Android 系统设置里的「私人 DNS」是两套独立的东西:

设置控制方影响
Android 私人 DNS系统所有应用的 DNS 请求
NetGuard 自定义 DNSNetGuard只有在 NetGuard 防火墙启用时生效

必须填两台

NetGuard 的行为:

所以想完全摆脱运营商 DNS 的控制,必须同时填两台。

推荐的隐私友好 DNS

DNS 服务主 DNS备用 DNS特点
Cloudflare1.1.1.11.0.0.1全球最快、隐私友好、不记录
Quad99.9.9.9149.112.112.112安全 DNS(拦截恶意域名)、隐私友好
OpenDNS208.67.222.222208.67.220.220老牌 DNS,支持自定义域名过滤
Google8.8.8.88.8.4.4速度快、稳定,但有隐私顾虑(Google 会记录)
NextDNS自定义自定义高度可配置、有免费版、支持 DoT/DoH

关于隐私 DNS 的注意

Cloudflare 和 Quad9 都承诺不记录用户 DNS 查询历史(或只保留极短时间的匿名数据),是目前最推荐的隐私友好 DNS。

Google DNS(8.8.8.8)虽然速度快,但 Google 的隐私政策允许收集 DNS 查询数据用于"改善服务"——如果在意隐私,建议选 Cloudflare 或 Quad9。

设置后验证

设置完两台自定义 DNS 后:

  1. Chrome 地址栏输入 chrome://net-internals/#dns → 清除 DNS 缓存
  2. 访问 dnsleaktest.com → 查看返回的 DNS 服务器 IP 是否是你设置的那两台
  3. 如果显示的还是运营商 DNS,说明设置没生效,回到 NetGuard 高级选项确认

运营商 DNS 劫持问题

某些运营商在网络层面有 DNS 劫持——无论你在 NetGuard 里填什么 DNS 地址,DNS 请求都会被强制重定向到运营商自己的 DNS。遇到这种情况:

NetGuard 默认允许 DNS 请求

不管自定义 DNS 设置成什么,NetGuard 的一个核心行为是默认允许所有 DNS 请求——即使域名在 Hosts 文件里被标记为拦截,NetGuard 仍然允许 DNS 查询完成。原因:

NetGuard 按真实域名做拦截判断。要知道某个域名是否在 Hosts 里,它必须先让 DNS 查询完成、拿到"域名 → IP"映射,然后在 IP 层拦截对应的流量。

所以你会看到:

这是 NetGuard 与其他 DNS 级拦截器(如 Pi-hole)的关键区别——其他拦截器直接在 DNS 层面拦截(返回 0.0.0.0),NetGuard 让 DNS 通过、在 IP 层面拦截。

清空自定义 DNS

如果自定义 DNS 设置出了问题导致所有应用无法联网:

  1. 主菜单 → 设置 → 高级选项
  2. 清空所有 DNS 服务器地址输入框
  3. 保存后 NetGuard 会恢复使用系统默认 DNS

DNS 设置与 Hosts 拦截的关系

两者独立工作、互不依赖:

你可以用 Cloudflare DNS 做解析,同时让 NetGuard 用 StevenBlack Hosts 文件拦截广告域名——两套机制叠加工作。