Clash 如何记住上次选择的节点?store-selected 的作用说明
很多人用 Clash 时都会遇到一个小问题:昨天明明已经在「节点选择」里手动选好了某个节点,网页也能正常打开;结果今天重启客户端,或者更新了一次配置,再打开一看,又变回默认节点了。
这时候不少新手会以为是客户端没有保存设置,甚至怀疑软件有 Bug。其实不一定。Clash 能不能记住上次选择,通常和策略组、缓存、配置更新,以及 store-selected 这个设置有关。
简单说,store-selected 可以把它理解成「记住上次选择的开关」。在 Mihomo 的配置说明中,profile 下的 store-selected: true 用于保存策略组的 API 选择,以便下次启动时继续使用。
一、为什么 Clash 有时不会记住上次选择?
先说一个常见情况:你在客户端界面里选了某个节点,但这个选择并不一定写回原始订阅配置。很多时候,它只是被客户端或内核临时记录在缓存里。
如果没有开启保存选择,或者客户端没有正确保存缓存,重启之后就可能回到策略组默认项。尤其是一些订阅配置里,策略组本身有默认顺序,客户端重新加载后就会按配置里的第一个节点或默认策略显示。
所以,节点选择「没记住」,不一定是你操作错了,也不一定是节点丢了,而是上一次选择没有被持久保存下来。
二、store-selected 到底有什么作用?
store-selected 的作用,就是让 Clash 记住你在策略组里的选择。
比如某个策略组叫「节点选择」,里面有多个节点。你今天手动选了其中一个,如果 store-selected 正常开启并且缓存没有被清理,那么下次启动时,Clash 会尝试恢复你上次选中的那个结果。
这对日常使用很有帮助。很多人并不想每次启动都重新选节点,也不希望自动选择策略突然切换到自己不熟悉的线路。开启保存后,只要策略组和节点还存在,客户端通常就能延续上次选择。
不过要注意,store-selected 记住的是「策略组里的选择关系」,不是永久锁定某个节点。它依赖策略组名称、节点名称和配置结构。如果这些东西变了,保存结果也可能失效。
三、它和策略组有什么关系?
要理解 store-selected,必须先理解策略组。策略组可以理解成节点菜单,常见类型包括手动选择、自动选择、故障转移等。Mihomo 的策略组配置里,name、type、proxies、use 等字段决定了策略组名称、类型以及它引用哪些节点或节点来源。
如果你选择的是手动选择组,store-selected 记录的就是你在这个组里选了哪个节点。下次启动时,它会尽量恢复这个选择。
如果你使用的是自动选择组,情况就不完全一样。自动选择组可能会根据延迟测试或可用性判断自动切换节点。即使保存了选择,实际使用中也可能受到测速、健康检查或策略组逻辑影响。
如果是故障转移组,它本来就会在当前节点不可用时切换到其他节点。所以你看到「不是上次那个节点」,不一定是保存失败,也可能是策略组本身在按规则工作。
四、为什么开启了保存,还是会失效?
最常见原因是订阅更新改变了配置结构。
比如你昨天选中的节点叫「HK 01」,今天更新订阅后,这个节点被改名成「香港 01」,对 Clash 来说,它可能已经不是同一个节点了。之前保存的选择找不到对应对象,自然就会回到默认选项。
第二种情况是策略组名称变了。比如原来叫「节点选择」,更新后变成「Proxy」或「手动选择」。store-selected 记录的是原来那个策略组里的选择,新策略组名称变了,保存关系也可能对不上。
第三种情况是本地配置被覆盖。有些用户手动改过分组、节点顺序或默认选择,但这些修改如果直接写在订阅生成的配置里,下一次更新订阅时可能会被远程配置覆盖。
第四种情况是客户端缓存被清理。部分客户端在更新、重装、切换配置、清理数据后,可能会删除原来的选择记录。这样即使配置里开启了保存,也需要重新选择一次。
五、新手应该怎么判断问题来源?
实际排查时,可以先看问题发生在什么时候。
如果是每次重启后都恢复默认,优先检查配置里是否有 store-selected,以及客户端是否支持保存策略组选择。
如果是更新订阅后才变回默认,那就重点看订阅是否改了节点名称、策略组名称或分组结构。很多时候不是保存功能失效,而是原来的「记忆对象」已经变了。
如果是切换配置后不记得上次节点,也很正常。不同配置之间的策略组和节点不一定相同,保存结果通常不能完全通用。
如果是重装客户端后丢失选择,那多半和缓存数据被清理有关。重装会让很多本地状态回到初始状态,节点选择也可能需要重新设置。
六、修改配置前先备份
这里不建议新手一上来就乱改配置。Clash 配置通常是 YAML 格式,缩进和字段位置比较敏感。一个空格错了,可能导致整个配置无法加载。
更稳妥的做法是先复制一份当前可用配置,再检查 profile 相关设置。如果你使用的是订阅配置,还要注意本地修改可能会被下一次订阅更新覆盖。能使用客户端的覆写、配置增强或本地配置管理功能,就不要直接在唯一配置上反复试错。
对普通用户来说,理解 store-selected 不需要记住复杂字段。只要记住一句话:它负责让 Clash 尽量记住策略组上次选中的节点,但前提是策略组、节点名称和缓存状态没有发生明显变化。
如果你的 Clash 总是忘记上次选择,不要急着重装客户端。先看是否开启保存,再看是不是更新订阅后分组或节点名称变了,最后再检查缓存和配置覆盖问题。这样排查会比盲目修改配置更稳,也更容易找到真正原因。