📱 Android 14 VPNService 权限收紧后,CMFA 全局代理的误代理率在生产环境达 18%。采用 Work Profile 隔离 + 分应用 whitelist 策略后,误代理率可降至 2% 以下。本文记录与桌面共用 rule-providers 的同步方案、QR 配置下发安全流程。客户端获取见 运维版客户端清单。
架构:VpnService 而非 root
CMFA 不依赖 root。启动时调用 VpnService.Builder 建立 TUN 接口,由内核 mihomo 处理 IP 包。Android 14+ 对 VPN 通知、前台服务类型审查更严,需保持 CMFA 在「受电池优化豁免」列表中,避免后台被杀。
Profile 与配置结构
CMFA 支持多 Profile,每个对应一份 config.yaml 或远程 URL。企业建议:
- 主 Profile:完整规则 + 订阅节点(HTTPS 托管)
- 备用 Profile:仅 DIRECT + 内网规则,用于节点全挂应急
规则写法与桌面 mihomo 一致,参见 规则工程文。注意移动端可适当裁剪 GEOSITE 类别以节省内存与电量。
分应用代理(Per-App Proxy)
白名单模式
设置 → 访问控制 → 仅选中需走代理的应用(如浏览器、Slack)。银行类 App 不勾选,避免风控触发。此模式不走全局 TUN,未选中应用直连。
黑名单模式
全局代理,排除国内 App(微信、支付宝)。需维护包名列表,系统更新后可能变化。
# 日志中查看包名 adb logcat | grep "ClashMeta"
rule-providers 远程同步
与 Linux 网关共用同一份 rule-provider URL,保证分流逻辑一致:
rule-providers:
corp-direct:
type: http
behavior: classical
url: https://rules.corp.example/direct.yaml
path: ./rules/corp-direct.yaml
interval: 43200
CMFA 在 Wi-Fi 下按 interval 更新;蜂窝网络可在设置中关闭「移动数据下更新规则」以省流量。
Work Profile 部署
通过 MDM(如 Google Workspace)在工作资料夹安装 CMFA,与个人空间隔离。配置 URL 指向内网 HTTPS,证书需用户信任企业 CA。工作资料夹内应用默认走工作 VPN,个人微信不受影响。
🔐 配置 URL 若含 Secret 或订阅 token,必须 HTTPS + 短期 token 轮换。参见 API 与配置安全文。
QR 码下发流程
- 内网生成一次性配置链接(含 JWT,有效期 15 分钟)
- CMFA → 新建 Profile → 扫描二维码
- 用户确认后删除 QR 展示页面,防止拍照泄露
勿在公共场合展示含订阅地址的静态 QR。
与桌面协同
同一用户在 Mac 用 Verge TUN、手机用 CMFA 时,建议 rule-providers 同源。出站协议在弱网下的选型见 QUIC 文。内核行为差异见 基准测试(移动端 RSS 通常低 40%)。
常见问题
与其他 VPN 冲突
Android 同时仅允许一个 VpnService。需先断开其他 VPN 再启 CMFA。
分应用失效
确认未开启「始终-on VPN」的其他应用;检查 MIUI/ColorOS 是否额外限制后台。
耗电偏高
降低 url-test 频率;关闭 find-process-mode(Android 上本即 off);使用分应用白名单减少 TUN 流量。