
直接修改订阅文件:更新后会被完全覆盖
订阅更新的本质是完全替换配置文件
Clash更新订阅时,客户端会从服务商服务器下载最新的配置文件,并用这个新文件完全替换本地存储的旧配置文件。如果之前在配置目录中直接编辑了config.yaml文件,添加了自定义的策略组或路由规则,更新后这些修改会全部丢失。因为订阅更新就是用服务商提供的新配置文件覆盖了本地的旧文件,所有手动添加的内容都会被抹除。这是很多Clash用户更新订阅后发现自己设置的分组和规则“消失”的根本原因。
手动修改被覆盖后的恢复方式
如果自定义配置已经被订阅更新覆盖,唯一的恢复方式是从备份中还原旧配置,或重新手动添加自定义内容。这就是为什么订阅更新前建议手动备份配置目录的原因——将配置目录中的config.yaml复制到安全位置保存,更新后如果发现自定义内容丢失,可以将备份文件覆盖回来。但需要注意的是,如果服务商的订阅配置结构发生了较大变化,直接覆盖旧配置可能导致部分节点无法正常使用。
更新后分组和规则消失的识别方法
当更新订阅后,如果之前添加的策略组(如“Netflix节点组”或“游戏专用组”)和自定义规则(如“特定域名走特定节点”)都不见了,只剩下服务商提供的默认分组和规则,说明之前的修改是直接在订阅文件上进行的。此时需要检查Clash客户端中是否开启了Mixin或Parsers等叠加功能,如果没有,则确认自定义内容确实被覆盖了。
通过Mixin添加的自定义配置:更新后保留
Mixin功能的作用原理
Clash for Windows等客户端提供的Mixin(混合配置)功能,允许用户在订阅配置基础上叠加自定义内容,且不会被订阅更新覆盖。Mixin是一个独立的配置块,在每次订阅更新时会被合并到新配置中,相当于在订阅内容之上“覆盖”或“追加”用户自定义的部分。如果之前通过Mixin添加了策略组或规则,更新订阅后这些内容会保留,因为Mixin数据存储在客户端设置中,与订阅文件分离,更新操作只替换订阅文件而不影响Mixin配置。
在Clash for Windows中配置Mixin
在Clash for Windows中启用Mixin功能的方式为:进入Profiles配置管理页面,点击当前使用的配置文件,在右侧面板中找到Mixin或混合配置选项,勾选启用后将自定义的策略组和规则写入Mixin编辑框中。保存后Mixin配置会与订阅配置合并生效。订阅更新时,客户端会自动将Mixin内容叠加到新配置上,确保自定义规则和分组在每次更新后仍然生效。Mixin中的内容在更新时不会被重置或清空,除非用户手动修改或删除。
Mixin中应包含的内容类型
Mixin适合放置那些不会被订阅更新覆盖、且需要长期保留的配置内容,包括:自定义策略组(如将多个订阅中的节点重新分类)、补充路由规则(如特定网站走特定节点)、DNS设置覆盖(如强制使用指定的DNS服务器)。但需要注意的是,Mixin中不应定义完整的proxies列表,否则可能会覆盖订阅中的节点。Mixin主要用于策略组和规则的补充,而非节点本身的定义。
通过Parsers预处理添加规则:自动合并且持久
Parsers配置的工作机制
Parsers(预处理配置)是Clash提供的另一种持久化自定义配置的方式,在每次更新订阅时自动执行规则修正和内容添加。用户可以在Settings的“配置文件预处理”中编辑Parsers代码,设置规则添加、参数修正或策略组调整,这些操作会在每次订阅更新时自动执行,无需手动干预。Parsers配置与Mixin的区别在于,Parsers是在订阅内容被加载之前执行的预处理操作,可以对订阅内容进行修改后再交给Clash解析。
Parsers配置的使用方法
在Clash for Windows的Settings页面找到“配置文件预处理”或Parsers设置区域,点击编辑后写入YAML格式的预处理代码。例如,当订阅中的DNS enhanced-mode设置为redir-host而当前核心不支持该模式时,可以通过Parsers配置将enhanced-mode强制改为fake-ip,避免每次更新后手动修改被覆盖的配置。Parsers配置可以添加规则、修改字段值、调整策略组结构,功能比Mixin更强大。
Parsers与Mixin的适用场景区分
Parsers适合需要在订阅内容被解析之前对其进行结构性修改的场景,例如将订阅中的某个参数值全局替换、删除不支持的规则类型、或重新组织策略组结构。Mixin更适合在订阅内容之上叠加补充配置的场景,例如添加额外的路由规则或自定义策略组。两者可以结合使用——Parsers处理订阅内容的修正,Mixin叠加用户自定义的补充配置,共同构成更新后完整的运行配置。
策略组引用订阅节点:更新后可能失效
策略组引用的节点名称变化导致失效
如果自定义策略组中引用了订阅中的具体节点名称,当订阅更新后这些节点名称发生变化(如服务商重命名了节点),策略组会因为引用不到原有节点而显示为空或失效。即使策略组本身通过Mixin保留了下来,但其中引用的节点名称不再存在于新订阅中,策略组在更新后就无法正常工作。这是订阅更新后分组还在但节点缺失的常见原因。
使用正则表达式或通配符匹配节点名称
为了避免策略组因节点名称变化而失效,可以在策略组中使用正则表达式或通配符来匹配节点名称。例如使用香港.*匹配所有名称中包含“香港”的节点,使用.*SG.*匹配名称中包含“SG”的节点。这样即使服务商调整了节点命名方式,只要关键词不变,策略组仍能自动匹配到对应的节点。具体语法取决于Clash核心版本的支持情况,Clash Meta核心对正则表达式的支持更完善。
订阅更新后检查策略组引用状态
更新订阅后,建议在代理页面中检查自定义策略组是否包含节点、节点数量是否正常。如果策略组显示为空,说明引用的节点名称已变更,需要更新策略组中的节点匹配规则或节点名称列表。可以暂时将策略组切换为手动选择模式,从节点列表中重新添加节点,或调整Mixin中的引用名称后再重新更新订阅。
规则优先级和生效顺序的变化
更新后规则顺序可能被重新排列
订阅更新后,服务商可能调整了规则列表的顺序,这会影响规则的匹配优先级。即使自定义规则通过Mixin或Parsers保留下来,如果新订阅中的规则顺序发生了变化,自定义规则的生效位置可能改变,导致原本期望的流量路由结果出现偏差。例如原本放在规则列表前面的自定义规则,更新后可能被新订阅中的规则排在了后面,导致匹配优先级下降。
确保自定义规则在正确的位置生效
为了保证自定义规则在更新后仍然具有预期的匹配优先级,可以在Mixin或Parsers中将自定义规则放在规则列表的靠前位置。部分客户端支持在Mixin中指定规则的插入位置,如“插入到规则列表最前面”或“追加到规则列表最后”。将自定义规则放在兜底规则(MATCH)之前,确保它们在请求匹配时被优先考虑,避免被订阅中的默认规则提前匹配。
订阅更新后验证关键规则的生效情况
更新订阅后,应选择几个关键网站或应用测试自定义规则是否按预期生效。例如如果配置了“Netflix域名走特定节点”的规则,更新后访问Netflix检查是否确实走了指定的节点。如果发现规则未生效,检查Mixin或Parsers中的规则是否被正确合并到最终配置中,以及规则中的域名或IP匹配条件是否仍然有效。
不同客户端的配置持久化对比
Clash for Windows的Mixin与Parsers
Clash for Windows提供了Mixin和Parsers两种持久化配置方式。Mixin在订阅配置之上叠加自定义内容,Parsers在订阅内容被解析之前进行预处理修改。两者在订阅更新时都会保留,不会被覆盖。在Profiles页面的配置详情中可以找到Mixin设置入口,在Settings页面中可以找到Parsers预处理设置入口。两者各有侧重,可以分别使用或组合使用。
Clash Verge Rev的全局扩展配置
Clash Verge Rev等新版本客户端提供了“全局扩展配置”或“脚本模式”功能,作用与Mixin类似,允许用户在订阅基础上叠加自定义配置。在设置页面中找到扩展配置入口,将自定义的策略组和规则写入扩展配置区域,订阅更新后这些自定义内容会保留。不同版本的Clash Verge Rev在功能入口上可能有所差异,具体位置因版本而异。
ShellClash等路由器环境中的自定义文件
在OpenWrt路由器的ShellClash环境中,用户可以通过rules.yaml或proxy-groups.yaml等自定义文件添加持久化的策略组和规则。这些文件与订阅配置文件分离,更新订阅时不会被覆盖。更新后自定义文件中的内容会与新的订阅配置合并生效,是路由器环境中保留自定义配置的标准做法。
常见问题 FAQ
更新订阅后自定义的策略组消失了,但Mixin中明明还有配置,是什么原因?
Mixin中的策略组定义可能在语法上存在问题,导致合并失败。检查Mixin中策略组的YAML格式是否正确,特别是缩进和节点名称引用。如果策略组引用的节点名称在新订阅中已不存在,该策略组虽然显示在列表中但内部节点列表为空。检查Mixin中的引用名称是否与新订阅中的节点名称匹配。
Mixin和Parsers更新订阅后都需要重新配置吗?
不需要。Mixin和Parsers配置存储在客户端的设置中,与订阅文件分离,更新订阅时不会影响这两项配置。订阅更新后,Mixin和Parsers会自动合并到新配置中,用户不需要重新配置。但如果服务商调整了配置结构,可能需要相应更新Mixin或Parsers中的字段以适应变化。
Clash Verge Rev中如何添加不会被订阅更新覆盖的规则?
在Clash Verge Rev的设置页面中找到“全局扩展配置”或“配置文件扩展”入口,将自定义的策略组和规则写入该区域。订阅更新后,扩展配置中的内容会自动合并到新订阅中。具体功能名称因版本而异,部分版本可能称为“Merge”或“覆写配置”。
订阅更新后如何确认自定义规则是否生效?
在客户端中切换到该配置后,访问几个配置了自定义规则的网站,查看连接日志中这些请求匹配到的规则是否为自定义规则。也可以在代理页面的连接列表中查看具体请求走的是哪个节点,判断规则是否按预期生效。如果自定义规则未生效,检查Mixin或Parsers是否被正确加载。