VpnService 授权到底允许了什么

Android 版 Clash 客户端开启代理后,通常会调用系统提供的 VpnService 接口。系统随即显示“连接请求”或“此应用想要设置 VPN 连接”弹窗,状态栏也会出现钥匙或 VPN 标记。这项授权不是订阅登录权限,也不是传统企业 VPN 的账号验证,而是允许客户端创建一个本地虚拟网络接口。

虚拟接口建立后,Android 会把选定应用的 IP 流量交给客户端。Clash 内核再依据配置中的 rules、策略组和节点决定出口:命中 DIRECT 的连接直接访问,命中代理策略的连接通过所选节点转发,命中 REJECT 的请求则被拦截。这个处理方式接近桌面端的 TUN 模式,因此浏览器、即时通信工具和不支持手动代理的应用也能进入规则分流。

授权弹窗中的三个关键事实

  • 同一用户空间通常只能保持一个 VPN。如果系统已经连接公司 VPN、WireGuard、广告过滤器或另一款代理工具,启动 Clash 时会断开旧连接,或者直接提示 VPN 被其他应用占用。
  • 授权按应用记录。首次启用、重新安装客户端、清除应用数据或更换签名不同的安装包后,系统可能再次询问。
  • 系统钥匙图标属于正常状态。它表示 VpnService 正在运行,并不能单独证明节点可用。节点连通性仍要通过延迟测试和实际网页访问确认。

本地 VPN 与远端代理节点的关系

Android 设置页把这条连接统一归入“VPN”,但 VpnService 本身只负责在设备内接收流量。真正的远端连接仍由 Clash 配置里的代理节点建立。换句话说,看到 VPN 已连接,只能说明虚拟接口已经创建;若订阅过期、节点超时、DNS 配置错误或规则选错,应用依然可能无法访问网络。

部分客户端还提供“仅代理模式”或本地 HTTP、SOCKS 端口。常见端口包括 HTTP 7890、SOCKS 7891 和混合端口 7890,具体值以配置文件的 portsocks-portmixed-port 为准。手动代理只覆盖明确使用该端口的应用,VpnService 模式则更适合整机分流,两者不要在不清楚流量路径时重复开启。

正确处理授权弹窗与首次连接

首次启动的推荐顺序

  1. 先导入可用订阅或本地 YAML 配置,并执行一次配置更新。
  2. 进入代理或策略组页面,选择一个可用节点;延迟测试能返回数值不等于所有网站都可访问,但可先排除完全失联的节点。
  3. 返回客户端首页,开启“服务”“连接”或“启动”开关,不同客户端的按钮名称可能略有差异。
  4. 系统出现 VPN 连接请求时核对应用名称,然后选择“允许”。
  5. 等待状态栏出现 VPN 标记,再访问一个普通网页和一个需要代理规则的网站,分别检查直连与代理路径。

使用 Clash Meta(mihomo)内核的 Android 客户端时,界面可能把运行方式写成“VPN 模式”“TUN”或“服务模式”。这些名称的侧重点不同,但只要最终调用 Android VpnService,系统都会显示 VPN 授权。部分版本还允许设置绕过应用、仅代理选中应用、IPv6 路由和系统 DNS 接管,首次连接时建议先保持默认值,确认基本链路可用后再逐项调整。

点了允许却马上断开

先打开 Android 的系统 VPN 页面,检查是否存在自动重连的其他 VPN。原生 Android 14、Android 15 常见路径是「设置」→「网络和互联网」→「VPN」;三星 One UI 常见路径是「设置」→「连接」→「更多连接设置」→「VPN」;国产系统也可能放在「设置」→「更多连接」→「VPN」。断开旧连接后,再回到 Clash 重新启动服务。

若没有其他 VPN,占用问题通常来自“始终开启的 VPN”。点开旧 VPN 旁边的设置按钮,关闭“始终开启的 VPN”和“屏蔽未使用 VPN 的连接”。后一个选项也被称为 VPN 锁定或阻止无 VPN 连接;它会在指定 VPN 没有成功建立时切断全部网络,排障阶段应先关闭,确认配置稳定后再按实际需求启用。

Android 13 及以上的通知权限

Android 13 引入运行时通知权限。VpnService 授权与通知权限是两项独立设置,但客户端通常需要以前台服务方式保持运行,并显示持续通知。首次启动时应允许客户端发送通知,这样可以看到运行状态、当前上下行速度和停止按钮。若曾拒绝,可进入「设置」→「应用」→「Clash 客户端」→「通知」→“允许通知”重新开启。

通知被关闭时,某些系统仍允许前台服务运行,但用户无法直观看到状态;另一些深度定制系统会更积极地限制不可见的后台任务。因此,排查“锁屏后几分钟断开”时,通知权限、省电策略和自启动权限需要一起检查。

省电白名单为什么影响代理稳定性

Clash Android 连接期间需要持续维护虚拟网卡、DNS 查询、TCP 或 UDP 会话以及节点心跳。屏幕熄灭后,Android 的 Doze 模式会延后普通后台任务;国产系统还会叠加应用冻结、自动清理和后台耗电管理。客户端进程一旦被冻结,现象可能是 VPN 图标仍短暂存在,但新连接无法建立,随后系统才彻底移除 VPN。

