[Rule] 分流规则
规则按配置顺序匹配,首个命中结果决定目标出站。
语法
[Rule]
类型,匹配值,目标,选项
FINAL,目标目标为内置出站、代理或策略组名称。逻辑子规则不填写目标。缺省为空列表;类型名使用下表的大写形式。
类型与取值
| 类型 | 匹配值 | 行为与约束 |
|---|---|---|
DOMAIN | 域名 | 精确匹配 |
DOMAIN-SUFFIX | 域名后缀 | 匹配域名本身与子域名 |
DOMAIN-KEYWORD | 字符串 | 域名关键词匹配 |
DOMAIN-WILDCARD | 通配符模式 | 支持 *、? |
DOMAIN-SET | 本地路径或 HTTP/HTTPS URL | 外部域名列表 |
IP-CIDR | IPv4/IPv6 CIDR | 目标 IP 网段 |
IP-CIDR6 | IPv6 CIDR | IP-CIDR 别名,仅接受 IPv6 |
SRC-IP-CIDR | IPv4/IPv6 CIDR | 来源 IP 网段 |
GEOIP | 国家代码字符串 | GeoIP 数据库匹配 |
IP-ASN | u32 | 目标自治系统号 |
SRC-PORT | u16 | 来源端口 |
DEST-PORT | u16 | 目标端口 |
NETWORK | TCP、UDP | 传输协议;Profile 模型保留原始字符串 |
URL-REGEX | 正则表达式 | HTTP 元数据中的 URL |
USER-AGENT | 匹配模式 | HTTP 元数据中的 User-Agent |
RULE-SET | 本地路径或 HTTP/HTTPS URL | 外部规则列表 |
AUTO-SET | 本地路径或 HTTP/HTTPS URL | 自动识别规则/域名集合 |
AND | ((子规则),(子规则)) | 所有子规则命中 |
OR | ((子规则),(子规则)) | 任一子规则命中 |
NOT | ((子规则)) | 子规则不命中;恰好一个子规则 |
FINAL | 无 | 匹配剩余流量 |
PROCESS-NAME | 字符串 | 解析时记录 warning 并丢弃,不执行进程匹配 |
URL、User-Agent 规则依赖 HTTP 元数据。没有对应元数据时不能据配置文字推导其命中。
选项
| 字段 | 取值与单位 | 默认值 | 行为与约束 |
|---|---|---|---|
no-resolve | 独立标志或布尔值 | 未设置 | 独立标志等价于 true;true 时不为 IP 规则额外解析域名,false 时关闭该限制 |
pre-matching | 独立标志或布尔值 | false | 将内置 REJECT 目标的域名规则加入独立 DNS 前置拒绝列表;其他类型或目标忽略该标志 |
refresh-interval | 无符号整数,秒 | 未设置 | 外部资源刷新间隔;非法数字在此解析器中忽略 |
选项名称不区分 ASCII 大小写。no-resolve 与 no-resolve=true 等价;布尔值接受 true、yes、1 和 false、no、0,字母不区分大小写。非法布尔值解析失败。逻辑规则必须至少有一个子规则,NOT 多个子规则解析失败;目标引用在配置校验阶段检查。
前置拒绝
前置列表独立于普通分流规则,仅包含显式启用 pre-matching 且目标为内置 REJECT 的顶层规则。 命名 reject 出站、策略组以及 REJECT-DROP、REJECT-NO-DROP、REJECT-TINYGIF 不进入前置列表。 普通规则保留原有顺序和出站行为;前置拒绝优先于普通规则及 Direct/Global 模式,因此普通规则中的 DIRECT 不能豁免前置拒绝。
仅 DOMAIN、DOMAIN-SUFFIX、DOMAIN-KEYWORD、DOMAIN-WILDCARD、DOMAIN-SET 构建专用的域名匹配项。 DOMAIN-SET 复用域名资源及其刷新结果。IP、端口、网络、逻辑组合、RULE-SET、AUTO-SET 和其他类型不参与前置匹配,仍按普通规则处理。
TUN 接管的 DNS 命中域名列表时,按 General 的 dns-reject-behavior 返回拒绝响应。 blackhole 返回固定预留的 FakeIP;TUN 收包只比较目标 IP 是否为该地址,命中便在传输层分发前静默丢弃。 TUN 不遍历前置或普通规则列表,不创建 TCP 状态、UDP 会话或上层连接。
pre-matching 与 pre-matching=true 等价;显式 false 禁用该规则的前置匹配。 布尔值与 no-resolve 使用相同语法,非法值解析失败。
示例
前置拒绝示例:
[General]
dns-reject-behavior = blackhole
[Rule]
DOMAIN-SUFFIX,ads.example,REJECT,pre-matching
FINAL,DIRECT普通分流示例:
[Rule]
DOMAIN,example.com,DIRECT
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
AND,((DOMAIN-SUFFIX,example.com),(DEST-PORT,443)),DIRECT
RULE-SET,https://example.com/rules.list,DIRECT,refresh-interval=3600
FINAL,DIRECT