Clash规则完全指南:2026最新分流规则/自定义配置、订阅链接推荐与编写教程

大家好,我是Dr. Sarah Chen,您的网络安全顾问。您是否正被这些问题困扰?

  • “为什么有些网站打不开,必须手动切换代理模式?”
  • “怎样才能让Netflix、YouTube等流媒体自动走最快的节点?”
  • “我想屏蔽App和网页里的广告,Clash能做到吗?”

这些问题的核心都指向同一个功能——Clash规则。

简单来说,Clash规则就是一套交通指挥系统,它能自动判断哪些网站应该走代理(翻墙),哪些应该直连(访问国内网站),哪些应该被屏蔽(去广告)。一套好的规则能让您的上网体验如丝般顺滑,无需任何手动干预。

本文就是您的终极解决方案。我们将先讲清社区规则集(“懒人包”)是怎么工作的,再深入规则的策略、语法和匹配原理,让您真正看懂每一条分流规则。

无论您是新手还是高手,都能在这篇指南中找到满意的答案。


第一部分:【懒人包】最佳Clash规则订阅推荐

对于大多数用户而言,手动维护规则费时费力。因此 Clash 生态里最常见的做法,是使用社区维护的远程规则集:规则集以一个 URL 的形式存在,代理核心会定期从这个地址拉取并更新上千条整理好的规则。

推荐的规则集:Loyalsoldier/clash-rules

这是目前最受欢迎和推荐的开源Clash规则项目之一,由社区共同维护,更新非常及时。

如何在Clash中添加规则订阅?

原理上,远程规则集通过配置文件里的“规则提供者”(Rule Provider)接入,分为两部分:

  1. 定义规则提供者:在 rule-providers 里声明规则集的名称、来源地址、本地缓存路径和更新间隔。一个定义大致长这样:

    rule-providers:
      Loyalsoldier-Rules: # 规则集的名称
        type: http
        behavior: classical # 或 domain
        url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/rules.txt"
        path: ./rules/Loyalsoldier-Rules.txt
        interval: 86400 # 更新间隔,单位为秒,86400秒为一天
  2. 在规则列表中引用:rules 列表里用一条 RULE-SET 规则引用这个规则集,并指定匹配后的策略。

    rules:
      - RULE-SET,Loyalsoldier-Rules,PROXY # 引用规则集,并指定匹配后的策略

这样,规则集里的上千条规则,就相当于被“插入”到了 RULE-SET 所在的位置。

想要比“懒人包”更简单的方案吗? FlashVPN 提供开箱即用的服务:FlashVPN 已正式停止支持第三方客户端,自家 App 与 Clash 同核心,内置基于规则的分流,无需另装客户端,也无需添加任何订阅链接或规则集。 查看价格与3天试用


第二部分:常见分流策略解析

规则的作用就是告诉Clash,匹配到的流量该执行哪种“策略”。理解这些策略是自定义分流的基础。

  • PROXY (代理):最核心的策略。所有匹配到此策略的流量,都会通过您选择的代理节点(例如美国、香港节点)进行访问。通常用于访问Google, YouTube, Netflix等服务。
  • DIRECT (直连):匹配此策略的流量将不通过代理,直接使用您本地的网络进行连接。通常用于访问国内网站和服务(如Bilibili、淘宝),可以最大化访问速度,节省代理流量。
  • REJECT (拒绝):匹配此策略的流量将被直接阻断。这是实现广告屏蔽和隐私追踪防护的关键。当一个请求(例如广告域名)匹配到REJECT规则,Clash会立即拒绝连接,您的设备上就不会显示这个广告。

通过组合使用这些策略,您可以创建出强大的分流系统,例如:

  • DOMAIN-SUFFIX,google.com,PROXY -> 所有Google网站走代理。
  • DOMAIN-SUFFIX,bilibili.com,DIRECT -> 所有B站的流量都直连。
  • DOMAIN-KEYWORD,adservice,REJECT -> 所有域名中包含“adservice”的流量都被屏蔽。

第三部分:【进阶篇】手動編寫你的專屬規則

如果社区提供的规则集仍然无法满足您极度个性化的需求(例如,您需要访问一个非常小众的网站,而规则集没有收录它),那么您可以学习如何手动编写自己的规则。

说明:本部分讲的是规则的写法和原理,面向想深入理解 Clash 分流机制的读者。

Clash规则的核心原理

在动手之前,我们必须理解Clash规则的工作机制。

核心思想:Clash的规则引擎就像一个严格的“门卫”。每当有一个网络请求(例如,访问 apple.com)试图通过时,门卫会从上到下地检查他的“规则列表”。一旦某个请求匹配到了列表中的某一条规则,门卫就会立刻按照该规则的指示放行(例如,交给“美国节点”处理),并且不再检查后续的规则。

这个“匹配即停止”的原则至关重要。

规则的基本语法

一条Clash规则通常由三个部分组成:类型, 值, 策略。

格式:TYPE,VALUE,POLICY

  • TYPE(类型):匹配的类型。最常用的有:

    • DOMAIN-SUFFIX:匹配域名后缀。例如 apple.com 可以匹配 www.apple.com 和 music.apple.com。
    • DOMAIN-KEYWORD:匹配域名中的关键词。例如 google 可以匹配 www.google.com 和 google.com.hk。
    • IP-CIDR:匹配一个IP地址段。
    • GEOIP:匹配特定国家或地区的IP。
    • FINAL:最终规则,当以上所有规则都未匹配时,执行此规则。
  • VALUE(值):您希望匹配的具体内容,例如 apple.com。

  • POLICY(策略):匹配成功后,要执行的动作。它可以是:

    • DIRECT:直连,不走代理。
    • REJECT:拒绝连接,常用于屏蔽广告。
    • 一个策略组的名称:例如 Proxy, US-Nodes, Streaming 等。也就是配置文件里定义的代理组。

