NetGuard 中文文档 下载 App

Hosts 广告拦截前置条件:为什么 Play Store 版做不了

渠道硬限制

这是最关键的一点:Hosts 广告拦截功能仅在 GitHub Release 和 F-Droid 渠道版本中可用。Google Play Store 版本受 Google 政策限制,被禁止提供广告拦截功能。

原因是 Google Play 的应用政策明确禁止"使用 Hosts 文件或其他手段全局拦截广告域名"的应用上架。NetGuard 的 Play 版本签名与 GitHub 版本相同(方便 Play 用户无缝切换),但开发者在 Play 版本的编译构建中移除了 Hosts 相关功能。

如果需要 Hosts 拦截,必须从 GitHub Release 或 F-Droid 安装 NetGuard。

为什么必须走 GitHub / F-Droid

开发者在 ADBLOCKING 文档开头明确声明:

由于 Google 不允许广告拦截应用上架 Google Play Store,Play Store 版本无法使用 Hosts 广告拦截。

有两个解决办法:

办法一(推荐):直接用 GitHub 版

办法二:用 F-Droid 版

系统要求

四个关键前置开关

在 Hosts 拦截生效前,必须在 NetGuard 设置里正确配置以下四个开关。

开关一:Filter traffic(流量过滤)

主菜单 → 设置 → 高级选项 → Filter traffic → ✅ 勾选开启。

这是 Hosts 拦截的基础开关。如果流量过滤没开,即使 Hosts 文件导入成功也不会生效——NetGuard 不会实际检查每个出站请求的目标域名。

Android 5.0 及更早版本上流量过滤是强制开启的;5.1+ 上默认关闭,需要手动开启。

开关二:Block domain names(拦截域名)

主菜单 → 设置 → 高级选项 → Block domain names → ✅ 勾选开启(默认已开启)。

这个开关控制 NetGuard 是否在 DNS 层面拦截已知的广告域名。

开关三:Manage system apps(管理系统应用)

主菜单 → 设置 → 高级选项 → Manage system apps → ✅ 勾选开启。

很多系统应用(包括 Google Play 服务)会显示广告,要对它们也应用 Hosts 拦截就需要开启系统应用管理。默认关闭,需要手动打开。

开关四:关闭浏览器的压缩 / 代理 / DoH

很多浏览器(以及部分应用)内置了数据压缩 / 代理 / DNS over HTTPS 功能,会导致 NetGuard 无法正确识别和拦截域名请求。详细说明见 Hosts 拦截故障排查页面。

前置条件自检清单

开始 Hosts 拦截设置前,对照检查:

检查项预期状态验证方法
版本来源GitHub Release 或 F-Droid卸载重装不会提示签名冲突;或在设置里查看版本信息
Filter traffic✅ 开启设置 → 高级选项
Block domain names✅ 开启设置 → 高级选项(默认就是开的)
Manage system apps✅ 开启设置 → 高级选项
浏览器压缩 / DoT / DoH关闭Chrome / Firefox 等浏览器设置里检查