NekoBox Android 的 VPN 权限和 DNS 异常,优先查系统层,不要一上来删订阅。点 START 失败,多半是旧 VPN 配置、另一个 Android VPNService 应用或系统权限弹窗被拦;已连接但网页打不开,常见是 Private DNS、TUN DNS、分应用代理或电池限制互相打架。先按本文把系统入口走完,再决定要不要重导入配置。

本篇只针对 NekoBoxForAndroid 的 Android 版。GitHub 上游说明它是基于 sing-box 的 Android 通用代理工具,支持常见节点格式和 sing-box outbound;但订阅里的分流规则等信息可能不会完整保留。需要换订阅来源时,只选支持 sing-box / ClashMeta / v2rayN 常见格式的配套订阅线路,并在导出页面选 NekoBox 或 sing-box 相关格式。

这四类现象不要混在一起修

现象更可能的层级当下先看哪里
点 START 没反应,或没有系统授权弹窗Android VPNService 授权系统设置 -> 网络和互联网 -> VPN,删除旧 NekoBox 记录
点 START 后一两秒断开旧 VPN、路由、TUN 创建失败NekoBox Logs 里的 permission、tun、route 字样
状态显示 connected,但浏览器无法打开网页DNS、分应用代理、节点 outboundPrivate DNS、NekoBox DNS 设置、日志里的 dns query
锁屏几分钟后断开电池限制、厂商后台策略应用电池用量、自启动、后台运行权限

Android 官方 VPN 文档里有两个事实会影响 NekoBox:首次启用 VPN 应用时系统会要求用户确认授权;同一个用户或工作资料下通常只有一个活跃 VPN service,新服务启动会替换旧服务。也就是说,WireGuard、Karing、v2rayNG、Hiddify、浏览器内置 VPN 类能力都可能抢同一个系统入口。

Android 设置入口表

不同品牌会改菜单名,但设置项大致对应表格里的位置。排查时按表格从上往下做,别在同一轮里又换节点又改 DNS,又重装 APK。

要检查的对象Pixel / 原生 Android 路径常见国产系统路径建议动作
VPN 配置设置 -> 网络和互联网 -> VPN设置 -> 连接与共享 / 更多连接 -> VPN忘记旧 NekoBox、旧 Clash、旧 WireGuard 配置,只保留当前要测的一个
私有 DNS设置 -> 网络和互联网 -> 私有 DNS设置 -> WLAN / 连接 -> 私有 DNS临时改成自动;若仍失败再改关闭,验证后再恢复原主机名
NekoBox 电池设置 -> 应用 -> NekoBox -> 电池应用管理 -> NekoBox -> 电池 / 省电策略改成不受限制,允许后台运行
通知设置 -> 应用 -> NekoBox -> 通知通知与状态栏 -> NekoBox允许前台服务通知,避免系统把后台 VPN 当作静默任务处理
分应用代理NekoBox 内设置NekoBox 内设置先关闭 allow list / block list,确认全局可用后再恢复
安装来源GitHub Release APK文件管理器安装包记录使用 MatsuriDayo/NekoBoxForAndroid Release,不混用来路不明 APK

点 START 前,把旧 VPN 配置清掉

NekoBox 第一次接管流量时会触发 Android 的 VPN 授权弹窗。你点过“拒绝”、卸载后重装、从 Google Play 版换到 GitHub Release 版,或者之前装过同类客户端,系统里都可能留有旧记录。

处理顺序:

  1. 退出 NekoBox,不要让它在后台尝试重连。
  2. 打开 Android 的 VPN 页面,删除不用的 NekoBox、Karing、WireGuard、Hiddify、v2rayNG 配置。
  3. 关闭其他正在运行的 VPN 类应用。
  4. 重新打开 NekoBox,点 START,看到系统授权弹窗时选择允许。
  5. 若系统直接返回失败,进入 NekoBox 的 Logs 页面,看第一条红色错误。

如果手机有工作资料,个人资料和工作资料可能各有自己的 VPN 状态。公司设备或 MDM 管理设备还可能禁用用户自建 VPN,这类情况不是 NekoBox 配置能修的。

DNS 异常先测 Private DNS,再看 NekoBox DNS

“connected 但打不开网页”最容易被误判成节点失效。NekoBox 走 TUN 后,Android 系统 DNS、Private DNS、NekoBox 内部 DNS 和订阅里的 route / dns 字段会同时参与结果。

