跳到主要内容

路由规则(rules)

对应官方:https://wiki.metacubex.one/config/rules/

规则从上到下匹配,命中一条就停。最后通常有一条 MATCH 兜底。

格式大致是:

类型,匹配内容,策略[,附加参数]

策略可以是:节点名、组名、DIRECT、REJECT 等。


示例​

rules:
- DOMAIN,ad.example,REJECT
- DOMAIN-SUFFIX,google.com,PROXY
- DOMAIN-KEYWORD,google,PROXY
- GEOSITE,youtube,PROXY
- GEOIP,CN,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- PROCESS-NAME,curl,PROXY
- RULE-SET,my-provider,PROXY
- MATCH,PROXY

常用类型(域名 / IP)​

类型说明
DOMAIN完整域名
DOMAIN-SUFFIX后缀。google.com 能匹配 www.google.com,不匹配 content-google.com
DOMAIN-KEYWORD域名里包含关键字
DOMAIN-WILDCARD* / ? 通配(和配置其他地方的 Clash 通配写法不完全一样,见官方)
DOMAIN-REGEX正则
GEOSITE域名集合(依赖 geosite 数据)
IP-CIDR / IP-CIDR6IP 段(两者效果同类)
IP-SUFFIXIP 后缀范围
IP-ASNASN
GEOIP国家代码,如 CN

来源侧还有 SRC-GEOIP、SRC-IP-CIDR 等。


端口、入站、进程​

类型说明
DST-PORT / SRC-PORT目标 / 来源端口(支持端口范围语法)
IN-PORT / IN-TYPE / IN-USER / IN-NAME按入站端口、类型、用户、名字
PROCESS-NAME / PROCESS-PATH 及 WILDCARD、REGEX按进程名或路径;Android 上进程名可配包名
UIDLinux 用户 ID
NETWORKtcp 或 udp
RULE-SET引用 rule-providers
AND / OR / NOT逻辑组合,注意括号
SUB-RULE跳到子规则集
MATCH全部命中,无条件

附加参数​

no-resolve​

用在「看目标 IP」的规则上。
默认匹配 IP 类规则时可能先 DNS 解析域名再比 IP;加上 no-resolve 表示这条先别为了匹配去解析。
若前面规则已经解析过,仍可能带 IP 信息。

src​

把「目标 IP」类规则改成按「来源 IP」比。


注意​

若请求是 UDP,而命中的节点不支持 UDP(例如 ss 没写 udp: true),会继续往下匹配。

规则顺序比「规则条数」更重要:先精确后宽泛,最后 MATCH。