典型症状与判断依据

现象 优先检查项 判断方法
锁屏 5 至 15 分钟后断开 电池优化、后台活动 亮屏期间稳定,熄屏后固定时间失效
清理最近任务后立即断开 任务锁定、自启动 不清理任务时连接正常
重启手机后没有恢复 开机启动、自动启动 手动打开客户端后可以连接
只在移动网络下失效 后台数据、流量节省程序 Wi-Fi 正常,切换 4G 或 5G 后停止传输
VPN 图标存在但网页超时 节点、DNS、内核状态 重启服务短暂恢复,或切换节点后恢复

加入白名单的目标不是让客户端无限制占用资源,而是避免系统把持续网络服务误判为可延迟的普通后台任务。正常待机时,实际耗电同时受节点协议、信号强度、规则复杂度、DNS 模式和流量大小影响。弱 4G 信号下维持连接往往比稳定 Wi-Fi 更耗电,不能只根据系统电量页面里的单次排名判断。

通用 Android 设置清单

  • 在「设置」→「应用」→「Clash 客户端」→「应用电池用量」中选择“无限制”或“允许后台活动”。
  • 在「设置」→「应用」→「特殊应用权限」→「电池优化」中切换到“所有应用”,找到客户端并选择“不优化”。
  • 在「设置」→「应用」→「Clash 客户端」→「移动数据和 Wi-Fi」中允许后台数据,并在需要时允许“不受限流量”。
  • 开启客户端通知,保留前台服务的持续通知。
  • 如果系统提供自动启动或关联启动权限,允许客户端自启动。
  • 在最近任务界面锁定客户端,避免一键清理结束进程。

菜单名称会随 Android 大版本和厂商系统更新而变化。找不到入口时,可直接在系统设置顶部搜索“电池优化”“自启动”“后台活动”或“不受限”。设置完成后应锁屏等待至少 20 分钟,再分别用 Wi-Fi 和移动网络测试,不要只看 VPN 图标。

小米、华为、OPPO、vivo 等系统的设置路径

小米 HyperOS 与 MIUI

  1. 进入「设置」→「应用设置」→「应用管理」→选择 Clash 客户端→「省电策略」,设为“无限制”。
  2. 进入「设置」→「应用设置」→「授权管理」→「自启动管理」,开启对应客户端。
  3. 打开最近任务,上滑或长按客户端卡片,选择锁形按钮固定任务。不同桌面手势下也可能是下拉卡片后点锁。
  4. 进入应用详情页的「流量使用情况」,确认 WLAN、移动数据和后台联网均已允许。

HyperOS 某些版本把省电入口放在「设置」→「电量与性能」→「应用智能省电」。如果系统仍在锁屏后终止服务,可在该页面再次确认目标应用为“无限制”,并关闭针对该应用的暂停后台活动选项。

华为 HarmonyOS 与 EMUI

  1. 进入「设置」→「应用和服务」→「应用启动管理」。
  2. 找到 Clash 客户端,关闭“自动管理”。
  3. 在弹出的手动管理项目中开启“允许自启动”“允许关联启动”和“允许后台活动”。
  4. 进入「设置」→「电池」→「更多电池设置」,检查休眠时网络连接相关选项。
  5. 进入「设置」→「移动网络」→「流量管理」→「应用联网」,允许客户端使用移动数据与 WLAN。

如果只开启“允许自启动”而没有开启“允许后台活动”,客户端仍可能在锁屏后被冻结。三项权限应一起核对。系统管家执行一键优化后也可能重新给出耗电提示,更新系统后建议复查一次应用启动管理。

OPPO ColorOS 与一加 OxygenOS

  1. 进入「设置」→「应用」→「应用管理」→选择客户端→「耗电管理」。
  2. 开启“允许前台活动”“允许后台活动”和“允许自动启动”;部分版本显示为“允许应用自启动”。
  3. 进入「设置」→「电池」→「更多设置」→「优化电池使用」,找到客户端并选择“不优化”。
  4. 在最近任务中点客户端卡片右上角菜单,选择“锁定”。
  5. 在应用的「流量使用情况」页面允许后台移动数据。

ColorOS 的“自动优化耗电”可能在长时间未使用应用后重新收紧后台权限。如果断开问题隔几天再次出现,先检查耗电管理是否仍为允许后台活动,而不是反复删除和导入订阅。

vivo OriginOS 与 Funtouch OS

  1. 进入「设置」→「应用与权限」→「权限管理」→「自启动」,开启客户端。
  2. 进入「设置」→「电池」→「后台耗电管理」,选择客户端并设为“允许后台高耗电”。
  3. 打开最近任务,找到客户端卡片并选择“锁定”。
  4. 进入「i 管家」→「流量管理」→「联网管理」,允许 WLAN、数据网络与后台联网。

“允许后台高耗电”是 vivo 系统中较关键的一项。名称听起来像性能模式,实际作用是允许持续运行的网络服务在锁屏后继续工作。若只设置自启动,正在运行的 VpnService 仍可能被后台策略停止。

