TL;DR:sing-box Android VPN 权限失败,先别急着改订阅。Android 的 VpnService 是系统级单例,另一个 VPN App、始终开启 VPN、工作资料策略、电池限制,都会让 SFA 看起来像「点了没反应」。先把系统层排干净,再看配置。
先按现象分流
| 现象 | 优先检查 |
|---|---|
| 点启动没有系统弹窗 | 旧授权、其它 VPN、工作资料限制 |
| 弹窗后仍启动失败 | 配置语法、入站端口、DNS 字段 |
| 锁屏后自动断开 | 电池优化、后台启动、通知权限 |
| 只在移动网络失败 | 私有 DNS、系统代理、运营商 IPv6 |
SFA 依赖 Android VpnService。它不是普通网络权限,系统会单独弹出「连接请求」。如果你之前点过拒绝,有些 ROM 不会再次弹窗,需要到系统 VPN 页面清掉旧记录。
最小排查顺序
- 退出 Clash、V2RayNG、WireGuard、公司 VPN 等其它网络扩展应用。
- 打开系统设置 → VPN,删除 SFA 的旧条目。
- 重启手机,再打开 SFA 手动启动。
- 若仍无弹窗,检查是否在工作资料、儿童模式或企业管控环境。
- 若弹窗出现但启动即停,导出日志,看第一条 error 是否指向配置字段。
这里最容易误判的是「权限失败」和「配置失败」。权限失败通常连隧道图标都没有;配置失败则会短暂出现启动状态,然后立刻回落。
Android 机型上的后台设置
| 设置项 | 建议 |
|---|---|
| 电池 | 设为不限制或允许后台运行 |
| 通知 | 允许常驻通知,便于系统保活 |
| 自启动 | 小米、OPPO、vivo 机型建议打开 |
| 私有 DNS | 排障时先设为自动 |
如果你需要新订阅做交叉测试,只放一个软链接即可:可选择兼容 Clash / Singbox / V2Ray 的订阅,导出时明确选 sing-box/SFA 格式。
配置层也要看
权限正常但启动失败,常见是 inbounds、dns 或 route 字段不被当前内核接受。SFA 跟随 sing-box 内核更新,旧 App 读新配置、新 App 读旧转换器输出,都可能出错。先升级 App,再用官方文档里的最小 JSON 测试。如果最小配置能启动,问题就在你的远程 profile。
最后检查清单
- 系统 VPN 页面只有 SFA 一个活动配置。
- SFA 已允许通知、后台运行和自启动。
- 排障阶段关闭始终开启 VPN。
- App 与订阅导出格式同属 sing-box 生态。
- 日志里没有 JSON parse、unknown field、listen failed。
排查时的优先级
遇到 sing-box Android VPN 权限失败 相关问题时,先固定一个可复现样本,再改配置。不要凭感觉同时换设备、地区、账号和客户端。对“使用 SFA 或 sing-box Android 客户端的用户”来说,最省时间的方法是按“现象、范围、最近变更、可回滚动作”四步记录。
| 步骤 | 要确认什么 |
|---|---|
| 现象 | 是报错、限速、空白页、扣费异常,还是权限不足 |
| 范围 | 只影响一个账号/设备,还是同一批任务都失败 |
| 变更 | 最近是否改过版本、地区、套餐、密钥或规则 |
| 回滚 | 能否回到上一个正常状态并复测 |
什么时候停止继续试错
如果同一问题连续试了三种方案仍无改善,先停下来整理证据。把错误截图、时间、账号地区、请求 id、订单号或配置片段放在一起,再决定是联系官方支持、换备用路径,还是回退到旧方案。客户端、协议、规则和网络工具配置 里的很多问题不是单点开关能解决,复盘记录比继续乱改更重要。