GoForum › 🌐 V2EX

Android 冲浪工具哪家强?别天天问了看看 Cursor 怎么说

SteveRogers · 2026-09-30 11:08 · 0 次点赞 · 0 条回复

Android 冲浪客户端源码对比评估报告

评估视角:Android 架构 / 工程安全抽样(静态)
系统基线:Android 16(API 36)及更新系统行为
文档版本:2026-09-30
评估性质:选型级静态审查 + 公开信息交叉验证,非形式化第三方安全审计


先放测试结果:综合排名(仅 Android 客户端场景)

排名 项目 一句话 更适合
1 SFA Android 16+ 适配与内核同源最强;无默认遥测 要 sing-box、能接受 Experimental
2 FlClash Clash 生态里体验与 target 36 最佳 要好用 GUI + mihomo + 多端
3 CMFA 原生多模块最扎实、VPN 路径成熟 要可维护原生工程、偏稳定
4 NekoBox 仍可用,但相对 SFA 明显落后 插件/历史习惯;勿用 Play 版
— sing-box 内核标杆,不是 App 引擎/协议能力评估
— Verge-rev 桌面标杆,不是 Android 桌面选型

1. 评估范围与对象

1.1 对比仓库

# 仓库 简称 官方描述定位
1 SagerNet/sing-box sing-box 通用代理平台(内核,Go)
2 SagerNet/sing-box-for-android SFA sing-box 官方 Android 客户端(Experimental)
3 chen08209/FlClash FlClash 基于 ClashMeta 的多平台代理客户端
4 Clash-Verge-rev/clash-verge-rev Verge-rev Tauri 桌面 GUI(Win / macOS / Linux)
5 MatsuriDayo/NekoBoxForAndroid NekoBox / NB4A 基于 sing-box 的 Android 通用代理工具链
6 MetaCubeX/ClashMetaForAndroid CMFA Clash.Meta(mihomo)的 Android GUI

1.2 口径澄清(重要)

项目 是否 Android App 本报告中的角色
SFA ✅ sing-box 官方 GUI,与内核同生态
FlClash ✅(兼桌面) Clash/mihomo 系多端客户端
CMFA ✅ Clash/mihomo 系原生 Android 客户端
NekoBox ✅ sing-box 系第三方/社区 Android 客户端
sing-box ❌ 仅内核;App 层请看 SFA / NekoBox
Verge-rev ❌ 仅桌面,不参与 Android 排名

若目标是「Android 端选型」,应以 SFA / FlClash / CMFA / NekoBox 为主;sing-box 与 Verge-rev 仅作生态参照。


2. 评估方法与边界

2.1 已执行的工作

  1. 本地浅克隆相关仓库至工作区 _eval/,对关键路径做检出与检索。
  2. 代码侧定向抽样:
    • targetSdk / compileSdk / minSdk、Gradle 模块结构
    • AndroidManifest.xml:权限、VpnService、导出组件、FGS 类型
    • 依赖树线索:Firebase / Crashlytics / 商业统计 SDK 等
    • 敏感功能入口:远程控制、Xposed、本地入站相关公开讨论
  3. 公开元数据:GitHub API(Star、最近推送、License、默认分支)、README 安全警告、社区已知漏洞讨论。

2.2 未执行(因此不能夸大结论)

未做项 影响
全量逐文件 / 逐 commit 审计 无法声称「每一行都看过」
官方 Release APK 与源码构建产物一致性比对 供应链完整性未证明
真机动态抓包 / 长时间稳定性压测 流畅性、稳定性含推断成分
内核协议/密码学实现深挖 mihomo / sing-box 深度安全未覆盖
形式化「无后门」证明 不可能由静态抽样单独保证

2.3 结论可信度分级

级别 适用结论
高 是否 Android 项目、SDK 目标版本、模块形态、有无默认遥测 SDK、README 明确的供应链警告
中 架构质量相对排序、Android 16 适配相对优劣、公开已知共性问题(如 localhost SOCKS)
低 / 推断 日常使用「手感」流畅度、长连接绝对稳定性(缺压测)
不可保证 「绝对无后门」、第三方改包/渠道包安全

3. 各项目画像

3.1 sing-box(内核)