荣耀 MagicOS

  1. 进入「设置」→「应用」→「应用启动管理」。
  2. 关闭客户端的自动管理,手动开启自启动、关联启动与后台活动。
  3. 进入「设置」→「电池」→「更多电池设置」,检查休眠联网设置。
  4. 在应用详情的「流量使用情况」中允许后台数据。

MagicOS 的应用启动管理逻辑与部分 EMUI 版本接近。升级系统后如果服务频繁退出,应重新打开该页面确认手动管理状态,因为系统迁移或应用重新安装可能恢复默认策略。

三星 One UI

  1. 进入「设置」→「电池」→「后台使用限制」→「从不自动休眠的应用」,添加 Clash 客户端。
  2. 进入「设置」→「应用程序」→选择客户端→「电池」,选择“不受限制”。
  3. 进入「设置」→「连接」→「数据使用量」→「允许应用使用数据流量」,确认后台数据可用。
  4. 检查「设置」→「连接」→「更多连接设置」→「VPN」,排除其他始终开启的 VPN。

分应用代理、DNS 与后台断连的联动排查

先确认分应用范围

很多 Android 客户端允许设置“绕过所选应用”或“仅代理所选应用”。两种模式含义相反:前者让列表内应用直接联网,后者只把列表内应用送入 VpnService。若浏览器能访问而某个应用始终直连,先检查该应用是否被排除,不要立即修改规则文件。

系统组件也会影响登录和推送。例如某些应用通过外部浏览器完成 OAuth 登录,主应用进入代理而浏览器被绕过时,登录页与回调可能走不同网络。排障时可临时关闭分应用过滤,让全部应用进入 VPN;确认正常后再逐个加入绕过名单。

VPN 已连接但域名打不开

先用 IP 地址与域名分别测试。如果节点延迟有结果、IP 连接正常、域名请求超时,重点检查 DNS。使用 mihomo 内核时,配置常见字段包括 dns.enablenameserverfallbackenhanced-modefake-ip-range。YAML 缩进必须一致,列表项前的短横线也不能遗漏。

dns:
  enable: true
  ipv6: false
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - 1.1.1.1
    - 8.8.8.8

这段内容只展示字段结构,不代表所有网络都应固定使用同一组 DNS。订阅提供方若已经给出完整 DNS 段,应优先保留其配置。Android 的“私人 DNS”也可能与客户端 DNS 接管相互影响;出现解析异常时,可暂时进入「设置」→「网络和互联网」→「私人 DNS」,改为“自动”进行对照测试。

用系统信息判断进程是否被终止

具备电脑调试条件时,可通过 ADB 查看 VPN 与进程状态。先在开发者选项开启 USB 调试,再运行以下命令。不同 Android 版本输出字段会变化,重点查看当前 VPN 包名、前台服务和进程是否仍存在。

adb shell dumpsys connectivity
adb shell dumpsys activity services
adb shell dumpsys deviceidle
adb shell pidof 客户端包名

如果锁屏前 pidof 能返回进程编号,锁屏后返回空值,通常是进程被系统结束;如果进程存在、VPN 接口也存在,但流量不再增长,则应检查节点会话、DNS 或内核日志。日志中出现 timeout 多指向连接超时,出现配置解析错误则应回到 YAML 检查字段与缩进。

稳定运行设置与日常检查

完成授权和白名单设置后,可做一次固定流程测试:连接 Wi-Fi,启动服务并访问网页;锁屏 20 分钟后再次测试;切换到 4G 或 5G,等待 30 秒后测试;从最近任务返回客户端,确认服务状态与流量计数仍在更新。若四个步骤都正常,说明 VpnService、后台权限和网络切换基本稳定。

建议保留的系统权限

  • VPN 连接授权,用于建立本地虚拟网络接口。
  • 通知权限,用于显示前台服务状态和运行控制。
  • 后台活动与电池优化豁免,用于锁屏期间维持连接。
  • 自启动权限,用于系统重启后按客户端设置恢复服务。
  • 后台数据权限,用于移动网络和流量节省模式下继续联网。

不稳定时不要同时修改所有选项

一次只调整一个变量,并记录测试时间。先关闭其他 VPN,再设置电池为“不受限制”,然后测试锁屏;仍然断开时再开启自启动和任务锁定。网络可用但个别网站异常时,改查规则和 DNS,不要继续叠加系统权限。这样可以区分系统杀后台、节点故障和配置错误。

客户端更新、系统大版本升级或重新安装后,应复查 VPN 授权、通知、电池策略和自启动状态。Android 可能保留部分权限,也可能按新应用重新管理。订阅更新通常不会改变系统权限,但可能修改代理组名称、DNS 段和规则顺序,更新后若只有特定应用异常,应先比较配置变化。

完整的稳定方案可以概括为四点:让当前 Clash 客户端独占系统 VPN;允许前台服务显示通知;把客户端加入电池与后台运行白名单;分别验证 Wi-Fi、移动网络和锁屏场景。VPN 图标只是起点,持续传输、正确分流和稳定解析才是最终检查标准。