CLASH KNOWLEDGE BASE

分类: 未分类

客户端教程、配置说明与问题排查资料。

教程

Clash vpn 规则配置能导出备份供其他设备使用吗?

在ClashVPN中,所有配置(包括分流规则、代理节点、策略组)均存储在config.yaml文件中,该文件位于%USERPROFILE%\.config\clash\(Windows)或~/.config/clash/(macOS/Linux)。用户可直接复制该文件完成配置备份,也可在ClashVergeRev的「配置」页面中通过右键菜单的“导出”功能导出完整配置。备份的config.yaml文件在其他设备上通过“导入本地文件”功能即可加载使用,但需注意目标设备上allow-lan、bind-address等与环境相关的参数可能需要调整。订阅配置导出后再导入时,自定义规则需通过Merge或Parsers的prepend-rules重新配置才能持久保留。配置文件包含节点密码、UUID等敏感信息,备份时需确保存储位置安全,分享配置前建议移除或替换敏感节点信息。对于需要多设备同步规则的用户,可将rules字段单独提取保存,在新设备上通过Merge功能叠加到现有配置中,或使用社区维护的规则集替代自行维护规则。建议定期备份配置文件,并在重大规则调整后保留带日期后缀的历史版本,便于配置错误时快速回滚。配置文件是ClashVPN的完整配置载体config.yaml包含所有规则和节点信息ClashVPN的所有配置信息(包括分流规则、代理节点、策略组和DNS设置)都集中存储在config.yaml这一个文件中,该文件是ClashVPN配置的完整载体。该文件包含了rules字段中的所有分流规则、proxies字段中的所有代理节点、proxy-groups字段中的所有策略组以及dns字段中的DNS解析配置。当用户导出config.yaml文件时,实际上导出了ClashVPN的完整配置状态,包括所有自定义规则和节点列表。这使得config.yaml成为备份、迁移和分享配置的标准格式。配置文件的默认存放路径config.yaml文件在ClashVPN安装时自动生成,默认存放在操作系统的用户目录下的特定路径中。在Windows系统中,该文件通常位于%USERPROFILE%\.config\clash\config.yaml或Clash安装目录的Data文件夹中。在macOS和Linux系统中,文件路径为~/.config/clash/config.yaml。如果使用的是ClashVergeRev等图形界面客户端,可通过客户端的「配置」页面找到“打开文件夹”或“打开目录”的快捷入口,一键直达配置文件所在位置。找到该文件后即可进行复制、备份或导出操作。图形界面中的导出功能ClashVergeRev等图形界面客户端提供了便捷的配置导出功能,用户无需手动查找文件路径即可完成导出操作。在客户端的「配置」页面中,右键点击当前使用的配置文件名,在弹出的上下文菜单中选择“导出”或“Export”选项,系统会弹出文件保存对话框让用户选择保存位置和文件名。导出后的文件即为完整的config.yaml配置,包含所有规则、节点和策略组信息,可直接用于备份或迁移至其他设备。备份配置文件的操作步骤手动复制config.yaml文件最直接的配置备份方式是手动将config.yaml文件复制到安全位置,操作简单且不依赖客户端的导出功能。在文件管理器中导航至Clash配置目录(Windows为%USERPROFILE%\.config\clash\,macOS/Linux为~/.config/clash/),找到config.yaml文件并将其复制到备份目录(如桌面、文档文件夹或外部存储设备)。建议在备份文件名称中添加日期后缀(如config_20260818.yaml),便于日后识别和版本管理。手动备份方式适用于所有Clash客户端,不受图形界面功能限制。使用客户端内置备份功能ClashVergeRev提供了配置管理功能,用户可在客户端界面中完成配置的备份和导出。在「配置」页面中,选中当前使用的配置后点击“导出”或“备份”按钮,客户端会自动将当前配置文件打包保存为.yaml或.json格式文件。部分客户端还支持将配置上传至云存储或通过二维码分享,进一步简化了多设备间的配置迁移流程。使用内置备份功能的优势在于客户端会自动处理配置文件的路径和格式,用户无需关心底层文件结构。定期备份避免配置丢失定期备份配置文件是防范配置丢失和快速恢复网络的重要手段,尤其适合频繁调整规则的进阶用户。建议在每次重大规则调整(如添加新的分流规则、调整策略组结构)后执行一次配置备份,并保留最近3至5个版本的历史备份。可将备份文件存放在云存储(如OneDrive、GoogleDrive)或本地NAS中,确保在设备故障或配置错误时能够快速恢复到之前的稳定版本。定期备份的习惯能有效降低因订阅更新覆盖或误操作导致的配置丢失风险。将配置导入其他设备的操作方法在其他设备上导入本地配置文件将备份的config.yaml文件迁移到其他设备时,在目标设备的Clash客户端中通过“导入本地文件”功能即可完成配置的加载。在ClashVergeRev中,点击「配置」页面的“导入”按钮,选择“导入本地文件”,在文件选择对话框中定位到备份的config.yaml文件,确认后客户端会自动加载该配置中的所有节点、规则和策略组。导入完成后,新设备的ClashVPN将拥有与原设备完全相同的分流规则和节点配置,无需手动重新配置。直接替换配置目录中的文件对于无图形界面的环境或需要批量部署的场景,可将备份的config.yaml文件直接复制到目标设备的Clash配置目录中,替换原有文件即可完成配置迁移。操作步骤为:在目标设备上定位到Clash配置目录,将备份的config.yaml文件复制到该目录并覆盖原文件。覆盖后需重新启动Clash或执行配置重载命令(如在命令行中发送SIGHUP信号或使用clash-fconfig.yaml重新加载),使新配置生效。此方式适合服务器批量部署或多台设备统一配置的场景。导入后需要调整的参数配置文件从一台设备迁移到另一台设备后,部分参数可能需要根据目标设备的网络环境进行适当调整。allow-lan参数可能需要根据是否开启局域网共享重新设置,bind-address在某些设备上可能需要改为0.0.0.0以监听所有网络接口。如果目标设备的操作系统与源设备不同,external-controller的监听地址可能需要从127.0.0.1调整为0.0.0.0以便本地访问。导入配置后建议检查这些与设备环境相关的参数,确保配置在目标设备上正常工作。订阅配置与本地配置的区别订阅配置依赖远程服务器通过订阅链接导入的配置属于“托管配置”,其节点列表和规则内容完全依赖于远程服务器的推送,每次订阅更新时会被完整替换。导出包含订阅配置的config.yaml文件后,在其他设备上导入该文件时,其中的节点列表和规则在导入时刻是有效的,但后续执行订阅更新时会根据服务商的最新配置重新拉取。因此订阅配置的备份更多是“配置状态”的备份而非“节点内容”的持久保存,订阅更新后备份文件中的节点列表可能已过时。本地配置完全由用户自主维护本地配置(即用户通过“导入本地文件”或手动编写config.yaml加载的配置)不依赖任何远程服务器,所有节点、规则和策略组完全由用户自主维护和更新。本地配置的config.yaml文件导出后可在任意设备上直接使用,不受订阅更新影响。若配置中包含自建节点,确保节点信息(服务器地址、端口、密码等)在目标设备上仍有效即可。本地配置的备份和迁移更加可靠,适合使用自建节点或固定节点列表的用户。混合配置中订阅节点与自定义规则的共存许多用户的配置是订阅节点与自定义规则的混合体,导出此类配置时需要注意规则的持久化方式。如果自定义规则是通过ClashVergeRev的Merge功能(prepend-rules)叠加到订阅配置之上的,导出的config.yaml文件会包含Merge合并后的完整规则列表。在其他设备上导入后,自定义规则与订阅规则均会保留,但后续订阅更新时Merge配置中的prepend-rules规则需要在新设备上重新配置才能持久生效。为简化多设备管理,建议将自定义规则直接写入本地配置的rules字段,或在新设备上重新配置Merge规则。配置备份的注意事项与最佳实践备份前检查敏感信息导出配置文件前需检查其中是否包含敏感信息,包括代理节点的密码、UUID、PSK密钥以及自建服务器的IP地址和端口等。这些信息以明文形式存储在config.yaml文件中,若将配置文件分享给他人或上传至公开网络,可能导致节点凭证泄露。建议在分享配置前移除或替换敏感节点信息,仅保留规则和策略组结构供他人参考。对于个人备份,确保备份文件存储在安全位置,避免未授权访问。配置文件版本管理对于频繁调整规则的进阶用户,建议对配置文件进行版本管理,便于追踪规则变更历史和快速回滚。可将config.yaml文件纳入Git版本控制系统,每次规则修改后提交版本注释,记录修改内容和原因。当配置错误导致网络中断时,可通过gitcheckout快速回退到之前的稳定版本。对于不使用版本控制系统的用户,建议在每次重大规则调整后保留一份带日期后缀的备份文件(如config_20260818.yaml),并存档于云存储或NAS中。多设备配置同步的方案选择在多设备间同步Clash配置时,可根据设备数量和配置复杂度选择合适的同步方案。对于少量设备,手动备份和导入最为可靠,配置完全由用户控制。对于多台设备的统一管理,可使用云存储同步配置文件夹,或搭建私有Git仓库实现跨设备自动同步。部分用户通过自建的订阅转换服务(如Sub-Store)统一管理节点和规则,生成标准配置供多设备订阅使用。选择方案时需平衡配置一致性、更新及时性和操作便捷性三个因素。常见问题FAQ

