配置

Chute 的大部分功能由配置文件控制。你可以用自己的文本编辑器编辑它,也可以用 Chute iOS、Chute tvOS、Chute Mac(主窗口的配置标签页,旧界面下是偏好设置...)或 Chute Android 的内置编辑器。Chute Dashboard 没有配置编辑器——它改的是运行中引擎里的规则,永远不是文件。

Chute iOS 可以通过 iCloud Drive 同步配置文件,这是一项需要许可证的功能。Chute Mac 自身没有 iCloud 同步:在那里所谓共享文件,只是从导入面板里选中一个恰好放在 iCloud Drive 里的文件,此后就地引用它所在的位置。

配置段

配置文件按命名段进行组织:

段名 用途
[General] 全局设置(日志、IPv6、DNS、代理端口等)
[Proxy] 出站代理服务器定义
[Proxy Group] 策略组定义(select、url-test、fallback、load-balance、ssid、subnet)
[Rule] 流量匹配和路由规则
[Host] 本地 DNS 主机名到 IP 的映射
[DNS] DNS 设置,同时接受 [General] 中的 DNS 键和 [Host] 风格的按域名覆盖
[URL Rewrite] URL 重写规则
[Header Rewrite] HTTP Header 重写规则
[Body Rewrite] HTTP 正文搜索替换规则
[Map Local] 模拟响应规则
[MITM] HTTPS 解密设置
[Script] JavaScript 脚本定义
[SSID Setting] 按网络的设置:暂停,以及针对某个 Wi-Fi 网络或网络类型的 DNS 覆盖
[Replica] 流量录制过滤器
[Module] 外部模块文件
[WireGuard <name>] WireGuard 隧道配置(必须指定实例名称,例如 [WireGuard HomeServer])
[AmneziaWG <name>] AmneziaWG 隧道配置,兼容 WireGuard 并带有混淆参数(必须指定实例名称,例如 [AmneziaWG HomeServer])
[Tailscale] 全局 Tailscale 配置(全局唯一;[Tailscale <name>] 段头也按此段读取)
[Proxy Provider] 外部代理列表源
[Rule Provider] 外部规则集源
[Ruleset <name>] 内联规则集,通过 RULE-SET,<name> 引用——见规则集

注意:[Panel]、[Ponte]、[MTProto]、[Keystore]、[Port Forwarding]、[Testing]、[DHCP] 和 [Snell Server] 这几个段会被识别,以免 Surge 配置报错(每个段记录一条提示),保存配置时它们的内容也会被原样保留,但在 Chute 中不产生任何效果。

DNS 段

与 DNS 相关的 [General] 键也可以等效地写在顶层的 [DNS] 段中。该段中的行按键名分别处理:

行 处理方式
dns-server、direct-dns-server、proxy-dns-server、doh(别名 doh-server、doh-service)、dot、doq、doh3、encrypted-dns-server、allow-dns-svcb、encrypted-dns-follow-outbound-mode、hijack-dns、always-real-ip 与写在 [General] 中完全相同;该键会被当作写在 [General] 中一样存储
其他任何行 按 [Host] 的按域名语法解析,例如 *.example.com = server:1.1.1.1
两者都不是的键 被忽略,并在日志中给出提示;该行本身会被保留
[DNS]
doh = https://dns.google/dns-query
hijack-dns = 8.8.8.8:53
*.example.com = server:1.1.1.1

注意:由于此处两种行形式都可接受,一个 [DNS] 段中可以混合 DNS 服务器设置与按域名覆盖。请不要在 [General] 和 [DNS] 中重复同一项设置:例如出现第二条 doh 行时,会被报告为重复的 DoH 配置。

注意:fallback-dns-server 与 encrypted-dns-skip-cert-verification 虽然没有列在上表第一行,但在 [DNS] 下同样会被读取。不是 DNS 设置的键并不会在这里被忽略——它会被当作按域名覆盖来读,因此像 optimistic-dns = false 这样放错位置的 [General] 键,会悄悄变成 optimistic-dns → false 这条映射。只有按域名覆盖的解析器也拒绝的行才会给出提示。见 DNS。

引入其他文件

配置可以引入另一个文件。Surge 写作 #!include <路径>;Shadowrocket 在第一个段之前写作 include = <other.conf>。两种写法都会被读取,被引入文件的内容会在指令所在的位置就地展开,因此 [Rule] 片段会落在引用它的那个段里。

#!include Rulesets/company.list
  • 路径相对于书写该指令的文件所在目录解析,并且可以包含 *——#!include Rulesets/*.list 会按文件名顺序引入一整个目录的规则片段。
  • 引入最多嵌套 8 层,且已经引入过的文件(包括配置本身)不会被引入两次,因此不会因为循环而失控;配置引入自身会被直接忽略。
  • 只有当配置是从文件加载时才会展开引入。若是以文本形式交给引擎(配置进入隧道时通常就是这样),没有可用于解析的目录,此时配置会被报告为不完整,而不是被当作完整配置处理。保存配置时该指令本身会被保留:它按读入时的原样写回,被引入文件的内容绝不会写进配置。

注释

以 #、; 或 // 开头的行是注释。这三个标记也能开启行内注释,但只在紧跟空格或制表符之后才算,而且在引号("…" 或 '…',其中 \ 转义下一个字符)内从不算。因此 URL 里的 ://、a//b 这样的路径,以及恰好含有 // 或 # 的未加引号的 base64 值都会完整保留。保存配置时,注释和空行都会被保留。

在各重写段以及 [Proxy Group] 的 ssid / subnet 行上,行内注释另有规则:

位置 # ; // 引号
[URL Rewrite] 同上 同上 同上 无:整行按空白分词,第一个以标记开头的词结束该行
[Header Rewrite] 从不算注释,所以 header-add X-Color #ff0000 保留其值 从不算注释 同上 "…"
[Body Rewrite]、[Map Local] 同上 从不算注释 同上 "…";jq 行还包括 '…'
[Proxy Group] 的 ssid / subnet 行 同上 同上 同上 只认 "…":撇号是 Bob's iPhone 这类网络名的一部分

指令行——#!include、#!MANAGED-CONFIG、#!IOS-ONLY 等——在这些规则生效之前就作为指令读取。规则集、域名集或代理提供者下载的文件不是配置段:在那里只有整行才能是注释。

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

本页为英文版的翻译。如内容有出入,以英文版为准。

results matching ""

    No results matching ""