规则

Chute 根据自定义规则将请求转发到另一个代理服务器或直接连接到目标主机。

优先级

规则按照配置文件中出现的顺序从上到下依次匹配。换句话说,列表顶部的规则优先级高于后面的规则。

组成

每条规则由 3 个部分组成:规则类型、流量匹配器(FINAL 规则除外)和代理策略:TYPE, VALUE, POLICY。例如:DOMAIN-SUFFIX,apple.com, DIRECT IP-CIDR,192.168.0.0/16,ProxyA

代理策略必须是某个策略名称,包括代理、策略组、DIRECT 或 REJECT。规则应以一条 FINAL 规则结尾,用于定义默认行为。如果配置中没有 FINAL 规则,Chute 的行为等同于在末尾追加了 FINAL,DIRECT

示例:

[Rule]
DOMAIN-SUFFIX,company.com,ProxyA
DOMAIN-KEYWORD,google,DIRECT
GEOIP,US,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,ProxyB

规则类型

基于域名的规则

类型 语法 匹配条件
DOMAIN DOMAIN,www.apple.com,Proxy 精确域名匹配
DOMAIN-SUFFIX DOMAIN-SUFFIX,apple.com,Proxy 域名后缀匹配
DOMAIN-KEYWORD DOMAIN-KEYWORD,google,Proxy 域名包含关键字
DOMAIN-WILDCARD DOMAIN-WILDCARD,*.apple.com,Proxy 通配符域名匹配
DOMAIN-REGEX DOMAIN-REGEX,^mail\..+\.com$,Proxy 域名正则匹配
DOMAIN-SET DOMAIN-SET,https://example.com/domains.txt,DIRECT 从 URL 下载的域名集

基于 IP 的规则

类型 语法 匹配条件
IP-CIDR IP-CIDR,192.168.0.0/16,DIRECT IP 地址在 CIDR 范围内
IP-CIDR6 IP-CIDR6,2001:db8::/32,DIRECT IPv6 地址在 CIDR 范围内
GEOIP GEOIP,US,DIRECT GeoIP 数据库中的国家代码
IP-ASN IP-ASN,13335,DIRECT IP 地址属于指定 ASN

HTTP 层级规则

类型 语法 匹配条件
USER-AGENT USER-AGENT,Instagram*,DIRECT User-Agent 头部
URL-REGEX URL-REGEX,^http://google\.com,DIRECT URL 匹配正则
PROTOCOL PROTOCOL,TLS,Proxy 检测到的协议(HTTP/TLS/QUIC 等)

进程规则(仅 Mac)

类型 语法 匹配条件
PROCESS-NAME PROCESS-NAME,Telegram,Proxy 进程名(通配符匹配)
PROCESS-PATH PROCESS-PATH,/Applications/Safari.app,Proxy 完整进程路径(通配符匹配)
PROCESS-NAME-REGEX PROCESS-NAME-REGEX,^Safari$,DIRECT 进程名(正则匹配)

端口和来源规则

类型 语法 匹配条件
DEST-PORT DEST-PORT,80,DIRECT 目标端口
SRC-IP SRC-IP,192.168.20.100,DIRECT 来源 IP 地址(单个 IP 或 CIDR)
SRC-PORT SRC-PORT,52345,DIRECT 来源端口
IN-PORT IN-PORT,6152,DIRECT Chute 上的入站代理端口

高级匹配规则

类型 语法 匹配条件
SUBNET SUBNET,TYPE:WIFI,Proxy 网络子网属性(TYPE、BSSID、SSID、ROUTER)
HOSTNAME-TYPE HOSTNAME-TYPE,AAAA,Proxy DNS 记录类型(A/AAAA 等)
IN-TYPE IN-TYPE,SOCKS5,Proxy 入站连接类型(HTTP/SOCKS5/TUN)
IN-USER IN-USER,user1,Proxy 入站认证用户名
IN-NAME IN-NAME,my-proxy,Proxy 入站代理服务器名称