教程

Clash vpn怎么查看当前流量命中了哪条规则?

在ClashVPN中查看当前流量命中的规则,最直接的方式是使用ClashVergeRev的「连接」面板,位于主界面左侧菜单栏。打开连接面板后,点击任意一条活跃连接即可查看该请求命中的具体规则名称和动作类型,显示为DIRECT表示直连、PROXY表示走代理、REJECT表示被拒绝。若连接面板信息不足以定位问题,将Clash日志级别调至Debug,日志会逐条输出流量经过的规则匹配过程,帮助精确定位规则覆盖和顺序冲突。配合SubMagic等浏览器扩展可在浏览器中直接查看当前页面的规则命中情况,无需在客户端和浏览器间反复切换。连接面板中显示MATCH时需检查MATCH规则的动作是否与预期一致,MATCH本身不是错误。若自定义规则在连接面板中始终未显示命中,检查规则是否通过prepend-rules前置插入到订阅规则之前,并确认域名后缀拼写正确。订阅配置的规则在连接面板中同样会正常显示,与自定义规则无显示差异,均可通过面板排查分流逻辑是否正确。连接面板是查看命中规则的核心入口在ClashVergeRev中找到连接面板ClashVergeRev的「连接」面板是查看每条流量具体命中规则的最直观工具,位置在主界面左侧的菜单栏中。打开客户端后点击左侧的「连接」或「Connections」标签页,页面会实时显示当前所有活跃的网络连接列表,包括每个请求的目标地址、协议类型、传输速率和当前状态等信息。每条连接都对应着一次从设备发出的网络请求,无论是浏览器访问网页、软件更新还是系统后台通信,都会在此面板中展示,用户可通过该面板全面了解流量的路由情况。点击连接查看命中的具体规则在「连接」面板中,点击任意一条活跃连接即可查看该请求的详细信息,包括最终命中的具体规则名称和动作类型。点击连接后会弹出一个详情窗口或展开该连接的详细信息区域,其中“Rule”字段明确显示了该请求匹配的是config.yaml中rules字段的哪一条规则。如果命中的是GEOIP,CN,DIRECT,说明该请求的目标IP被判断为国内IP并直连放行;如果命中MATCH,PROXY,则说明该请求未匹配任何前面的规则,最终落到了兜底规则上走代理通道。连接面板支持筛选和搜索功能在连接数量较多的情况下,ClashVergeRev的连接面板提供了筛选和搜索功能,帮助用户快速定位特定请求。用户可按协议类型(TCP/UDP)筛选连接,或在搜索框中输入目标域名或IP地址进行查找。当需要排查特定网站的分流问题时,在搜索框中输入该网站的域名,即可快速筛选出对应的连接并查看其命中的规则。筛选功能大幅提升了大量并发连接场景下的排查效率,避免了在冗长的连接列表中逐一翻找。通过连接面板反馈调整规则配置对比预期规则与实际命中结果在「连接」面板中查看命中规则后,将其与预期的分流策略进行对比,可快速判断规则配置是否正确。当访问某个境外网站时,预期该请求应走代理通道,但「连接」面板显示为GEOIP,CN,DIRECT,说明该网站的IP被GeoIP数据库判断为中国IP并被直连放行,需要更新GeoIP数据库或为该域名添加精确的DOMAIN-SUFFIX代理规则。当访问某个国内网站时,预期直连但显示为MATCH,PROXY,说明该网站未被国内直连规则匹配,需检查GEOIP,CN,DIRECT或GEOSITE,cn,DIRECT规则是否存在于规则列表的适当位置。命中MATCH规则的排查思路当某个请求在「连接」面板中显示命中MATCH规则时,说明该请求未匹配rules字段中MATCH之前的任何规则,最终落到了兜底规则上。这种情况通常表明精确规则未能正确匹配该请求,可能的原因包括:域名后缀拼写错误(如DOMAIN-SUFFIX,google.com,PROXY写成DOMAIN-SUFFIX,gooogle.com,PROXY),规则被放在了MATCH之后导致永远无法执行,或订阅更新后自定义规则被覆盖丢失。检查对应域名的精确规则是否存在于规则列表中且位于MATCH之前,修正后重新加载配置即可使规则生效。通过连接面板验证规则修改效果在修改或添加规则后,可在「连接」面板中实时验证新规则的生效情况。在ClashVergeRev中添加或修改规则并重新加载配置后,在连接面板中访问目标网站,查看该请求命中的规则名称是否已更新为预期的自定义规则。若显示为预期规则,说明配置修改已成功生效;若仍显示为旧规则或MATCH,则说明新规则未正确匹配,需检查规则的拼写、位置和格式。连接面板的实时反馈缩短了规则调试的周期,无需反复查看日志文件即可确认配置效果。结合日志输出深入排查复杂问题将日志级别调至Debug获取详细匹配信息当「连接」面板显示的命中规则不足以定位问题时,将Clash的日志级别调整为Debug可获取每条流量的完整规则匹配过程。在ClashVergeRev的「设置」或「日志」页面中,将日志级别从默认的Info或Silent切换为Debug,然后重现访问目标网站的操作。Debug级别的日志会输出每条流量依次检查了哪些规则、在哪个匹配点终止以及最终选定的处理动作,信息粒度远细于连接面板的简化显示,适合排查复杂的分流问题。日志中的规则匹配顺序跟踪Debug日志会按时间顺序记录每条流量的规则匹配全过程,用户可追踪流量从第一条规则到最后命中规则的完整路径。日志输出中会依次显示流量经过的每条规则的匹配结果,例如[Rules]GEOIP,CN,DIRECT:notmatch表示该规则未匹配,[Rules]DOMAIN-SUFFIX,google.com,PROXY:match表示在该规则处匹配成功。通过逐条检查日志中的匹配记录,可精确定位是哪条规则提前拦截了预期匹配,或确认精确规则是否因位置靠后而未被检查到。这种方法适用于规则顺序复杂或涉及多个规则集相互作用的场景。日志排查规则未生效的典型场景当自定义规则在「连接」面板中始终显示未命中时,Debug日志可揭示其根本原因。常见场景包括:自定义规则被放在了订阅规则之后,但日志显示流量在到达自定义规则前已被订阅规则匹配并处理,说明需要通过prepend-rules将自定义规则前置;或规则集文件下载失败导致RULE-SET规则未加载,日志会输出failedtodownloadrule-set的明确错误;或域名后缀拼写错误导致流量无法匹配,日志中不会出现该规则的匹配记录。根据Debug日志的输出,可快速定位问题类型并采取针对性的修复措施。使用浏览器扩展辅助查看命中规则SubMagic扩展的规则查看功能SubMagic等Clash管理工具提供了配套的浏览器扩展,安装后可在浏览器中直接查看当前访问网站命中的分流规则,无需切换回Clash客户端界面。扩展安装并连接到Clash客户端后,访问任意网站时扩展图标上会显示当前请求的实时状态,点击扩展可查看该请求命中的具体规则名称和动作类型。这种查看方式比「连接」面板更便捷,尤其适合频繁切换不同网站测试规则效果的场景,所有规则命中信息直接显示在浏览器工具条上,无需在多个窗口之间切换。扩展显示与连接面板的信息对照浏览器扩展显示的规则命中信息与ClashVergeRev「连接」面板中的数据来源一致,两者可相互对照验证。当扩展显示某网站命中了GEOIP,CN,DIRECT而连接面板显示相同结果时,说明信息准确可靠;若两者不一致,可能存在数据同步延迟或连接缓存问题,建议刷新连接面板或重新加载配置后再行对照。扩展通常仅显示当前激活标签页的请求信息,无法查看系统后台或其他应用的连接,因此连接面板在全面排查时仍不可替代。扩展安装与连接配置要点使用浏览器扩展前需确保Clash的external-controller(外部控制器)端口已正确配置且可访问,该端口默认为9090。在Clash配置文件中确认external-controller:127.0.0.1:9090存在且未被注释,并确保防火墙未阻止本地回环端口的通信。扩展连接到Clash时需在设置中输入正确的API地址(通常为http://127.0.0.1:9090)和密钥(若配置了secret字段)。连接成功后,扩展即可实时显示当前浏览器页面的规则命中情况。规则命中的常见误解与澄清显示DIRECT不代表规则未生效部分用户看到「连接」面板显示DIRECT时会误以为规则系统未生效或代理未开启,但这是对规则逻辑的误解。DIRECT本身就是一种有效动作,表示该请求被规则系统明确判定为直连,可能是GEOIP,CN,DIRECT匹配了国内网站,也可能是用户自定义的DOMAIN-SUFFIX,内网域名.com,DIRECT规则生效。只要显示的不是MATCH且该MATCH规则动作为DIRECT,就说明流量经过了规则系统的正常处理,只是处理结果为直连而已。显示MATCH不一定意味着配置错误连接显示MATCH并不总是配置错误,取决于MATCH规则的动作和用户预期。如果MATCH,PROXY是预期行为(即所有未匹配流量走代理),访问境外网站时显示MATCH属于正常分流逻辑,说明该网站未被任何国内直连规则匹配,正确落到了代理通道。如果用户希望某网站走代理但连接显示GEOIP,CN,DIRECT,这才属于配置错误,说明GeoIP数据库将该网站IP误判为国内IP导致直连。MATCH本身不是问题,问题在于MATCH的动作是否与预期一致。连接面板不显示DNS请求「连接」面板仅显示TCP和UDP网络连接,不显示单独的DNS解析请求。因此当用户遇到DNS解析问题时,连接面板中可能无法直接看到相关记录。DNS解析请求经过Clash内置DNS处理,其解析结果可在日志中查看,但不作为独立连接出现在连接面板中。若怀疑DNS解析异常导致特定网站无法访问,应结合Debug日志或nslookup命令验证域名解析结果,而非仅依赖连接面板的显示。常见问题FAQ

教程

Clash vpn订阅里的规则和自己写的规则哪个优先?

在ClashVPN中,规则优先级由规则在最终加载配置中的位置决定,订阅规则和自定义规则本身没有固定的优先级高低。订阅更新执行全量替换,直接修改订阅配置中的规则会被覆盖,无法永久保留。通过ClashVergeRev的Merge功能或Parsers预处理,使用prepend-rules可将自定义规则插入到订阅规则列表最前面,获得最高优先级且不随订阅更新被覆盖;append-rules将规则插入到订阅规则列表最后面,优先级低于所有订阅规则。在「连接」面板中可查看具体请求命中的规则名称,确认自定义规则是否已优先生效。若订阅中的错误规则需要覆盖,使用prepend-rules添加相同域名的精确规则可优先匹配,覆盖订阅中的错误处理。Merge配置和Parsers预处理方式均能实现自定义规则的永久保留,推荐普通用户使用ClashVergeRev的Merge功能,配置简单且直观。规则优先级取决于最终配置中的位置匹配顺序决定优先级而非规则来源ClashVPN的规则优先级完全由规则在最终加载的配置rules字段中的排列顺序决定,与规则来源于订阅还是用户自己编写无关。Clash遵循“自上而下、逐条匹配、先命中先生效”的核心匹配原则,排在越前面的规则拥有越高的优先级,无论该规则是服务商预设的还是用户手动添加的。当某条流量匹配到列表中的第一条符合条件的规则后,该规则的动作立即生效,后续规则不再参与判断。因此订阅规则和自定义规则谁优先的问题,本质上是这两类规则在最终合并后的配置中谁的物理位置更靠前。订阅规则作为基础配置先被加载通过订阅链接拉取的配置文件是ClashVPN规则体系的基础配置,包含了服务商预设的节点列表、策略组和分流规则。在订阅更新时,远端服务器返回的完整配置文件覆盖本地配置,其中的rules字段按服务商设定的顺序排列。这些订阅规则构成了分流的基准框架,覆盖了常见的国内直连、国外代理和广告拦截需求。但如果用户对默认的分流逻辑不满意,直接修改订阅配置中的规则顺序不是持久有效的方案,因为下次订阅更新会恢复为服务商的原始顺序。自定义规则的覆盖依赖于插入位置自定义规则能否获得优先权,完全取决于它被插入到最终配置中的位置。如果自定义规则被放置在订阅规则列表的后面,订阅规则会优先匹配,自定义规则仅作为补充兜底。如果自定义规则被前置插入到订阅规则列表的最前面,它将获得最高优先级,能够覆盖订阅中对同一域名的不同处理。用户无法直接修改订阅配置的规则顺序,因为订阅更新会覆盖本地改动,必须通过Clash提供的规则叠加机制来控制自定义规则的插入位置。直接修改订阅配置会被更新覆盖全量替换是订阅更新的工作机制ClashVPN执行订阅更新时,远端服务器返回的配置文件会完整替换本地的config.yaml文件,这意味着直接在订阅配置中修改的任何内容(包括添加规则、调整顺序、修改策略组)在下次更新时都会丢失。这种全量替换机制确保了服务商对节点和规则的更新能够一致地应用到所有用户,但同时也意味着用户无法通过直接修改订阅文件来永久保留自定义配置。如果用户尝试在订阅配置的rules字段中手动添加规则并保存,执行订阅更新后这些新增规则会被完全抹去,恢复到服务商预设的规则列表。订阅更新后手动修改的规则丢失当用户直接在Clash配置编辑器或config.yaml文件中修改订阅配置的rules字段后,执行订阅更新时所有手动添加的规则和调整的顺序都会消失。这是因为订阅更新拉取的新配置文件完整覆盖了本地文件,之前所做的所有本地修改都不再保留。用户可能会发现之前为特定网站配置的精确规则在更新后失效,该网站的流量又回到了服务商预设的分流逻辑。这种修改方式只适合临时测试或调试目的,不能作为长期保留自定义规则的手段。不修改订阅文件本身的必要性为了实现自定义规则的持久保存,用户不应直接在订阅配置文件中添加或修改规则,而应使用Clash提供的规则叠加机制。直接修改订阅文件的操作方式从根本上与订阅的全量替换机制不兼容,无论修改多少次,每次订阅更新都会将配置重置为服务商的最新版本。正确的做法是将自定义规则存放在独立的配置层中,通过Merge功能或Parsers预处理在订阅配置加载时动态合并,既不修改订阅文件本身,又能确保自定义规则在每次更新后自动生效。通过Merge功能前置自定义规则prepend-rules将规则插入列表最前面在ClashVergeRev的Merge功能(全局扩展配置)中,使用prepend-rules字段可将自定义规则插入到订阅规则列表的最前面,获得最高优先级。配置示例为prepend-rules:-"DOMAIN-SUFFIX,special-site.com,PROXY"-"PROCESS-NAME,Steam.exe,游戏节点组",这些规则会被强制放置在订阅rules字段的顶部,优先于任何订阅规则匹配。prepend-rules适用于需要覆盖订阅中错误规则或确保特定域名优先匹配的场景。由于Merge配置存储在独立文件中,不随订阅更新而被覆盖,自定义规则可永久保留在订阅规则之前。append-rules作为补充规则使用与prepend-rules相对,append-rules将自定义规则插入到订阅规则列表的最后面(在MATCH之前),作为订阅规则的补充。配置示例为append-rules:-"DOMAIN-SUFFIX,some-ad-site.com,REJECT",这些规则仅在订阅规则未匹配时生效,优先级低于所有订阅规则。append-rules适合添加兜底性质的通用规则,如额外的广告拦截或特定域名直连,不希望干扰订阅中已有的分流逻辑。需要特别注意,append-rules添加的规则位于订阅MATCH规则之前,因此不会覆盖订阅MATCH的兜底作用。Merge配置的自定义规则永久保留Merge配置存储在ClashVergeRev的独立配置文件中,与订阅配置文件分开管理,因此不会因订阅更新而被覆盖。每次加载配置时,Clash会先拉取订阅配置,再将Merge配置中的prepend-rules和append-rules规则合并到rules字段的相应位置。这种叠加机制确保了自定义规则在每次订阅更新后都能自动恢复,用户无需每次更新后重新添加规则。Merge配置可以随时编辑和调整,新增的自定义规则在保存并重新加载配置后立即生效。通过Parsers预处理实现相同效果Parsers在订阅更新时自动修改配置Clash的Parsers预处理机制可在订阅更新时对拉取的配置文件执行自动化修改,将自定义规则插入到订阅规则列表中指定位置。Parsers配置在Clash配置文件中(通常在config.yaml的顶层字段),格式为parsers:-url:订阅链接yaml:prepend-rules:-"DOMAIN-SUFFIX,special-site.com,PROXY"。当执行订阅更新时,Clash会先拉取订阅配置,再根据Parsers规则对配置进行修改,将prepend-rules中的规则插入到订阅rules字段最前面,然后将修改后的配置加载到内核中。Parsers方式与Merge功能效果相同,但配置方式更底层。为不同订阅配置独立的Parsers规则当用户同时使用多个订阅链接时,可为每个订阅配置独立的Parsers规则,实现差异化的自定义策略。在Parsers配置中,通过url字段指定对应的订阅链接,只有匹配该链接的订阅更新时才会应用对应的预处理规则。例如订阅A需要特定域名走代理,订阅B需要内网直连,可分别为两个订阅配置不同的prepend-rules。这种方式适合管理多个服务商的订阅,每个订阅独立维护自定义规则而不互相干扰,且所有自定义规则均在订阅更新时自动应用。Parsers与Merge功能的选择建议Parsers和Merge功能都能实现自定义规则的持久保存,但适用场景和配置方式有所不同。Parsers在订阅更新时对配置文件进行预处理,将自定义规则直接写入拉取后的配置中,适用于需要深度修改订阅配置的场景,配置复杂度较高。Merge功能在客户端加载配置时进行规则叠加,不修改订阅文件本身,操作简便且界面直观。对于大多数普通用户,推荐使用ClashVergeRev的Merge功能,无需编写复杂的Parsers配置,通过图形界面即可完成规则的叠加和顺序控制。规则覆盖与冲突的实际表现订阅规则与自定义规则的冲突处理当自定义规则与订阅规则对同一域名规定了不同的动作时,规则在最终配置中的位置决定了实际生效的动作。如果自定义规则通过prepend-rules前置插入,它会优先匹配,覆盖订阅中的冲突规则。例如订阅中配置DOMAIN-SUFFIX,example.com,DIRECT,而用户希望该域名走代理,通过prepend-rules添加DOMAIN-SUFFIX,example.com,PROXY后,该规则位于订阅规则之前,流量会走代理而非直连。如果自定义规则通过append-rules后置添加,订阅规则会优先匹配,自定义规则仅在订阅规则未命中时生效,无法覆盖订阅中的冲突规则。在连接面板中查看命中的规则ClashVergeRev的「连接」面板可实时显示每条活跃连接所匹配的规则名称和动作类型,是验证自定义规则是否优先于订阅规则的最直接工具。当访问特定网站时,在「连接」面板中找到对应的连接,点击查看其命中的具体规则。如果显示为自定义规则名称(或prepend-rules中的规则),说明自定义规则已成功前置并优先生效。如果显示为订阅中的某条规则,说明自定义规则未正确前置,可能被放在了订阅规则之后或被订阅规则覆盖。通过「连接」面板的反馈,可快速调整Merge或Parsers配置,确保自定义规则获得预期优先级。规则顺序调整对优先级的影响在Merge配置中添加或删除prepend-rules中的规则时,prepend-rules内部的顺序同样遵循“从上到下、先命中先生效”的原则,靠前的规则优先匹配。用户可在prepend-rules列表中调整自定义规则的排列顺序,实现不同自定义规则之间的优先级控制。prepend-rules中的所有规则都位于订阅规则之前,因此任何自定义规则都优先于任何订阅规则。如需让某条自定义规则优先于其他自定义规则,只需在prepend-rules列表中将该规则放在更靠前的位置即可。常见问题FAQ

教程

Clash vpn规则组(Rule Provider)功能怎么用?

在ClashVPN中,RuleProvider功能用于将规则集从主配置文件中抽离到外部独立管理,通过在config.yaml的rule-providers字段中声明规则集的类型(domain/ipcidr/classical)、远程URL地址、本地缓存路径和更新间隔,然后在rules字段中通过RULE-SET,规则集名称,动作引用。社区维护的Loyalsoldier/clash-rules规则集提供reject(广告拦截)、proxy(代理域名)、direct(直连域名)、private(私有域名)、apple(苹果直连)、cncidr(中国IP段)等分类,通过GitHubActions每日自动构建。推荐的白名单模式规则顺序为:RULE-SET,private,DIRECT→RULE-SET,reject,REJECT→RULE-SET,proxy,PROXY→RULE-SET,direct,DIRECT→GEOIP,CN,DIRECT→MATCH,PROXY兜底。订阅配置中直接添加RuleProvider声明会被更新覆盖,需通过ClashVergeRev的Merge功能或Parsers预处理将rule-providers和RULE-SET声明叠加到订阅配置之上永久保留。不同behavior类型需匹配规则集实际内容,域名列表用domain,IP段列表用ipcidr,混合类型用classical。若规则不生效,在Clash日志中查看规则集下载状态,确认RULE-SET引用名称与rule-providers声明一致,并检查Merge或Parsers配置是否正确叠加。RuleProvider的基本概念与核心价值将庞大规则集从主配置中抽离RuleProvider是ClashVPN中用于将大量分流规则从主配置文件中抽离出来、独立管理的功能机制。当用户需要管理数百甚至数千条规则时,直接将所有规则写在config.yaml的rules字段中会使配置文件臃肿不堪,加载耗时增加且难以维护。RuleProvider允许将规则集存放在外部文件(本地或远程URL)中,主配置文件仅需声明规则集的引用地址和更新间隔即可,加载时Clash内核会自动拉取并应用这些外部规则集。自动更新保持规则时效性社区维护的规则集(如Loyalsoldier/clash-rules)通常通过GitHubActions等自动化工具每日构建,确保广告域名、代理域名和直连域名列表的时效性。用户配置RuleProvider后,Clash会按照设定的interval参数(如86400秒即24小时)定期从远程URL拉取最新规则文件并自动加载,无需用户手动更新。这种方式将规则维护工作从用户手中转移到社区维护者手中,用户只需引用规则集即可享受持续更新的分流配置。降低主配置文件体积将规则集外置到独立文件中,主配置文件仅保留少量自定义规则和RULE-SET引用声明,文件体积大幅减小。Clash在启动或重新加载配置时,解析主配置文件的速度显著提升,启动耗时缩短。在硬路由等性能受限设备上,这种方案尤其有价值,因为主配置文件的小体积降低了内存占用,而外置规则集可按需加载。社区维护的规则集通常同时提供YAML和二进制两种格式,硬路由用户可选用解析更高效的格式。RuleProvider的配置结构与声明方法在config.yaml中声明rule-providers字段RuleProvider的配置在config.yaml中位于rule-providers顶层字段下,每个规则集作为一个独立的条目声明。一个标准的RuleProvider声明包含type(类型)、url(规则集地址)、path(本地缓存路径)和interval(更新间隔)四个核心属性。配置示例为rule-providers:reject:type:httpbehavior:domainurl:"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"path:./ruleset/reject.yamlinterval:86400,表示从远程URL拉取广告拦截域名列表,每24小时更新一次,缓存到本地ruleset目录。behavior参数决定规则匹配行为RuleProvider中的behavior参数决定了规则集内部的匹配类型,可选值为domain(域名匹配)、ipcidr(IP段匹配)和classical(经典模式)。behavior:domain表示规则集文件中的每个条目为域名格式(如google.com),Clash按域名后缀匹配。behavior:ipcidr表示每个条目为CIDR格式的IP段(如192.168.0.0/16),按IP地址匹配。behavior:classical则支持混合类型的规则(包含域名、IP段和通配符),但匹配效率相对较低。社区维护的规则集通常按类型分开提供,用户可根据分流需求选择对应的behavior类型。path本地缓存与更新机制path参数指定规则集下载到本地的存储路径,Clash在首次加载配置时从url地址下载规则文件并保存到该路径,后续加载时优先读取本地缓存文件,仅在达到interval设定的更新间隔时才重新拉取远程版本。这种机制确保在远程源不可用时仍能使用缓存的规则集,提高了配置的容错性。建议将path设为相对路径(如./ruleset/),并确保该目录存在且Clash进程有读写权限。若本地缓存文件损坏或需强制更新,删除对应缓存文件后重新加载配置即可触发重新下载。在rules中引用RuleSet的方法RULE-SET规则的编写格式在主配置文件的rules字段中,通过RULE-SET规则类型引用已在rule-providers中声明的规则集。格式为RULE-SET,规则集名称,动作,例如RULE-SET,reject,REJECT表示将reject规则集中列出的所有域名请求直接拒绝。RULE-SET规则与其他规则类型共用同一个rules列表,遵循“从上到下、先命中先生效”的匹配顺序,因此需要合理规划RULE-SET规则在列表中的位置。白名单模式与黑名单模式的规则顺序社区维护的规则集通常提供白名单和黑名单两种推荐配置模板,两者的RULE-SET顺序安排直接影响分流效果。白名单模式(未匹配规则全部走代理)的推荐顺序为:RULE-SET,private,DIRECT(私有域名直连)→RULE-SET,reject,REJECT(广告拦截)→RULE-SET,icloud,DIRECT(iCloud直连)→RULE-SET,apple,DIRECT(苹果服务直连)→RULE-SET,proxy,PROXY(代理域名走代理)→RULE-SET,direct,DIRECT(国内域名直连)→GEOIP,CN,DIRECT(国内IP直连)→MATCH,PROXY兜底走代理。黑名单模式(仅匹配规则走代理)则将MATCH,DIRECT作为兜底,适用于代理节点线路质量不稳定或流量有限的场景。自定义规则与RULE-SET的优先级安排当同时使用自定义精确规则和外部RULE-SET时,应通过Merge功能或Parsers将自定义规则放在rules列表最前面,确保其优先级高于RULE-SET规则。例如用户希望DOMAIN-SUFFIX,special-site.com,PROXY优先匹配,则需将该规则放在RULE-SET,proxy,PROXY之前。自定义规则放在前面可覆盖RULE-SET中对同一域名的不同处理,实现个性化分流策略。若自定义规则放在RULE-SET后面,可能被RULE-SET中的宽泛规则提前匹配而失效。订阅配置中RuleProvider的持久化直接修改订阅配置会被覆盖直接在订阅配置文件中添加rule-providers和RULE-SET声明,执行订阅更新时会被服务商的最新配置覆盖而丢失。这是因为订阅更新执行的是完整的配置文件替换操作,所有本地修改都会被抹去。若需要长期使用RuleProvider功能,必须使用Clash的Merge功能或Parsers预处理机制将rule-providers和RULE-SET声明叠加到订阅配置之上。使用Merge功能叠加RuleProvider声明在ClashVergeRev中,通过“全局扩展配置(Merge)”功能可将rule-providers和RULE-SET声明叠加到订阅配置中。在Merge的YAML编辑框中添加完整的rule-providers字段声明和prepend-rules中的RULE-SET规则,保存后每次加载配置时自动合并到订阅配置中。Merge规则存储在独立文件中,不随订阅更新而被覆盖,从而实现RuleProvider配置的持久化。对于不同订阅配置,可使用不同的Merge配置,实现差异化的规则集管理。Parsers预处理的配置方式Clash的Parsers预处理机制同样可用于在订阅更新时将rule-providers声明插入到配置文件中。在Parsers配置中指定订阅链接和要添加的YAML内容,包括rule-providers字段和prepend-rules中的RULE-SET规则。每次执行订阅更新时,Parsers会在拉取订阅配置后将自定义内容合并到配置中,确保RuleProvider声明在配置加载前已就位。Parsers方式适合需要在多个订阅配置中复用同一套RuleProvider声明的用户,配置一次即可在所有订阅中生效。常用社区规则集与最佳实践Loyalsoldier/clash-rules规则集Loyalsoldier/clash-rules是目前Clash社区最广泛使用的规则集之一,通过GitHubActions每日自动构建,提供reject(广告拦截)、proxy(代理域名)、direct(直连域名)、private(私有域名)、apple(苹果服务直连)、telegramcidr(TelegramIP段)、cncidr(中国IP段)等分类规则集。该规则集同时提供YAML文本格式和mrs二进制格式,适用于不同性能需求的设备。用户可引用其中全部或部分规则集,构建白名单或黑名单模式的分流配置,无需自行维护庞大的规则列表。选择合适的behavior类型引用社区规则集时,需根据规则集文件的实际内容选择正确的behavior类型。域名列表类型的规则集(如reject.txt、proxy.txt、direct.txt)应使用behavior:domain,IP段列表类型(如cncidr.txt、telegramcidr.txt)应使用behavior:ipcidr,混合类型(如applications.txt)则使用behavior:classical。错误指定behavior类型会导致规则匹配失效,例如将IP段规则集设为domain类型,Clash会尝试将IP地址作为域名进行匹配,导致所有规则都无法命中。白名单与黑名单模式的场景选择白名单模式(MATCH,PROXY兜底)适合代理节点线路质量稳定、流量充足的用户,所有未匹配的境外流量默认走代理,分流覆盖更全面。黑名单模式(MATCH,DIRECT兜底)适合节点线路不稳定或流量有限的用户,仅明确列出的域名走代理,未匹配流量直连,可避免不必要的代理流量消耗。硬路由用户通常偏好黑名单模式以减少代理流量对家庭网络的负载,而桌面端用户多选择白名单模式以最大化网络可达性。常见问题FAQ

教程

Clash vpn规则太多会影响性能吗?有数量上限吗?

在ClashVPN中,规则匹配采用“从上到下、逐条比对”的线性遍历方式,规则数量增加会延长每条流量的平均匹配耗时,但Clash内核本身未设置硬性的规则数量上限,实际限制取决于设备的可用内存和CPU性能。在桌面设备上,数千条规则仍能流畅运行,规则数量对性能的影响几乎无感知。在硬路由等性能受限设备上,应使用Mihomo内核的mrs二进制格式规则集降低资源占用,并通过RULE-SET将规则集外置而非在rules中逐条声明大量规则,可显著减少内存占用和启动耗时。建议将高命中率规则(如内网直连、国内IP直连)放在规则列表前面,减少平均匹配次数。使用社区维护的规则集(如Loyalsoldier/clash-rules)可替代自行维护大量规则,通过RULE-SET引用即可获得精细化分流效果。精简冗余规则、定期清理已过时的规则条目,可保持规则列表的高效匹配性能。订阅配置中的规则无法直接删减,但可通过Merge功能的prepend-rules插入自定义规则覆盖订阅中的冗余规则,减少实际匹配时的遍历开销。规则数量对匹配效率的影响机制逐条匹配的线性遍历逻辑Clash的规则匹配采用“从上到下、逐条比对”的线性遍历方式,每条流量进入规则系统后需要从第一条规则开始依次检查,直到命中某条规则或到达最后的MATCH兜底规则。当规则数量增加时,每条流量平均需要遍历的规则条数也随之增长,匹配耗时相应增加。在拥有数百条规则的配置中,一条境外流量的匹配路径可能需要经过几十条直连规则、域名规则和IP规则后才能落到MATCH,PROXY上,匹配耗时在毫秒级别,但在高并发场景下会积累成为可感知的延迟。规则类型对匹配效率的差异化影响不同类型的规则在匹配效率上存在显著差异,这对性能的影响比单纯的数量更重要。DOMAIN和DOMAIN-SUFFIX等域名类规则可在DNS解析前完成匹配,无需额外网络请求,匹配速度最快。GEOIP和IP-CIDR等IP类规则需要获取目标IP地址,可能触发DNS解析或数据库查询,匹配耗时相对较长。GEOSITE规则依赖预编译的域名分类数据库,查找效率介于域名规则和IP规则之间。在大量规则混合使用时,IP类规则的数量对性能的影响大于域名类规则。高并发场景下的性能累积效应在单条连接的场景中,数百条规则的匹配耗时差异几乎无法感知,但在高并发场景下,累积效应会使性能影响变得明显。当Clash同时处理数十或数百条并发连接时,每条连接都需要独立执行完整的规则匹配流程,规则数量越多,内核的CPU负载越高。在支持硬件AES加速的现代设备上,这种影响微乎其微;在低端路由器或老旧设备上,大量规则可能导致代理服务的整体吞吐量下降。实际使用中,大部分用户的规则数量在数十至数百条之间,现代设备完全能够从容应对。规则数量上限的技术限制Clash内核未设置硬性数量上限Clash内核本身未对rules字段中的规则数量设定硬性的上限值,用户可在配置文件中声明成百上千条规则而不触发内核拒绝加载。实际数量限制更多受限于设备的可用内存和CPU处理能力,而非Clash软件本身的代码限制。在内存充足的设备上,数千条规则仍可正常工作,配置加载和规则匹配均不会出现明显问题。在内存受限设备上,过多规则可能因内存不足导致内核启动失败或运行不稳定。配置文件大小与加载耗时的关系规则数量增加直接导致配置文件(config.yaml)体积增大,Clash在启动或重新加载配置时需要完整解析该文件并构建内存索引结构。文件越大,解析耗时越长,内核启动和配置重载的等待时间越久。对于订阅配置中包含数百条规则的情况,建议使用RULE-SET将规则集外置到单独文件中,主配置文件仅保留引用声明,大幅减少主文件体积和加载耗时。外置规则集的更新也不影响主配置文件的加载效率。使用RULE-SET实现规模化规则管理当规则数量较多时,使用RULE-SET配合rule-providers是最佳的规模化方案。rule-providers允许将规则集放在外部文件(本地或远程URL),客户端按设定间隔自动拉取更新。外部规则集独立于主配置文件存在,不会增加主配置文件体积,且支持二进制格式(mrs),加载效率远高于在rules中逐条声明大量规则。社区维护的Loyalsoldier/clash-rules规则集包含数千条规则,通过RULE-SET引用即可使用,用户无需在配置文件中逐一书写,显著提升了规则管理的可维护性。不同设备性能下的规则承载能力现代PC设备的规则承载能力在主流桌面设备上,规则数量对性能的影响几乎可以忽略,现代CPU和充裕的内存足以支持数千条规则的实时匹配。在Windows、macOS或Linux桌面环境中,即使配置中包含数千条规则,Clash的CPU占用率通常保持在较低水平,规则匹配耗时的增加在人感知阈值以下。桌面端用户可根据分流需求自由配置规则,无需过分担心数量对性能的影响,只需关注规则顺序的逻辑正确性即可。硬路由与低端设备的性能优化策略在硬路由、树莓派或老旧设备上运行Clash时,应特别注意规则集的使用方式和数量控制。低端设备的CPU性能和可用内存有限,大量规则会显著影响代理服务的响应速度和稳定性。社区建议避免在这些设备上使用classical类型的规则集,转而使用Mihomo内核独有的mrs二进制格式规则集,该格式可以大幅减少启动时的内存占用和CPU消耗。对于硬路由用户,使用RULE-SET引用外部规则集相比在rules中逐条声明大量规则,能显著降低内存占用和规则加载耗时。使用mrs二进制格式降低资源消耗mrs格式是Mihomo内核独有的规则集二进制格式,相比YAML或文本格式具有更快的解析速度和更小的内存占用。在硬路由等性能受限设备上,优先选择Mihomo内核并使用mrs格式的规则集是提升性能的关键措施。社区维护的规则集通常同时提供YAML和mrs两种格式,硬路由用户应优先使用mrs版本。若客户端不支持mrs格式,考虑升级至基于Mihomo内核的客户端版本(如ClashVergeRev),以获得更好的性能优化和格式兼容性。优化规则性能的实践方法精简冗余规则,合并同类项定期审查规则列表,删除长期未命中或已过时的规则条目,可有效减少规则总数并提升匹配效率。将多条作用相同的规则合并为一条,例如多条相同动作的DOMAIN-SUFFIX规则可通过RULE-SET统一管理。对于订阅配置中包含的不需要的规则,可通过Merge功能中的prepend-rules覆盖或跳过,而非在订阅规则之后追加更多规则,避免规则列表持续膨胀。精简后的规则列表不仅提升匹配效率,也降低了配置文件的维护复杂度。将高命中率规则放在列表前面将命中频率高的规则放在规则列表前面,可让大部分流量在匹配较少规则后即被处理,减少平均匹配耗时。在标准分流配置中,内网IP段直连规则(IP-CIDR,192.168.0.0/16,DIRECT)和国内IP直连规则(GEOIP,CN,DIRECT)通常命中率最高,应放在列表前部。精确域名规则(DOMAIN-SUFFIX)放在通用规则之前,避免被宽泛规则覆盖。MATCH兜底规则必须放在最后,其位置不影响性能,但错误的放置位置会导致规则失效。使用规则集替代逐条声明对于需要管理大量规则的场景,使用RULE-SET替代在rules中逐条声明规则,可显著减少主配置文件的体积和规则匹配的开销。rule-providers支持从远程URL定期拉取规则集,并支持mrs二进制格式,加载效率远超YAML格式。社区维护的规则集(如Loyalsoldier/clash-rules的reject、proxy、direct、private等分类)包含了数千条预分类规则,用户只需在配置中声明RULE-SET,reject,REJECT即可使用完整的广告拦截规则集,而不必在配置文件中逐一列出所有广告域名。规则集与订阅配置的协同优化使用Merge功能控制订阅规则数量订阅配置中的规则由服务商决定,用户无法直接删减,但可通过Merge功能控制哪些规则实际生效。通过prepend-rules将自定义精确规则插入到订阅规则列表最前面,让自定义规则优先匹配,订阅中的冗余规则即使存在也不会被频繁命中。用户无需手动删除订阅中的规则,只需确保自定义规则位于列表前面,高优先级的自定义规则会覆盖订阅中冲突的规则,实际匹配流程会提前终止,减少了不必要的规则遍历。通过Parsers预处理过滤订阅规则Parsers预处理机制不仅可用于添加规则,还可用于修改或删除订阅配置中的特定规则。在Parsers配置中使用prepend-rules插入自定义规则覆盖订阅中的错误规则,或使用append-rules在订阅规则之后追加补充规则。虽然Parsers无法直接从订阅中删除规则,但通过插入更高优先级的覆盖规则,可以达到屏蔽订阅中不需要的规则的效果。这种方式在不修改订阅文件本身的前提下,实现了对订阅规则的有效控制。平衡规则数量与性能的推荐方案对于大多数用户,推荐采用“精简主规则+引用规则集”的配置方案,在性能和灵活性之间取得最佳平衡。主配置文件(config.yaml)中仅保留少量高优先级的自定义精确规则(如内网直连、特定域名代理),通过RULE-SET引用社区维护的外部规则集处理常规分流,最后以MATCH兜底。这种方式将数千条规则外置到规则集中,主配置文件保持简洁,加载速度快,且规则集可独立更新。社区规则集的维护者持续更新域名和IP数据,用户无需自行维护大量规则,即可享受精细化的分流效果。常见问题FAQ

CLASHGUIDE
教程

世界,您好!

欢迎使用WordPress。这是您的第一篇文章。编辑或删除它,然后开始写作吧!