项 内容
语言 Go
角色 协议、路由、DNS、入站/出站等核心引擎
质量印象 工程纪律强、持续演进、社区与文档成熟
Android 关系 通过 libbox 被 SFA / NekoBox 等嵌入;本身不是 App
后门抽样 未见「隐蔽上报用户流量到作者服务器」类典型模式(内核层抽样有限)

3.2 SFA(sing-box-for-android)

项 内容(抽样时点)
包名 io.nekohasekai.sfa
版本线索 VERSION_NAME=1.15.0-alpha.9,VERSION_CODE=741
UI Kotlin + Jetpack Compose
内核绑定 libbox.aar / libbox-legacy.aar
SDK compileSdk = 37,targetSdk = 37,默认 minSdk = 24(otherLegacy 可至 21)
Product Flavors play / other / otherLegacy
服务 VPNService、ProxyService、USBIP、Taildrop 等
特殊能力 Xposed 模块(隐藏 VPN / 应用列表等);Remote Control(用户配置的远程管理)
遥测 依赖侧未见 Firebase / Crashlytics 等
README 明确 Experimental;GPL-3.0 + 名称限制条款
维护 活跃;有 Android 16 QPR2 相关 VPN 隐藏/接口修复提交线索
生态注意 GitHub Issues / PR 基本关闭;Star 规模小于 Clash 系 GUI

架构评价:与内核同团队、对系统 API 跟进最激进,适合作为 sing-box 官方 Android 参考实现;客户端标注 Experimental/alpha,工程完备度高但产品成熟度需自行承担风险。

3.3 FlClash

项 内容(抽样时点)
技术栈 Flutter (Dart) + Android 原生模块 + Golang 内核(ClashMeta/mihomo)
Android 模块 android/{app, service, core, common}
SDK targetSdk = 36,compileSdk = 36,minSdk = 23
UI Material You,自适应多屏;宣称开源无广告
服务 VpnService + ProxyService,foregroundServiceType=specialUse
遥测 Firebase Crashlytics 可选;模型默认 crashlytics = false,设置中可开关
分发 GitHub Releases、F-Droid 仓库链接等
自动化 Intent:START / STOP / TOGGLE

架构评价:Android 16(API 36)对齐良好,跨平台体验统一;Flutter + VPN 在部分 OEM ROM 上边界问题排查成本高于纯原生。

3.4 ClashMetaForAndroid(CMFA)

项 内容(抽样时点)
血统 Fork / 延续 ClashForAndroid(CFA)架构
技术栈 Kotlin 多模块:app / service / core / design / common
内核 Clash.Meta / mihomo(android-real 等分支策略见其 README)
SDK minSdk = 21,targetSdk = 35
版本线索 如 versionName = 2.11.34(以仓库当时配置为准)
IPC Binder / kaidl 远程接口(IClashManager 等),UI 与服务边界清晰
遥测 代码侧未见 AppCenter / Firebase;PRIVACY_POLICY.md 仍提及第三方服务,疑似文档遗留
系统跟进 Manifest 注释含 Android 17+ 跨 Profile loopback 相关权限说明
分发 F-Droid、GitHub 等

架构评价:Android 原生工程结构最「教科书」:进程边界、配置与服务分离成熟;UI 相对偏旧,targetSdk 尚未到 36。

3.5 NekoBoxForAndroid

项 内容(抽样时点)
血统 SagerNet / shadowsocks-android 系 GUI + sing-box
技术栈 Kotlin、Room、插件化
SDK compileSdk/targetSdk = 35,minSdk = 21(buildSrc Helpers)
版本线索 VERSION_NAME=1.4.2,约 2026-02 量级提交节奏(相对 SFA/FlClash/CMFA 偏慢)
Flavors oss / fdroid / play / preview
供应链警告 README:Google Play 版自 2024-05 起被第三方控制,非开源,请勿下载
协议面 宽(含插件扩展:Trojan-Go / Naïve / Mieru 等)

架构评价:功能与协议覆盖广,但客户端演进弱于 SFA;同属 sing-box 系时,长期更建议评估迁往 SFA。

3.6 clash-verge-rev(仅参照)