注意:高级匹配规则可以被配置解析器接受,但当前的 Chute 版本尚未填充它们所匹配的会话属性,因此这些规则在运行时不会匹配任何流量。它们为未来版本保留。

逻辑组合规则

类型 语法 匹配条件
AND AND,((DOMAIN,example.com),(DEST-PORT,443)),Proxy 所有子规则均匹配
OR OR,((DOMAIN,example.com),(DOMAIN,test.com)),Proxy 任一子规则匹配
NOT NOT,((DOMAIN,example.com)),Proxy 子规则不匹配

特殊规则

类型 语法 匹配条件
RULE-SET RULE-SET,SYSTEM,DIRECT 来自 URL、规则提供者或内置集合的规则集
SCRIPT SCRIPT,MyRuleScript,PROXY 基于 JavaScript 的自定义规则匹配
FINAL FINAL,ProxyB 无其他规则匹配时的默认行为(必须放在最后)

选项

no-resolve

对于主机名是域名的请求,Chute 会分两轮评估规则列表。第一轮中,基于 IP 的规则(GEOIP、IP-CIDR、IP-ASN)会被跳过。如果没有其他规则匹配,Chute 会用 DNS 解析该域名,然后携带解析出的 IP 地址再次评估规则。添加 no-resolve 选项可以让基于 IP 的规则在第二轮中也被跳过,从而只匹配本身就携带 IP 地址的请求。

GEOIP,US,DIRECT,no-resolve
IP-CIDR,172.16.0.0/12,DIRECT,no-resolve

注意:由于采用两轮评估,对于主机名为域名的请求,靠后的非 IP 规则可能先于靠前的基于 IP 的规则匹配。如果 DNS 解析失败,基于 IP 的规则只是不会匹配,最终会应用 FINAL 规则;规则评估不会被中止。

force-remote-dns

强制通过远程代理服务器进行 DNS 解析,而非使用本地 DNS。

DOMAIN-SUFFIX,google.com,Proxy,force-remote-dns

注意:此选项目前仅为兼容性而被解析,在当前版本中没有任何效果。

extended-matching

将基于域名的规则匹配扩展到也检查 HTTP Host 头部,而不仅仅是连接主机名。当 SNI 或 CONNECT 目标与 Host 头部不同时,此选项非常有用。

DOMAIN-SUFFIX,example.com,Proxy,extended-matching

requires-resolve

对于 SCRIPT 规则,此选项会被解析器接受,但不会推迟脚本的评估。$request.dnsResult 仅在会话已被解析时才在脚本中可用(例如,直接使用 IP 地址发起的请求,或 DNS 解析后的第二轮匹配)。

SCRIPT,MyRuleScript,PROXY,requires-resolve

pre-matching

仅在策略为 REJECT 的规则上有效。该规则会在正常规则列表之前、并且在规则结果缓存之前的单独一轮中评估,因此拒绝会在协议嗅探或 DNS 解析之前就生效。

DOMAIN-SUFFIX,tracker.example.com,REJECT,pre-matching

别名

  • DOMAIN-MATCH 可作为 DOMAIN-KEYWORD 的别名使用。
  • NETWORK 可作为 PROTOCOL 的别名使用。

域名集

Chute 支持通过 DOMAIN-SET 规则类型从外部 URL 加载域名集。类型之后的第一个字段必须是 http(s) URL。可选的 update-interval 参数每 N 秒重新下载该文件。

DOMAIN-SET,https://example.com/domains.txt,DIRECT
DOMAIN-SET,https://example.com/domains.txt,DIRECT,update-interval=86400

域名集文件包含纯域名,每行一个:example.com 匹配精确域名;.example.com+.example.com 匹配该域名及其所有子域名。以 #// 开头的行为注释。

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-07-28 17:49:04

results matching ""

    No results matching ""