首页 › Clash 规则与 provider
Clash 的规则与 provider:同一条订阅为什么换客户端就变样
这一页不教你点哪个按钮——那种教程满地都是。它讲两件教程通常跳过、但恰好是故障来源的机制:订阅内容的格式由谁决定,以及规则为什么写了却不生效。
页面更新:2026-09-09
先说清 provider 是什么,它和订阅链接不是同一件事
很多人把「订阅链接」和配置里的 provider 当成一个东西,这是后面一连串困惑的起点。
订阅链接是一个地址,provider 是配置里描述「去这个地址取节点」的那一段。配置说明去哪取、多久取一次、取回来之后归到哪个策略组里;链接只负责返回内容。所以同一条链接,两份配置可以取出完全不同的可用节点集——差别在配置那一侧,不在链接。
这也解释了一个常见现象:换个客户端,节点少了一半。不是订阅缩水了,是新客户端里那段 provider 的写法(或它内核支持的格式)跟原来不同。
订阅内容有两种格式,客户端支持程度并不一致
服务端返回的内容通常是两种形态之一:一种是 Base64 编码的节点链接清单,一种是 YAML 格式的代理配置。
关键在于:这两种格式并非所有客户端都吃。有的只认其中一种,有的两种都认但对某些字段的解析不一样。于是同一条链接在 A 客户端里节点齐全,在 B 客户端里少几条或者干脆导入失败——而两边的报错都不会告诉你是格式问题。
判断方法很朴素:先确认这条链接返回的是哪一种。用浏览器打开,看到一整块无空格的乱码,多半是 Base64;看到成行的、带缩进的文本,是 YAML。⚠️ 如果看到的是一个普通网页或者 404,那通常不是链接坏了,而是这个源按 User-Agent 分流——换用客户端去拉一次再判断。知道是哪一种,才知道要找支持它的客户端,而不是反复重导。
规则写了却不生效,八成是顺序问题
这一条是本页最有用的一句:规则是自上而下匹配的,第一条命中就停止,后面的不再看。
所以一条写得过于宽泛的规则放在前面,会把后面所有更精确的规则全部吃掉。你新加的那条规则不是没生效,是从来没被读到。这一点和大多数人对「配置」的直觉相反——直觉会以为更精确的规则优先,实际是更靠前的规则优先。
排查方式:把你新加的那条移到最上面试一次。如果这样就生效了,问题确定是顺序,而不是规则写错。这个动作只改一处,结论也就只有一个解释。
「已连接但某个站点不通」通常不是线路问题
当整体能上网、只有某几个站点不通时,先怀疑规则而不是线路。可能性按常见程度排:
- 它被规则判给了直连,所以根本没走通道——表现和线路故障一模一样;
- 它被某个域名集合命中了,而那个集合的内容你没逐条看过;
- 它命中的策略组里,当前选中的节点是坏的,而其它组的节点是好的,于是「大部分正常」。
三种都不是换服务器能解决的。先看这个站点最终走了哪条策略——多数客户端的连接日志会显示每条连接命中了哪条规则,那一行就是答案,比任何猜测都直接。
这套东西适合谁,以及什么时候不划算
规则和 provider 的价值在于精细:你能决定每一类流量走哪条路,也能自己维护节点来源。代价是这两层的任何变动都由你来跟——服务端换了格式、客户端换了内核、某个域名集合更新了内容,都不会有人通知你。
如果你享受这种控制,这套东西很好用。如果你发现自己每周都在修配置,而原本只是想打开一个网页,那它对你就不划算了——把这三件事收在同一个责任方里的一体化客户端更省事,代价是线路池由对方给定。
两种都成立,只是别混着来:既不想理解规则,又不肯放弃对规则的控制,那是最累的一种状态。
如果末章那段说的是你
这一页讲的是规则与 provider 这两层的机制,末章也说清了它适合谁。如果你的结论是「我不想每周修配置」,那就换一个方向:本手册通篇只点一个名字——「远航极速」。它和这份手册出自同一批人,这一点写在明处,你自己判断要不要因此打折。
- 它不需要你维护订阅链接,也不需要你读规则顺序:本页那几层收在同一个责任方里;
- 安卓端的智能分流由它自己判断,国内流量直连、出境流量走通道;Windows 版没有这一项,是整机全量转发;
- 连接时自动挑延迟较低的线路,掉线后改走备用线路;
- 永久免费套餐起步,可以先验证稳不稳,再决定要不要花钱;
- 零日志设计,不记录你访问了哪些网站;
- 安卓侧 30 MB 以内、Windows 侧 50 MB 以内,不内置广告库,也没有塞数据分析 SDK;
- 原生客户端是安卓和 Windows 两个,其余平台我们没有自己的客户端。
这一页没有推荐任何第三方客户端,也没有给它们打分——上面讲的是机制,机制对所有客户端都成立。
据 mihomo(Clash Meta)官方 Wiki 的规则文档说明,规则按配置中出现的顺序自上而下匹配,一旦某条命中即采用其策略、不再继续往下比较。这正是「新加的规则看起来没生效」最常见的成因:它并非写错,而是被前面一条更宽泛的规则先命中了。(来源:mihomo(Clash Meta)官方 Wiki · 配置 · Rules(规则))
常见问题
同一条订阅链接,换个客户端节点就少了,是订阅的问题吗?
通常不是。订阅链接只负责返回内容,取哪些、怎么解析由配置里的 provider 那一段和客户端内核决定。两个客户端支持的格式或字段不同,取出的可用节点集就会不一样。
订阅内容有哪几种格式,怎么分辨?
常见两种:Base64 编码的节点链接清单,和 YAML 格式的代理配置。用浏览器打开链接,看到一整块无空格乱码多半是前者;看到成行、带缩进的文本是后者。知道是哪种,才知道该找支持它的客户端。
我加的规则为什么不生效?
八成是顺序。规则自上而下匹配,第一条命中就停,后面不再看,所以一条过于宽泛的规则放在前面会把后面全部吃掉。把新规则移到最上面试一次,如果生效了,问题就确定是顺序而不是写法。
规则是越精确越优先吗?
不是。是越靠前越优先。这一点和大多数人的直觉相反,也是最常见的配置困惑来源。
整体能上网,只有几个站点打不开,要换服务器吗?
先别换。这种形状通常是规则问题:这些站点被判给了直连、或者命中了某个你没逐条看过的域名集合、或者它们所在的策略组当前选中的节点是坏的。看连接日志里那条连接命中了哪条规则,比换服务器直接得多。
为什么日志里显示走了代理,网页却还是打不开?
走了代理只说明流量被送进了通道,不代表通道另一端通。这时问题下移了一层,属于连接本身而不是规则——换一个节点试,若全部节点都这样,才轮到怀疑服务端。
一定要用这类客户端吗?
不一定。它的价值是精细控制,代价是 provider 格式、客户端内核、域名集合内容这几层的变动都由你自己跟,没人通知你。如果你每周都在修配置而原本只想打开网页,一体化客户端把这些收在同一个责任方里,更省事。
继续阅读:V2Ray / Xray 配置 · 机场与订阅链接 · 连接后验证