NekoBox 分应用不是给每个 App 填一个代理端口。Android 上先由 VPN 接管流量,再按 App 归属决定是否进入代理链路。选错名单模式,或者选错包名,表现就是「我明明勾了,但没生效」。
NekoBox for Android 基于 sing-box 等工具链。sing-box 的路由文档里,Android 分应用相关字段是 package_name 和 package_name_regex,不是桌面系统常见的 process_name。
你现在选的是代理名单还是排除名单?
先看 App Routing 的模式,不要一上来就怀疑订阅或规则。两个模式刚好相反,选错后界面看起来没问题,实际方向完全反了。
| 模式 | 实际效果 | 常见误用 |
|---|---|---|
| 只代理指定 App | 只有勾选的 App 进入代理链路 | 想排除某个 App,却选了这个模式 |
| 排除指定 App | 勾选的 App 不进入代理链路 | 想只代理某个 App,却选了这个模式 |
| 全部 App | 不做分应用筛选 | 误以为规则仍按 App 生效 |
保存 App Routing 后,要强制停止目标 App 再重新打开。很多 App 会保留长连接,改完名单后旧连接不一定马上重建。
为什么包名比图标更可靠?
双开、工作资料、平行空间都会制造相似图标。图标一样,包名不一定一样;包名一样,也可能在不同 Android user 下面对应不同实例。
用 adb 看包名:
adb shell pm list packages | grep -i chrome
adb shell dumpsys package com.android.chrome | grep userId
sing-box Android 路由字段示例:
{
"route": {
"rules": [
{
"package_name": ["com.android.chrome"],
"outbound": "proxy"
}
],
"final": "direct"
}
}
process_name、process_path 这些字段在 sing-box 文档里标注为 Linux、Windows、macOS 支持。排查 Android 分应用时,先把注意力放在 package_name。
工作资料和双开 App 怎么查?
工作资料会把 App 放在另一个用户空间。NekoBox 列表里可能看不到主空间同名 App,或者看到的是另一个实例。
排查时做两件事:
- 在系统设置里确认目标 App 属于主空间还是工作资料。
- 用 adb 看不同 user 下的包:
adb shell pm list users
adb shell pm list packages --user 0 | grep 包名
adb shell pm list packages --user 10 | grep 包名
双开工具生成的包名可能带后缀,也可能使用独立 UID。只按应用图标勾选,很容易选错实例。
Private DNS 要不要先关掉?
排查时建议先关一次。Android Private DNS 会让 DNS 请求走系统自己的加密解析,你可能看到 App 流量进了 NekoBox,但域名没有出现在 NekoBox 记录里。
关闭路径一般是:系统设置 → 网络和互联网 → Private DNS → Off。不同 Android 厂商翻译不一样,关键词通常是 Private DNS 或私人 DNS。
关闭后重新连接 NekoBox,再打开目标 App。此时看连接记录里是否出现目标域名和对应出站,比只看网页能不能打开更可靠。
多设备共用配置时,订阅要放在哪里?
手机只做 App Routing,桌面还要跑 Clash / Singbox / V2Ray 时,最容易乱的是同一份订阅被不同客户端改写成不同格式。Android 端排错时先保留一份干净配置,桌面端另存副本,避免两个客户端同时改规则。
如果你要让手机和桌面沿用同一套客户端配置,可以用兼容 Clash / Singbox / V2Ray 的订阅作为配置来源;NekoBox 分应用是否命中,仍然要回到 Android 包名和连接记录确认。
怎么确认分应用已经生效?
不要用「网页能打开」当唯一标准。按下面 4 个信号看,至少命中前 3 个再继续调规则:
- Android 状态栏有 VPN 标识。
- NekoBox 连接记录出现目标 App 的域名。
- 目标 App 命中的 outbound 和你设置一致。
- 未勾选的 App 没有进入同一条链路。
如果第 1 条没有出现,先回到 NekoBox 连接状态;如果第 2 条没有出现,再查 App Routing、包名、工作资料和 Private DNS。
相关阅读
FAQ
NekoBox 分应用为什么选了 App 还是不生效?
多数是名单模式选反了:想只代理某个 App,却用了排除名单;或 App 在工作资料、双开空间里,实际包名和主空间不同。先查包名,再看连接记录。
Android 上应该按进程名还是包名匹配?
Android 分应用优先看 package_name 和 package_name_regex。sing-box 文档里的 process_name 主要面向 Linux、Windows、macOS,不适合作为 Android 排查起点。
工作资料里的 App 为什么不在列表?
工作资料会把 App 放进隔离用户空间,列表里可能显示另一个实例,也可能看不到主空间同名 App。先确认 App 属于哪个用户空间,再核对包名。
Private DNS 会影响分应用吗?
会影响 DNS 观察结果。App 流量可能已经进入 NekoBox,但域名解析被 Android Private DNS 接管,连接记录看起来就像没命中。排错时先临时关闭它。