HTTP 规则
共有 3 种 HTTP 规则类型。HTTP 规则适用于 HTTP 请求或 HTTPS 请求,不会影响 TCP 连接。
USER-AGENT
USER-AGENT,Instagram*,DIRECT
如果请求的 User-Agent 匹配,则规则命中。支持通配符 * 和 ?。
URL-REGEX
URL-REGEX,^http://google\.com,DIRECT
如果 URL 匹配正则表达式,则规则命中。
PROTOCOL
PROTOCOL,HTTPS,Proxy
如果检测到的连接协议匹配,则规则命中。与 sniffing-enabled 结合使用效果最佳。
支持的协议值:
| 值 | 描述 |
|---|---|
HTTP |
HTTP 请求 |
HTTPS |
HTTPS/TLS 连接 |
TLS |
TLS 连接(任何 TLS,包括非 HTTPS) |
TCP |
纯 TCP 连接 |
UDP |
UDP 流量 |
QUIC |
QUIC 协议 |
STUN |
STUN 协议(WebRTC) |
DNS |
DNS 查询 |
DOH |
DNS-over-HTTPS |
DOQ |
DNS-over-QUIC |
SCRIPT
SCRIPT,MyRuleScript,DIRECT
规则通过执行 JavaScript 脚本实现自定义匹配逻辑。脚本名称必须与 [Script] 部分中定义的 type=rule 脚本匹配。
[Rule]
SCRIPT,CheckInternal,PROXY
[Script]
CheckInternal = type=rule, script-path=internal-check.js
规则脚本接收 $request,并且必须调用 $done({matched: true}) 或 $done({matched: false})。requires-resolve 选项可与 SCRIPT 规则配合使用,以确保在脚本评估之前已完成 DNS 解析。