示例:

  • DOMAIN-SUFFIX,apple.com,US-Nodes
    含义:所有以 apple.com 结尾的域名,都交给名为 “US-Nodes” 的策略组处理。
  • DOMAIN-KEYWORD,google,Proxy
    含义:所有域名中包含 google 关键词的,都交给名为 “Proxy” 的策略组处理。
  • GEOIP,CN,DIRECT
    含义:所有目标IP地址归属于中国的,都直接连接。
  • FINAL,Proxy
    含义:以上规则都未匹配的,默认都交给名为 “Proxy” 的策略组处理。

如何添加您的自定义规则?

在 Clash 的配置体系里,常见思路是“本地规则文件”:把自定义规则单独放在一个文件里,主配置只负责引用它。这样做的好处是,自定义规则和订阅生成的主配置分开,订阅更新时不会被覆盖。

步骤一:创建一个本地规则文件

本地规则文件就是一个纯文本文件,每行一条规则,格式与上文的 TYPE,VALUE,POLICY 相同。例如,让所有访问 openai.com 的流量走代理,并屏蔽一个广告域名 ads.example.com,规则写出来是这样的:

DOMAIN-SUFFIX,openai.com,Proxy
DOMAIN-SUFFIX,ads.example.com,REJECT

步骤二:在Clash中引用您的规则文件

引用的原理与远程规则集相同,只是来源从 http 换成了本地 file:

rule-providers:
  my-rules:
    type: file
    behavior: classical
    path: "./my-rules.txt" # 路径相对于配置文件目录

再在 rules 列表中用 - RULE-SET,my-rules,Proxy 引用它。由于“匹配即停止”,这条引用在列表中越靠前,优先级就越高。


大陆网络环境的三条实测避坑经验

通用教程不会告诉你的、只有在大陆网络里长期实测才踩得出来的坑:

  1. 国内直连白名单比黑名单可靠。 很多规则集默认「未匹配走代理」(MATCH,PROXY 兜底),结果国内小众网站、银行 App、政务服务被莫名代理,轻则变慢重则风控。更稳妥的规则结构,是把 GEOIP,CN,DIRECT 放在兜底规则之前,让所有中国 IP 流量直连。
  2. DNS 泄漏会让分流形同虚设。 如果 DNS 解析没走代理,国内 DNS 会把 Netflix 解析到错误的 CDN 节点,规则再对也白搭。Clash 的 fake-ip 增强模式让 DNS 解析也由代理核心统一处理,配合 TUN 模式这类系统级接管,才能从根上避免这个问题。
  3. 规则更新要走代理通道。 rule-providers 的 url 多在 GitHub/jsDelivr 上,国内直连时常失败——规则集拉取失败时,会出现「规则文件为空、全部流量走兜底」的诡异故障,因此规则更新本身也需要能经代理通道完成。类似的连接问题排查见《Clash 连不上怎么办》。

第四部分:常见问题 (FAQ)

Q1: 我添加了规则,为什么不生效?

A: 最常见的原因是规则的顺序。Clash规则是“匹配即停止”的,一个请求一旦匹配了前面的规则,就不会再看后面的。请确保您更精细、更具体的规则放在列表的更前面。例如,DOMAIN-SUFFIX,test.google.com,DIRECT 必须放在 DOMAIN-KEYWORD,google,PROXY 的前面,否则它永远不会被匹配。

Q2: 如何测试一条规则是否匹配成功?

A: 代理核心的连接记录和日志会实时记下每个网络请求命中了哪一条规则,以及它最终走了哪个策略(PROXY/DIRECT/REJECT),这是判断规则是否生效的依据。

Q3: 我可以合并多个规则集吗?

A: 可以。rule-providers 中可以定义多个规则集,再在 rules 列表中逐一引用。顺序同样重要。

Q4: 更新机场订阅后,我的手动修改会消失吗?

A: 如果直接修改由订阅链接生成的配置文件,那么会的,因为每次更新都会用新下载的配置覆盖本地文件。Clash 生态里的思路是把“节点来源”和“规则”分开:节点通过 proxy-providers 引用,规则单独维护,这样订阅更新只影响节点。

结论:您已成为网络架构师

理解了规则集的工作方式,您已经是一位高效的“交通调度员”。而看懂了规则的语法和“匹配即停止”的原理,您更是成为了自己网络世界的“架构师”,知道每一个数据包为什么会走向它该去的地方。

这无疑是Clash最吸引人的高级功能之一。希望本指南能帮助您真正看懂分流。

觉得手动配置和维护规则还是太复杂? FlashVPN 为您提供更终极的“懒人包”:FlashVPN 已正式停止支持第三方客户端,自家 App 与 Clash 同核心,内置基于规则的分流,零配置、无需另装客户端;规则模式和全局模式一键切换,见链接规则解释 / 设定。Windows、Android、Ubuntu 都有自家 App;iPhone 可通过 TestFlight 安装(中国区 Apple 账号也可以,见在iOS上使用FlashVPN);Apple 芯片的 Mac 直接运行 iOS 版 App。上手方法见新手入门指南。 查看价格与3天试用 | 下载FlashVPN官方客户端

下一步阅读推荐: