### 1.11 规则重构 #### Final actions ```json { "action": "route", // default in route rules "outbound": "proxy", "udp_disable_domain_unmapping": false } ``` ```json { "action": "route", // default in DNS rules "server": "local", "disable_cache": false, "rewrite_ttl": 600, "client_subnet": "" } ``` ```json { "action": "return" } ``` ```json { "action": "hijack-dns" } ``` ```json { "action": "reject", "method": "default" // reset network-unreachable host-unreachable port-unreachable drop } ``` 需要注意的是,要使 reject action 发挥优于 block outbound 的作用 (仅生效于 TUN inbounds),被操作的连接不可以被执行 sniff(TCP 建立连接)。 另外 [network/host]-unreachable 疑似无效,可能只能由本机系统产生。 #### Non-final actions (Only in route rules) ```json { "action": "sniff", "sniffer": "tls", // [...], "timeout": "3s" } ``` ```json { "action": "resolve", "strategy": "prefer_ipv4", "server": "local" // optional } ``` #### 脚本 (TODO) 仅构思,请(其他应用的 MITM 脚本编写者)或 (需要 External API 的开发者)提供思路和反馈。 添加一种新的 action type,以通过脚本(goja)或外部 API (HTTP/gRPC?) 控制路由和劫持连接。 ```json { "route": { "rules": [ { "action": "external", "method": "http", "url": "http://127.0.0.1" }, { "action": "script", "script": "my" } ], "scripts": [ { "tag": "my", "type": "local", // remove "path": "myScript.js" // url download_detour update_interval } ] } } ```