项 内容
技术栈 Rust + Tauri + 前端
平台 Windows / macOS / Linux
Android 无
本报告处理 不参与 Android 排名;桌面 Clash 生态可作对照

4. 维度对比总表

4.1 基础属性

维度 SFA FlClash CMFA NekoBox sing-box Verge-rev
Android App ✅ ✅ ✅ ✅ ❌ ❌
主要语言 Kotlin/Compose Dart/Flutter + Kotlin Kotlin Kotlin Go Rust + TS/前端
代理内核 sing-box mihomo mihomo sing-box 自身 mihomo
配置生态 sing-box JSON 为主 Clash YAML / Meta Clash YAML / Meta 订阅出站为主* JSON Clash YAML
License GPL-3.0(+名称限制) GPL-3.0 GPL-3.0 标注 GPL 系/Other Other/自定义 GPL-3.0
维护活跃度(抽样) 高 高 高 中偏低 高 高(桌面)

* NekoBox README:订阅侧侧重解析出站节点,分流规则等可能被忽略。

4.2 Android 16 / SDK 适配

项目 compileSdk targetSdk minSdk(主路径) Android 16 相对结论
SFA 37 37 24 最优(已越过 API 36)
FlClash 36 36 23 优秀(正式对齐 Android 16)
CMFA 35 35 21 可用,未正式 target 36
NekoBox 35 35 21 可用,跟进偏慢
sing-box / Verge N/A N/A N/A 非 Android App

Android 16 相关关注点(通用):

  • 前台服务类型(specialUse / systemExempted 等)声明是否完整
  • VPN / 网络能力 API、OEM 对 VpnService 的差异
  • 工作资料 / Private Space 与 loopback 不隔离 带来的本地代理风险
  • 通知权限、电池优化、后台限制对长连接的影响

SFA 在公开提交线索中有针对 Android 16 QPR2 connectivity 的 VPN 隐藏相关修复,体现对系统变更的跟进速度。

4.3 代码质量与架构

项目 架构特点 优点 主要短板
SFA 单 App 模块为主 + Compose + libbox + 可选 Xposed 与内核同源;系统 API 新;无默认遥测 Experimental/alpha;Issues 关闭;Clash 用户迁移成本
FlClash Flutter UI + 独立 Android service/core 工程现代化;UI/多端一致;target 36 Flutter+VPN 边界;跨语言栈复杂度
CMFA 经典多模块 + Binder 服务化 进程边界清晰;原生可维护性最强 UI 偏旧;target 35
NekoBox SagerNet 遗产 + 插件 协议/插件丰富 依赖与节奏老化;相对 SFA 落后
sing-box Go 内核分层(protocol/route/dns…) 内核质量顶尖 不是 App
Verge-rev Tauri 桌面 桌面体验与生态强 无 Android

4.4 流畅性(体验)

项目 相对评价 说明
FlClash ★★★★★ Material You、自适应,社区对「好用」反馈多
SFA ★★★★☆ Compose 现代;偏内核/配置向,学习曲线高于 Clash GUI
CMFA ★★★☆☆ 功能完整,界面风格偏经典 CFA
NekoBox ★★★☆☆ 功能密度高,界面相对陈旧
说明 — 本项含推断与口碑,非统一设备帧率/掉帧实测

4.5 稳定性

项目 相对评价 说明
CMFA ★★★★★ Android VpnService 路径久经考验;模块边界清晰
FlClash ★★★★☆ 综合稳定;极端 OEM 场景可能更吃适配
SFA ★★★★☆ 内核强;客户端 Experimental/alpha,版本波动需接受
NekoBox ★★★☆☆ 内核尚可;客户端维护滞后影响长期稳定性预期
sing-box 内核 ★★★★★ 引擎层;不等于某一 GUI 的整体稳定性

4.6 安全性与「后门」判断

4.6.1 后门(恶意隐蔽通道)

对官方 GitHub 源码做权限、依赖、明显外联与敏感功能入口抽样后:

