内置策略
Chute 的内置策略有 DIRECT、REJECT 及其变体,以及 PROXY。DIRECT 表示请求直接发送到目标主机。REJECT 表示拒绝请求;下面的各个变体以不同的方式拒绝。
此外,当配置了 [Tailscale] 段时,内置标识符TAILSCALE也可用。详见 Tailscale 配置。
它们都可以直接在规则和策略组中使用。你也可以在代理段中定义一个别名。
REJECT 变体
| 策略 | 行为 |
|---|---|
REJECT |
拒绝连接。经 HTTP 代理发出的请求会收到一个拒绝响应;开启 show-error-page-for-reject 时则收到错误页。 |
REJECT-NO-DROP |
与 REJECT 相同,并且永远不会升级为 REJECT-DROP(见下文)。 |
REJECT-DROP |
不作任何应答:连接被静默挂起直到超时,UDP 则被丢弃。 |
REJECT-TINYGIF, REJECT-IMG |
以 200 应答,内容为 1×1 的 GIF。 |
REJECT-DICT |
以 200 应答,内容为空的 JSON 对象 {}。 |
REJECT-ARRAY |
以 200 应答,内容为空的 JSON 数组 []。 |
REJECT-200 |
以 200 应答,正文为空。 |
REJECT-VIDEO |
以 200 应答,内容为空白的 MP4。 |
这些 200 应答需要一个可读的 HTTP/1 请求:明文 HTTP,或经 MitM 解密的 HTTPS。3 秒内没有收到这样的请求时,连接按 REJECT 的方式关闭。除 REJECT-DROP 外,被拒绝的 UDP 会收到 ICMP 端口不可达。
Chute 自己生成的应答——模拟响应(Map Local)、脚本的 response,以及 URL 重写和 REJECT 类策略的应答与错误页——遵守 HTTP:对 HEAD 请求的应答只有头部,其中的 Content-Length 与 GET 得到的相同;状态码为 204、205 或 304 的应答既不带正文,也不带 Content-Length。
与 Surge 一样,同一主机在 30 秒内被 REJECT、REJECT-TINYGIF 或 REJECT-IMG 拒绝超过 50 次时,接下来的 30 秒内按 REJECT-DROP 处理,这样紧密循环重试的客户端就不再能立即得到应答。REJECT-NO-DROP 及其余变体永远不会升级。
PROXY
为兼容 Shadowrocket,PROXY 无需定义即可在规则和策略组中使用。它代表全局模式下所选的策略,也就是你在全局策略列表中选中的那个,并随选择的变化而变化。如果配置自己定义了名为 Proxy(大小写不限)的策略或策略组,则使用该定义。没有任何可选策略时,配置仍会载入并给出提示,走到 PROXY 的连接会被拒绝。
别名
[Proxy]
On = direct
Off = reject
然后你可以在规则和策略组中使用 'On' 和 'Off' 作为策略名称。这类行上的其他参数会被忽略,并在日志中给出提示。
本页为英文版的翻译。如内容有出入,以英文版为准。