按这个顺序缩小范围:

  1. Android 私有 DNS 改为自动,重新连接 NekoBox。
  2. 仍失败时,把私有 DNS 临时关闭,再测一次。
  3. NekoBox 内关闭复杂分流或分应用代理,先让所有 App 走同一条路径。
  4. 打开 Logs,观察是否有 dnstimeoutno routerefusedremote error
  5. 若只有某个 App 失败,回到分应用代理;若所有域名都失败,再看 TUN 和 DNS。

Private DNS 使用 DoT 主机名时,系统会先尝试连到指定 DNS 服务。这个连接如果被 TUN 路由带进 NekoBox,又被 NekoBox 的 DNS 规则转回系统,就会出现循环或超时。排查阶段把它临时改掉,是为了确认问题是否来自 DNS 链路,不是要求长期不用 Private DNS。

电池限制会让 connected 变成假状态

不少 Android 厂商会在锁屏后收紧后台任务。NekoBox 这种需要保持前台服务通知、TUN 接口和 sing-box 核心运行的应用,被省电策略处理后,界面可能还停在 connected,但实际流量已经断了。

建议这样设:

品牌/系统常见入口需要打开或放开的项
Pixel / 原生 Android应用信息 -> 电池不受限制、允许通知
Samsung One UI应用信息 -> 电池不受限制,不放入睡眠应用
小米 HyperOS / MIUI应用信息 -> 省电策略无限制、自启动、后台运行
OPPO / OnePlus / realme电池 -> 更多设置 / 应用耗电管理允许后台运行、允许自启动
vivo / iQOO / OriginOS电池 -> 后台耗电管理允许后台高耗电
荣耀 / 华为电池 -> 应用启动管理手动管理并允许后台活动

测试时不要只看 NekoBox 首页状态。锁屏 10 分钟后,打开浏览器访问同一个测试页面,再回 NekoBox 看 Logs 是否还在刷新;如果日志停在锁屏前,电池策略仍在拦。

订阅只导入节点,规则缺失也会像 DNS 故障

NekoBoxForAndroid 的 README 写得很清楚:它支持一些广泛使用的订阅格式以及 sing-box outbound,但只解析 outbound,也就是节点;分流规则等信息可能被忽略。很多 Clash YAML 里 DNS、rule-providers、proxy-groups 写得很复杂,导入到 NekoBox 后不一定等价。

出现这些情况,要回到订阅格式:

  • 节点列表有了,但策略组、规则组没有按原客户端出现。
  • 只有直连 App 能访问,浏览器或商店类 App 失败。
  • Logs 里没有权限错误,却反复出现 route / dns 不命中。
  • 同一订阅在 Clash Verge Rev 正常,在 NekoBox 表现不同。

做法是换成 NekoBox / sing-box 友好的导出格式,或者只用 NekoBox 做节点连接,把复杂分流留给更适合 YAML 策略组的客户端。

验证是否修好:三步就够

不要用“感觉变快了”当结论。排查完成后,用同一个 Wi-Fi、同一个节点、同一组 App 做这三步:

  1. 系统状态:Android 状态栏出现 VPN key 图标;VPN 页面只显示 NekoBox 一个活跃配置。
  2. DNS 结果:浏览器打开 https://1.1.1.1/help 或你常用的 DNS 检测页,能看到 DNS 请求有返回;把 Private DNS 恢复原设置后再测一次。
  3. 应用路径:Chrome、Telegram、YouTube 或你实际要用的 App 各打开一次;如果只某个 App 失败,再查 NekoBox 的分应用代理。

还有一个低成本交叉测试:切到移动数据重新连一次。如果 Wi-Fi 下失败、移动数据下正常,多半是当前 Wi-Fi 的 DNS、网关或路由器策略;如果两边都失败,再回到 NekoBox 授权、TUN 和订阅格式。

哪些 NekoBox Android 场景要另开一条线查

此篇没有覆盖 root 防火墙、企业 MDM、Android TV 盒子、国产系统精简 ROM、Magisk 模块和旁路由接管 DNS 的场景。NekoBox 也不是所有协议新参数的第一适配客户端;如果你依赖最新 sing-box 字段,先看 NekoBoxForAndroid Release 是否已经跟进。

上游 GitHub Release 页面显示最新版本为 1.4.2,维护节奏比活跃期慢。老用户继续用 NekoBox 没问题;新设备如果反复遇到 DNS 和后台保活问题,可以把同一订阅导出给 SFA、Karing 或 Hiddify 做对照。

Android 端继续查哪些客户端问题