项目 抽样结论 备注
SFA 未见典型后门 Remote Control / Xposed 为显式功能,非隐蔽植入
FlClash 未见典型后门 Crashlytics 默认关闭,属可选遥测
CMFA 未见典型后门 隐私政策文档可能过时,以依赖树为准
NekoBox(GitHub 源码) 未见典型后门 —
NekoBox(Google Play 渠道) 高风险(供应链) 官方 README 明确第三方控制、非开源
sing-box 内核 未见典型后门(有限抽样) —
Verge-rev 未做 Android 专项 桌面项目

「未见」≠「证明不存在」。 只能降低风险,不能替代完整审计与二进制一致性校验。

4.6.2 更现实的高危面(共性 / 个案)

风险类型 影响项目 说明
无鉴权本地 SOCKS/Mixed 入站 多数 xray/sing-box/Clash 系客户端 任意 App 可连 127.0.0.1 旁路分应用代理,探测出口 IP;Private Space 亦难隔离 loopback。社区称 “localhost attack”。
供应链 / 改包 尤其 NekoBox Play 只使用 GitHub Releases / F-Droid 等可信渠道并验签
订阅源投毒 全部 GUI 客户端再干净,恶意订阅仍可劫持流量
可选遥测 FlClash Crashlytics 需用户开启才会收集崩溃相关设备信息
高能力功能 SFA Xposed 隐藏、Remote Control:能力强,需用户理解威胁模型
导出组件 FlClash / SFA 等 DocumentsProvider 等 exported 组件属功能暴露面,需关注授权模型
QUERY_ALL_PACKAGES 多数 Android 客户端 分应用代理所需,属敏感权限但用途合理

4.6.3 遥测 / 第三方 SDK 对照

项目 默认遥测 说明
SFA 无(抽样) 未见 Firebase 等
FlClash 关 可选手动打开 Crashlytics
CMFA 无(抽样) 隐私文档提及的服务未必仍嵌入
NekoBox 无(抽样) 外联多为更新检查 / 文档 / 用户订阅

5. 权限与组件面(Android App 摘要)

以下为 Manifest 抽样摘要,完整列表以各仓库当前文件为准。

5.1 SFA

  • 网络 / FGS / 通知 / 开机自启 / 忽略电池优化
  • Wi‑Fi 状态、本地网络、粗/精/后台定位、相机
  • QUERY_ALL_PACKAGES
  • VPNService(systemExempted)、ProxyService 等
  • BootReceiver exported
  • Xposed Provider exported
  • WorkingDirectory DocumentsProvider exported

5.2 FlClash

  • 网络 / FGS / 通知 / Wi‑Fi / 忽略电池优化
  • QUERY_ALL_PACKAGES、厂商 GET_INSTALLED_APPS
  • VpnService / ProxyService(specialUse)
  • TileService、广播接收(自定义 permission)
  • FilesProvider(Documents)exported

5.3 CMFA

  • FGS / 通知 / 开机自启 / QUERY_ALL_PACKAGES
  • 注释中的 INTERACT_ACROSS_USERS(跨用户/Profile 场景,受保护权限)
  • 经典 CFA 多 Activity + ExternalControl 自动化
  • Binder 远程服务架构

5.4 NekoBox

  • 网络 / FGS(含 systemExempted)/ 通知 / 开机 / WakeLock
  • 相机、QUERY_ALL_PACKAGES
  • signature 级自定义 SERVICE permission
  • 插件 Query、多 Deep Link(clash/sn 等)

6. 综合排名(仅 Android 客户端场景)

排名 项目 一句话 更适合
1 SFA Android 16+ 适配与内核同源最强;无默认遥测 要 sing-box、能接受 Experimental
2 FlClash Clash 生态里体验与 target 36 最佳 要好用 GUI + mihomo + 多端
3 CMFA 原生多模块最扎实、VPN 路径成熟 要可维护原生工程、偏稳定
4 NekoBox 仍可用,但相对 SFA 明显落后 插件/历史习惯;勿用 Play 版
— sing-box 内核标杆,不是 App 引擎/协议能力评估
— Verge-rev 桌面标杆,不是 Android 桌面选型

分项偏好(便于决策)

