NetGuard 中文文档 下载 App

三渠道版本差异:Google Play vs GitHub vs F-Droid 完整对比

核心差异矩阵

维度Google PlayGitHub ReleaseF-Droid
安装入口Play StoreGitHub ReleasesF-Droid 客户端
签名FairCode 签名(与 GitHub 相同)FairCode 签名(与 Play 相同)F-Droid 独立签名
Hosts 广告拦截❌✅✅
端口转发❌✅✅
Pro 购买Play 内购捐赠激活捐赠激活
Pro 跨设备绑定 Play 账号≥7€ 捐赠→所有设备同 GitHub
自动更新Play Store 管理应用内检查 GitHubF-Droid 客户端管理
最低 Android5.15.15.1
APK 大小~2.6 MB~2.6 MB~2.6 MB
Google 服务依赖需要可选(可选 Play 恢复 Pro)无
IPv4 / IPv6 / TCP / UDP✅✅✅
Wi-Fi / 移动独立控制✅✅✅
亮屏 / 漫游 / 锁屏条件✅✅✅
流量过滤✅✅✅
SOCKS5 代理✅✅✅
DoT / DoH 处理✅✅✅
Hosts 文件下载❌✅✅
自定义 DNS✅✅✅

签名关系详解

Play 版 ↔ GitHub 版

签名相同。这意味着:

这是开发者有意设计的——方便 Play 用户无缝切换到 GitHub 版以获得 Hosts 拦截功能。

F-Droid 版 ↔ 其他版

签名独立。覆盖安装会提示签名冲突,必须先完全卸载旧版才能安装 F-Droid 版。卸载会:

为什么 Play 和 GitHub 共用签名

Play Store 规则禁止开发者上架"与其他版本签名相同但功能不同"的应用。但 NetGuard 的做法是:同一个签名、同一个包名,Play 渠道的构建被移除了 Hosts 和端口转发功能——本质上是同一个应用的不同构建变体。Play 规则没禁止这种做法(禁止的是"功能相同但签名不同"或"签名相同但应用名/包名不同")。

Hosts 功能的硬限制原因

Play 版不可能有 Hosts 拦截功能——这是 Google Play 政策的硬性规定。Google 禁止任何"全局拦截第三方域名"的应用上架。

即使 NetGuard 开发者想在 Play 版里悄悄加回 Hosts 功能,也会在 Play 自动审核阶段被检测到并强制下架。这不是技术限制,是政策限制。

版本更新机制

Play 版

GitHub 版

F-Droid 版

三渠道如何选

你的情况推荐渠道
主要需求是 Wi-Fi / 移动独立控制、不需要广告拦截Play Store(最省心)
已经在 Play Store 买了 Pro、想加 Hosts 拦截GitHub 版(同签名覆盖安装)
不想用 Google Play 任何服务F-Droid 版
需要端口转发功能GitHub 或 F-Droid
只想用开源应用、讨厌 Play 商店F-Droid
不想花 Pro 购买但想用 GitHub 功能GitHub 免费版 + 后期捐赠解锁 Pro

Play Store 自动更新覆盖 GitHub 版的问题

如果你同时在设备上有 Play Store(允许对 NetGuard 自动更新)和 GitHub 版 NetGuard,会遇到一个冲突:

  1. GitHub 版签名 = Play 版签名
  2. Play Store 可能检测到 NetGuard 有新版本
  3. Play Store 会用 Play 构建覆盖掉 GitHub 版
  4. 覆盖后 Hosts 和端口转发功能消失

解决

在 Play Store 里手动关闭 NetGuard 的自动更新:

  1. 打开 Play Store
  2. 搜索 NetGuard
  3. 点击 NetGuard 详情页右上角三点菜单 → 取消勾选「启用自动更新」

这样 Play Store 不会再碰 NetGuard。后续更新你自己手动从 GitHub 下载覆盖。