节点列表很久没有变化,不能单凭这一点判断自动更新失效;服务端可能没有改动,界面也可能显示另一项更新时间。先确认客户端是否实际执行了你关心的下载任务,再比较手动与定时操作的条件,通常比缩短间隔更容易找到原因。
先确定更新的到底是什么
客户端整份订阅、内核读取的节点集合、规则文件和节点健康检查,可能分别由不同机制运行。刷新一个节点的延迟,不等于重新下载订阅;整份配置的更新时间变了,也不一定代表其中所有远程集合均已更新。
例如,在mihomo代理集合配置中,集合的interval表示更新间隔,health-check下面的interval表示健康检查间隔。两者即使使用相同数字,也是在控制不同工作。先记下你查看的页面或字段属于哪一层,不要把健康检查成功当成订阅下载成功。
检查计划是否启用及单位
找到当前配置实际使用的更新设置,核对开关、间隔单位和保存结果。图形界面可能使用分钟,内核字段可能使用秒,不能照搬其他教程里的数字。mihomo文档将代理集合更新间隔定义为秒,应与客户端自身的订阅更新设置分开理解。
假设某项设置明确要求秒,填写3600表示一小时;这是单位换算示例,并非推荐所有服务每小时更新。周期应按服务说明和实际变化需要安排,频繁刷新并不能修复地址失效,还可能增加没有必要的请求。
区分没有执行与执行失败
在客户端正常运行的时间段观察一次计划任务,记录预计时间、实际记录以及成功或错误提示。完全没有执行痕迹时,优先检查任务是否启用、配置是否被使用以及程序是否保持运行;有下载错误时,再看网络和响应内容。
设备睡眠、关机或程序退出期间,不应直接按前台持续运行的节奏推算刷新次数。唤醒后是否立即补跑由具体实现决定,不能默认。先在设备保持清醒的一次观察中确认任务机制,再研究自己的日常作息是否影响它。
比较手动与定时的下载路径
如果手动更新能成功,记录手动操作当时采用的网络和更新方式。有些客户端允许选择更新请求是否经过当前代理,内核集合也可能指定下载所用的出口。mihomo的代理集合proxy字段便用于指定下载或更新经过的代理。
设想一份配置必须通过当前出口下载,而自动执行时那个出口暂时不可用;稍后手动选择了别的出口,更新才成功。这只是排查假设,不能据一次成功认定原因。应保持同一网络和出口再对照,检查日志是否支持路径差异。
能下载还要检查能否保存和加载
下载请求完成后,仍可能发生解析错误、保存路径冲突或读取到旧文件。先看客户端报告的是网络错误还是配置错误,再查看实际启用的配置是否对应刚更新的对象。不要用节点数量没变来代替这些检查。
使用内核远程集合的进阶配置时,要核对每个集合的缓存路径是否独立。mihomo文档明确要求path不重复,且路径有工作目录范围约束。遇到权限或路径提示,应按项目支持的位置修正,不要为了让更新成功而放开整个磁盘的写入权限。
用一张简短记录完成对照
- 写明客户端版本、当前配置及被更新的对象。
- 记录自动任务的开关、单位和最近一次执行结果。
- 保持程序运行,在预期时段观察一次任务。
- 若失败,用相同网络和出口做一次手动更新。
- 比较下载、解析、保存与加载分别发生了什么。
- 修正一项后重新观察,保留原设置以便恢复。
如果手动也在同一阶段失败,就不应继续只怀疑定时器。先处理地址、服务状态或文件问题,再回头验收自动执行。
修复后检查的是结果而非按钮
验收时确认计划任务有实际执行记录、配置能够加载,并且主要任务仍可完成。服务端没有改动时,下载后的内容相同是正常可能性;不要为了证明自动更新成功而人为制造节点变化。
避免公开含令牌的请求地址,也不要通过陌生订阅转换站验证凭据。普通导入问题可参考订阅导入与更新指南;需要整理错误证据时,使用日志脱敏与问题描述方法。