Clash 移动端耗电异常排查与后台运行策略优化

手机端 Clash 耗电偏高通常与后台保活、全局路由和日志级别有关,本文给出分平台的省电设置与排查顺序。

先定性:电量统计里的数字被高估了

关键词:耗电归因。Android 和 iOS 的电量统计有一个共同特点:凡是经过 VPN 通道的流量,产生的网络耗电都记在 VPN 应用名下。Clash 在移动端以 VPN 形态工作,Android 走 VpnService 接口,iOS 走 Network Extension,微信视频、短视频、地图导航走过的每一字节流量都从 Clash 的隧道里过一遍,基带唤醒与射频发射的耗电随之全部归到 Clash 头上。进程本身的 CPU 消耗,往往只占统计数字的零头。

判断真异常看两个指标。Android 进「设置 → 电池 → 应用耗电排行」,点开 Clash 条目看 CPU 前台与后台活动时间;iOS 进「设置 → 电池」,看 Clash 一行下面的后台活动时长。规则模式常驻一整天,Clash 自身 CPU 时间通常只有几分钟,占比在 5% 上下浮动属于正常水平。占比连续几天超过 15%,且 CPU 时间以小时计,才需要往下排查。

心理预期也要排除。代理常驻之后使用习惯往往同步变化,外网内容看得多了,续航自然缩短。严格做法是做半天对照:关掉 Clash,保持相近的使用强度,对比亮屏时间与待机掉电,先确认差值真实存在,再决定要不要折腾设置。

读数口径

电量排行里的百分比是「归因占比」而非「进程功耗」。看 Clash 是否异常,以 CPU 活动时间为准,不要只看百分比排名。

后台保活:省电策略与不断线的平衡

关键词:电池优化白名单。移动端最普遍的矛盾是:系统为了省电杀后台,隧道被杀代理就断;客户端为了不断线加强保活,保活手段本身又耗电。正确的解法不是让 Clash 更激进地保活,而是把它从系统的省电名单里摘出来,让系统别动它。

Android 的标准操作是把 Clash 加入电池优化白名单。路径:设置 → 应用 → 特殊应用权限 → 电池优化,找到 Clash 改为「不优化」。加入白名单后系统不再限制它的后台网络与唤醒,靠前场服务就足以稳定维持隧道,不需要任何额外手段。

国产 ROM 还有第二层限制。小米 MIUI 要另外打开「自启动」,并在最近任务界面把 Clash 卡片下拉加锁;华为 EMUI 在「应用启动管理」里关掉自动管理,改为手动并允许后台活动;OPPO、vivo 的设置项名称不同,逻辑一致:允许后台运行、允许后台高耗电。缺了这一步,白名单也拦不住 ROM 自己的清理策略。

常驻通知不要关。Clash 的 VPN 通知属于前台服务通知,是 Android 合规的保活机制。嫌通知碍眼把通知权限整个关掉,前台服务随之降级,进程被杀后反复重启,每次重启都要重建隧道、重新握手,反而更费电。

iOS 侧没有手动保活这一说。Network Extension 由系统托管,隧道的起停交给系统调度。Clash Plus 的按需连接(On Demand)保持开启即可,系统会在有网络需求时拉起隧道、空闲时挂起,比手动频繁开关省电得多。

省电类工具与 VPN 冲突

各类「省电大师」「后台清理」工具会把 VPN 隧道当成可清理对象,杀掉隧道又触发客户端重连,一杀一连循环耗电。装了这类工具,先把 Clash 加进它们的忽略名单,或者直接卸载,系统自带的电量管理已经足够。

路由模式与规则集:匹配开销的大头

关键词:规则模式。路由模式决定多少流量要走加密转发,这是耗电差异最大的一项设置。全局路由(Global)下所有流量进代理,每一字节都要过加密与转发,耗电最高,只适合临时排查连通性。规则模式(Rule)让国内站点直连、仅代理命中规则的流量,日常应当常驻规则模式。直连(Direct)模式等于关闭代理,不在讨论范围。

规则集不是越多越好。每个新连接都要逐条过一遍规则,几万条 GEOSITE 规则意味着每次匹配都有 CPU 开销。订阅配置自带的规则集通常已经够用,不要再叠加第三方大清单;规则数量翻倍,匹配开销跟着翻倍,收益却往往感知不到。

DNS 用 fake-ip。redir-host 模式下,代理域名要先做真实 DNS 解析再进规则匹配,每次解析都是一次网络往返与基带唤醒。fake-ip 模式直接返回保留段的假地址,域名原样交给远端解析,省去本地解析的等待与唤醒,移动端建议开启。

DNS 上游别贪多。nameserver 里堆七八个上游,并发查询时每个上游都要发报文,无线电模块被反复唤醒。留两三个低延迟上游即可,例如运营商 DNS 加一组公共 DNS。

mode: rule
log-level: warning
dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - 223.5.5.5
    - 119.29.29.29

这份片段可以并入订阅配置的覆写段,或按客户端设置页逐项对应填写,改完重载配置生效。

日志与界面刷新:容易被忽略的两项

关键词:日志级别。log-level 开在 debug 或 info,每条连接的建立、匹配、关闭都会写一条日志,频繁的文件写入与唤醒在移动端是实打实的耗电。日常使用固定为 warning 或 error,只在排查问题时临时调回 info,用完调回去。

界面常驻同样费电。连接面板、日志面板是实时刷新的,开着界面看连接滚动,CPU 与屏幕都保持唤醒。看完就退出,不要让客户端长期停在前台。

节点自动测速要收敛。部分客户端默认周期性对全部节点做延迟测试,间隔太短等于定时把节点列表整个打一遍,几十上百个节点各发一次探测。关闭自动测速,或把间隔拉长到 30 分钟以上,手动测速足够日常选节点。

分平台省电设置清单

一张表先给结论,后面按平台展开:

设置项省电取向说明
路由模式规则(Rule)全局模式全量加密转发,耗电最高
DNS 模式fake-ip省去本地真实解析的网络往返
DNS 上游2~3 个并发查询时每个上游都发报文
日志级别warning / errordebug 与 info 每条连接写日志
自动测速关闭或 ≥30 分钟周期探测会打遍全节点列表
电池优化加入白名单防系统杀后台导致反复重连

Android(Clash for Android / FlClash)

iOS(Clash Plus)

标准排查顺序

遇到耗电问题按固定顺序走,每步只改一个变量,改完观察半天到一天:

  1. 看电量统计里的 CPU 与后台活动时间,确认是真异常还是归因虚高。
  2. 检查路由模式,全局改回规则。
  3. 日志级别降到 warning,关闭自动测速。
  4. 精简 DNS 上游与规则集,确认 fake-ip 已开启。
  5. 核对电池优化白名单与 ROM 后台权限,常驻通知保持开启。
  6. 做半天对照测试;仍异常则把日志临时调到 info 抓一段,连同机型与系统版本一起反馈给客户端项目。

绝大多数案例走到第三步就能回落到正常水平。真正由客户端缺陷导致的耗电是少数,按顺序排查可以避免来回折腾。

下载客户端