Clash Verge如何清除缓存解决节点列表不更新?

为什么节点列表会“卡住”?——缓存机制与症状对照
在 Clash Verge 中,缓存(Cache)被用来暂存订阅文件、规则集、GeoIP 与节点延迟样本,以减少重复下载。当远端订阅地址刷新,而本地缓存未同步时,UI 会表现为“节点列表不更新”“新协议提示缺失”或“延迟测试仍显示旧数值”。核心关键词Clash Verge如何清除缓存正是解决这一卡点的入口。
经验性观察:若你曾在 30 min 内连续手动刷新订阅,但节点数始终不变,大概率是本地cache.db未失效;此时在托盘图标 → 更多 → 缓存管理中可查看到“下次过期”倒计时仍大于 0。
缓存文件到底存在哪?——平台差异与路径速查
Windows 10/11
默认位于%USERPROFILE%\.config\clash-verge\cache\,其中cache.db与geoip.dat是最常“膨胀”的两个文件。若你使用便携版,则与可执行文件同级目录下的.config优先。
macOS (Intel & Apple Silicon)
通过 Homebrew 安装时,缓存落在~/.config/clash-verge/cache/;若从 dmg 拖入 Applications,首次启动会询问“是否为当前用户创建配置目录”,选择“是”后同上,选择“否”则生成在/Users/Shared/clash-verge/。
Linux (AppImage / deb / AUR)
AppImage 会在$HOME/.config/clash-verge/cache/落地;若使用--portable参数,则生成于可执行文件所在目录下的config/。Rootless 模式(systemd 用户实例)同样遵循 XDG 规范。
清除缓存的三种官方入口——操作路径与回退方案
1. UI 一键清理(推荐新手)
- 主界面右上角“设置”(齿轮图标)→ 左侧栏选“缓存与数据”。
- 在“缓存管理”卡片点击“立即清除”,弹窗会列出即将删除的文件体积与数量。
- 确认后客户端会热重载内核,耗时通常亚秒级,无需重启。
回退方案:误删后可立即点击同一页面的“重新下载”,Clash Verge 会按当前订阅地址重新拉取,不会丢失服务器端节点。
2. 托盘菜单快速清(适合游戏/直播场景)
右键托盘图标 → 更多 → 清除缓存,无需打开主窗口即可在后台完成。该入口默认开启,可在设置 → 外观 → 托盘行为中关闭显示。
3. 手动删除文件(进阶排障)
当 UI 无法启动或出现“数据库锁定”报错,可完全退出进程后,直接删除上述路径下的cache.db与*.dat。重启客户端会自动重建,延迟测试历史将被清空——此为可观测指标,用于验证是否成功。
清理后仍不更新?——决策树式排查
提示:以下流程基于截至当前的最新版本,若界面文案略有差异,请以实际为准。
- 看订阅返回码:主界面 → 订阅 → 选中配置 → 右侧日志区。若出现
HTTP 304,表示远端未更新,与本地缓存无关。 - 看系统代理是否占用:Windows 下可在设置 → 系统代理 → 关闭后重试,防止旧连接保持导致下载失败。
- 看是否启用“离线模式”:托盘菜单中若出现✈️图标,点击关闭后再刷新。
- 看本地规则是否拦截自身:在
rules:里若把订阅域名设为直连,而出口节点恰好故障,也会表现为“列表空”。临时把该规则注释即可验证。
副作用与取舍——何时不该清
- 延迟历史清零:清理后首次测速需重新遍历节点,若订阅量大(>200 条),完整测试可能持续数十秒,期间fallback策略会临时失效。
- GeoIP/GeoSite 回退到内置版本:若你手动维护了自定义 CN 列表,清理会被官方规则覆盖,需提前备份
~/.config/clash-verge/Country.mmdb。 - 云同步冲突:开启 WebDAV 双向同步时,A 设备清理后,B 设备可能因时间戳差异再次拉回旧缓存;经验性观察:在同步目录外单独排除
cache.db可降低冲突概率。
自动化:让缓存“自己洗澡”
Clash Verge 2.0 起支持缓存生命周期参数,位于settings.yaml:
cache: subscription: 1800 # 单位:秒,1800=30 min geoip: 86400 # 1 天 latency: 300 # 5 min
将数值调小可“自动清”,但会加重远端服务器负担;公共订阅地址通常有防刷配额,经验性结论:>1000 人共享的订阅,低于 900 s 容易触发 429 限流。
验证方法:如何确认真的刷新了?
- 看节点数:清理前后截图对比,若新增协议(如 TUIC v5)节点出现,即为成功。
- 看日志关键字:在设置 → 日志 → 等级选 debug,搜索
update-subscription,若时间戳为刚刚,则远端已重新拉取。 - 看文件体积:缓存目录下
cache.db修改时间会更新,且体积可能变化(新增节点导致膨胀,去重后可能缩小)。
与第三方工具协同的最小权限原则
部分用户用脚本调用 REST API 做定时清理,Clash Verge 在http://127.0.0.1:9097暴露/cache端点。建议:
- 仅授予
POST /cache/clear权限,禁用DELETE /configs,防止误操作整个配置。 - 使用本地回环地址+Token,拒绝 0.0.0.0 监听,避免局域网其他主机触发清理。
适用/不适用场景清单
| 场景 | 建议 |
|---|---|
| 日更订阅、节点变动频繁 | 启用 30 min 自动过期+手动托盘清 |
| 企业内网固定出口、节点极少 | 关闭自动清,延长生命周期至 7 天 |
| 直播推流,延迟敏感 | 提前 5 min 手动清,避开推流高峰 |
| 公共 Wi-Fi,带宽付费 | 避免频繁清导致重复下载,耗流量 |
FAQ:缓存管理常见疑问
清除缓存会删除我的自定义规则吗?
不会。自定义规则写在 config.yaml,与 cache.db 分离;清理仅影响临时下载内容与延迟历史。
托盘清缓存失败,提示“数据库被占用”怎么办?
完全退出客户端,手动删除 cache.db 后重启即可;若仍报错,检查是否有第三方插件以只读方式占用。
清理后延迟测试全是 0 ms,是否正常?
属于预期现象。0 ms 代表“尚未测试”,等待 url-test 间隔或手动点“测速”即可恢复。
最佳实践速查表
- 每次修改订阅地址后,先托盘清缓存再刷新,避免 304 空回包。
- 开启“缓存生命周期”时,把 geoip 设为 1 天、subscription 设为 30 min,可在流量与实时性之间折中。
- 直播/会议前 5 min 手动清,并观察日志出现
updated at时间戳,确保生效。 - 若使用 WebDAV 同步,务必排除
cache.db,防止多设备循环覆盖。 - 清理后首次测速若节点>200,先暂停自动切换策略,待测试完毕再开启,防止中途断流。
收尾:下一步行动
Clash Verge 清除缓存解决节点列表不更新的核心,是“知道何时清、怎么清、清完后如何验证”。读完本文,你可以:
- 在 10 秒内通过托盘完成清理,并观测日志确认远端已重新拉取;
- 根据场景调整生命周期参数,避免“过度刷新”带来的 429 限流或流量浪费;
- 利用文件路径与 API 最小权限原则,把清理动作嵌入自己的自动化脚本,而不误伤配置。
下次遇到“节点怎么还是旧的”时,先别急着换订阅地址,按本文路径清一次缓存,再对照日志验证,多数情况下问题即可归零。
未来版本若引入更细粒度缓存策略(如单订阅独立过期)或 UI 可视化热度图,官方大概率会在 Release Note 置顶说明;保持客户端更新并关注日志提示,即可第一时间体验。

