Skip to content
On this page

Rules 规则

快速入手中, 我们介绍了Clash中基于规则的匹配的基本知识. 在本章中, 我们将介绍最新版本的 Clash 中所有可用的规则类型.

txt
# 类型,参数,策略(,no-resolve)
TYPE,ARGUMENT,POLICY(,no-resolve)

no-resolve 选项是可选的, 它用于跳过规则的 DNS 解析. 当您想要使用 GEOIPIP-CIDRIP-CIDR6SCRIPT 规则, 但又不想立即将域名解析为 IP 地址时, 这个选项就很有用了.

策略

目前有四种策略类型, 其中:

  • DIRECT: 通过 interface-name 直接连接到目标 (不查找系统路由表)
  • REJECT: 丢弃数据包
  • Proxy: 将数据包路由到指定的代理服务器
  • Proxy Group: 将数据包路由到指定的策略组

规则类型

以下部分介绍了每种规则类型及其使用方法:

DOMAIN 域名

DOMAIN,www.google.com,policywww.google.com 路由到 policy.

DOMAIN-SUFFIX 域名后缀

DOMAIN-SUFFIX,youtube.com,policy 将任何以 youtube.com 结尾的域名路由到 policy.

在这种情况下, www.youtube.comfoo.bar.youtube.com 都将路由到 policy.

DOMAIN-KEYWORD 域名关键字

DOMAIN-KEYWORD,google,policy 将任何包含 google 关键字的域名路由到 policy.

在这种情况下, www.google.comgoogleapis.com 都将路由到 policy.

GEOIP IP地理位置 (国家代码)

GEOIP 规则用于根据数据包的目标 IP 地址的国家代码路由数据包. Clash 使用 MaxMind GeoLite2 数据库来实现这一功能.

WARNING

使用这种规则时, Clash 将域名解析为 IP 地址, 然后查找 IP 地址的国家代码. 如果要跳过 DNS 解析, 请使用 no-resolve 选项.

GEOIP,CN,policy 将任何目标 IP 地址为中国的数据包路由到 policy.

IP-CIDR IPv4地址段

IP-CIDR 规则用于根据数据包的目标 IPv4 地址路由数据包.

WARNING

使用这种规则时, Clash 将域名解析为 IPv4 地址. 如果要跳过 DNS 解析, 请使用 no-resolve 选项.

IP-CIDR,127.0.0.0/8,DIRECT 将任何目标 IP 地址为 127.0.0.0/8 的数据包路由到 DIRECT.

IP-CIDR6 IPv6地址段

IP-CIDR6 规则用于根据数据包的目标 IPv6 地址路由数据包.

WARNING

使用这种规则时, Clash 将域名解析为 IPv6 地址. 如果要跳过 DNS 解析, 请使用 no-resolve 选项.

IP-CIDR6,2620:0:2d0:200::7/32,policy 将任何目标 IP 地址为 2620:0:2d0:200::7/32 的数据包路由到 policy.

SRC-IP-CIDR 源IP段地址

SRC-IP-CIDR 规则用于根据数据包的源 IPv4 地址路由数据包.

SRC-IP-CIDR,192.168.1.201/32,DIRECT 将任何源 IP 地址为 192.168.1.201/32 的数据包路由到 DIRECT.

SRC-PORT 源端口

SRC-PORT 规则用于根据数据包的源端口路由数据包.

SRC-PORT,80,policy 将任何源端口为 80 的数据包路由到 policy.

DST-PORT 目标端口

DST-PORT 规则用于根据数据包的目标端口路由数据包.

DST-PORT,80,policy 将任何目标端口为 80 的数据包路由到 policy.

PROCESS-NAME 源进程名

PROCESS-NAME 规则用于根据发送数据包的进程名称路由数据包.

WARNING

目前, 仅支持 macOS、Linux、FreeBSD 和 Windows.

PROCESS-NAME,nc,DIRECT 将任何来自进程 nc 的数据包路由到 DIRECT.

PROCESS-PATH 源进程路径

PROCESS-PATH 规则用于根据发送数据包的进程路径路由数据包.

WARNING

目前, 仅支持 macOS、Linux、FreeBSD 和 Windows.

PROCESS-PATH,/usr/local/bin/nc,DIRECT 将任何来自路径为 /usr/local/bin/nc 的进程的数据包路由到 DIRECT.

IPSET IP集

IPSET 规则用于根据 IP 集匹配并路由数据包. 根据 IPSET 的官方网站 的介绍:

IP 集是 Linux 内核中的一个框架, 可以通过 ipset 程序进行管理. 根据类型, IP 集可以存储 IP 地址、网络、 (TCP/UDP) 端口号、MAC 地址、接口名称或它们以某种方式的组合, 以确保在集合中匹配条目时具有闪电般的速度.

因此, 此功能仅在 Linux 上工作, 并且需要安装 ipset.

WARNING

使用此规则时, Clash 将解析域名以获取 IP 地址, 然后查找 IP 地址是否在 IP 集中. 如果要跳过 DNS 解析, 请使用 no-resolve 选项.

IPSET,chnroute,policy 将任何目标 IP 地址在 IP 集 chnroute 中的数据包路由到 policy.

RULE-SET 规则集

INFO

此功能仅在 Premium 版本 中可用.

RULE-SET 规则用于根据 Rule Providers 规则集 的结果路由数据包. 当 Clash 使用此规则时, 它会从指定的 Rule Providers 规则集中加载规则, 然后将数据包与规则进行匹配. 如果数据包与任何规则匹配, 则将数据包路由到指定的策略, 否则跳过此规则.

WARNING

使用 RULE-SET 时, 当规则集的类型为 IPCIDR , Clash 将解析域名以获取 IP 地址. 如果要跳过 DNS 解析, 请使用 no-resolve 选项.

RULE-SET,my-rule-provider,DIRECTmy-rule-provider 加载所有规则

SCRIPT 脚本

INFO

此功能仅在 Premium 版本 中可用.

SCRIPT 规则用于根据脚本的结果路由数据包. 当 Clash 使用此规则时, 它会执行指定的脚本, 然后将数据包路由到脚本的输出.

WARNING

使用 SCRIPT 时, Clash 将解析域名以获取 IP 地址. 如果要跳过 DNS 解析, 请使用 no-resolve 选项.

SCRIPT,script-path,DIRECT 将数据包路由到脚本 script-path 的输出.

MATCH 全匹配

MATCH 规则用于路由剩余的数据包. 该规则是必需的, 通常用作最后一条规则.

MATCH,policy 将剩余的数据包路由到 policy.