若你最在意… 更倾向
Android 16 / 新系统行为 SFA > FlClash > CMFA ≈ NekoBox
UI 友好、上手快 FlClash > SFA ≈ CMFA > NekoBox
原生架构可维护、进程隔离 CMFA > SFA > NekoBox > FlClash
与 sing-box 内核同步 SFA ≫ NekoBox
Clash YAML / 规则生态 FlClash / CMFA
降低遥测面 SFA / CMFA / NekoBox(源码渠道);FlClash 保持 Crashlytics 关闭
供应链谨慎 全员只用官方 GitHub/F-Droid;严禁 NekoBox Play 非官方版

7. 选型建议

7.1 推荐组合

  1. sing-box 路线(Android 16 优先)

    • 客户端:SFA
    • 内核:随官方 libbox / sing-box 版本
    • 注意:Experimental、配置以 sing-box 为准
  2. Clash / mihomo 路线(体验优先)

    • 首选 GUI:FlClash(target 36)
    • 备选:CMFA(原生、稳定、可定制包名自编译)
  3. 已在使用 NekoBox

    • 短期可继续用 GitHub/F-Droid 验签包
    • 中长期评估迁移至 SFA
    • 立即停用官方已警告的 Play 第三方包
  4. 桌面

    • 可单独考虑 Verge-rev;不要与 Android 客户端混排决策

7.2 安全使用基线(适用于所有客户端)

  1. 仅从 GitHub Releases / F-Droid 等可信渠道获取,校验签名与哈希。
  2. 假设本地 SOCKS/Mixed 可能被同设备其他 App 访问:尽量启用入站鉴权、关闭不必要入站、理解分应用代理的局限。
  3. 审慎对待订阅源;自建或可信源优先。
  4. FlClash:保持 Crashlytics 关闭,除非你明确接受崩溃上报。
  5. SFA:非必要不启用 Xposed 隐藏与 Remote Control;启用则纳入威胁模型。
  6. 不要期望「开源客户端」单独提供匿名性保证。

8. 与「是否从代码侧分析」的说明

本报告的结论建立在:

  • ✅ 有代码侧抽样(SDK、Manifest、模块、依赖线索、敏感功能入口等)
  • ✅ 有公开信息交叉验证(README 警告、社区已知问题、仓库元数据)
  • ❌ 不是全量代码审计、APK 一致性证明或动态对抗评估

因此:适合作为 内部选型与风险提示文档;若需合规签字级报告,应另立项目做 SBOM、构建再现、二进制比对与运行时基线。


9. 建议的后续加深项(可选)

若需把评估推进到「可归档的技术附录」,建议固定三端 SFA / FlClash / CMFA 继续:

  1. 权限与导出组件矩阵(逐条对照用途与攻击面)
  2. 依赖 SBOM(Gradle/Flutter lockfile)
  3. 关键路径代码走读:VpnService 生命周期、配置/订阅拉取、本地入站默认值
  4. 官方 APK ↔ 源码构建 产物比对(有构建环境时)
  5. Android 16 真机冒烟:VPN 建立/切换网络/分应用/睡眠唤醒/OEM 杀后台

10. 附录:抽样时关键文件索引

项目 关键路径(示例)
SFA gradle.properties,app/build.gradle.kts,version.properties,app/src/main/AndroidManifest.xml,.../RemoteControlManager.kt,.../bg/VPNService.kt,.../xposed/**
FlClash android/gradle/libs.versions.toml,`android/app
CMFA 根 build.gradle.kts(SDK/版本),app/src/main/AndroidManifest.xml,service/.../remote/*.kt,PRIVACY_POLICY.md
NekoBox buildSrc/.../Helpers.kt,nb4a.properties,app/src/main/AndroidManifest.xml,README.md(Play 警告)
sing-box Go 模块树(protocol/、route/、experimental/ 等)
Verge-rev 仅元数据确认桌面定位,未做 Android 源码对比

附录:本地评估克隆目录(若存在)

D:\Tools Test\
  ├── FlClash\
  ├── ClashMetaForAndroid\
  ├── NekoBoxForAndroid\
  ├── sing-box\
  └── sing-box-for-android\

11. 修订记录

日期 说明
2026-09-30 初版:纳入 SFA,完成六仓库口径澄清与 Android 维度对比;明确方法边界与后门结论表述

文档结束。

0 条回复
添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: SteveRogers
发布: 2026-09-30
点赞: 0
回复: 0