[General] 通用设置
本节提供全局配置。以下默认值来自 GeneralSection::default();消费者另有回退时单独注明。
语法
[General]
键 = 值字段
布尔字段接受 true、yes、1 和 false、no、0,字母不区分大小写。tun-ipv6 另外接受 auto。
| 字段 | 取值与单位 | 默认值 | 行为与约束 |
|---|---|---|---|
log-level | trace、debug、info、warn、error、off | info | 日志级别 |
dns-server | DNS 上游的逗号列表,见下表 | 空列表 | 全局 DNS 上游;运行时构建会补充必要的系统 bootstrap |
dns-reject-behavior | empty、zero、blackhole | empty | TUN 接管的 DNS 命中前置 REJECT 规则后的响应方式,见下文 |
always-real-ip | 域名匹配列表 | 空列表 | 匹配域名绕过 Fake IP |
tun-icmp-echo-forwarding | 布尔值 | true | 非 FakeIP 的 IPv4 ICMP Echo 转发到物理网络;关闭时由 TUN 协议栈本地响应 |
tun-included-routes | IPv4/IPv6 CIDR 列表 | 空列表 | 显式包含的 TUN 路由 |
tun-excluded-routes | IPv4/IPv6 CIDR 列表 | 空列表 | 显式排除的 TUN 路由 |
tun-ipv6 | auto 或布尔值 | auto | 根据系统 IPv6 可用性保留路由、强制保留、过滤 IPv6 included route;不生成额外路由 |
skip-proxy | 域名或 IP 列表 | 空列表 | 跳过代理的匹配项 |
mmdb-url | HTTP/HTTPS URL | https://github.com/GravitationNetworks/GeoLite.mmdb/blob/download/GeoLite2-Country.mmdb | GeoIP 数据库来源 |
proxy-test-url | HTTP/HTTPS URL | http://captive.apple.com | 节点延迟测试 URL |
internet-check-url | HTTP/HTTPS URL | http://captive.apple.com | 网络连通性检查 URL |
test-timeout | 无符号整数,秒 | 未设置 | 运行时健康检查缺省为 5 秒 |
hijack-dns | 字面 IP:端口列表;IPv6 使用 [IP]:端口 | 空列表 | DNS 接管地址;不接受 *:53 |
proxy-model | mixed/0、only-tun/1、mixed-no-default/2、only-tun-no-default/3、only-tun-manual/4 | mixed | 代理入口与路由构建模式,见下表 |
force-http-hostname | 主机匹配列表 | 空列表 | 强制进入 HTTP 处理 |
skip-force-http-hostname | 主机匹配列表 | 空列表 | 跳过强制 HTTP 处理 |
ipv6 | 布尔值 | true | 默认 DNS lookup 是否查询 AAAA;显式 family lookup 不受影响 |
external-controller | 字符串 | 未设置 | 配置模型保留值;当前 Core 构建不消费该字段 |
secret | 字符串 | 未设置 | 配置模型保留值;当前 Core 构建不消费该字段 |
interface-name | 接口名称字符串 | 未设置 | 配置模型保留值;当前 Core 构建不消费该全局字段 |
ip-preference | dual、ipv4-only、ipv6-only、prefer-ipv4、prefer-ipv6 | 未设置 | 配置模型保留值;节点使用 Proxy 的 ip-version |
DNS 前置拒绝
dns-reject-behavior 仅用于标记 pre-matching 且目标为内置 REJECT 的规则,规则范围见 Rule。 已有 FakeIP 的域名直接复用映射,不再执行前置匹配;尚未生成 FakeIP 时,域名匹配先于 always-real-ip、FakeIP 分配和上游转发,命中后不查询上游,也不生成普通 FakeIP 映射。 前置匹配仅位于 FakeDNS 查询入口,普通 Host 解析不执行该匹配。blackhole 命中后保存域名到预留黑洞 FakeIP 的内存映射,后续查询复用响应;empty、zero 不生成 FakeIP,后续查询重新匹配。
| 值 | DNS 响应 |
|---|---|
empty | 返回 NOERROR,Answer 为空 |
zero | A 返回 0.0.0.0,AAAA 返回 ::;其它记录类型返回空 Answer |
blackhole | A 返回 TUN FakeIP 段内固定预留的黑洞 IPv4;AAAA 和其它记录类型返回空 Answer |
普通 FakeIP、zero 和 blackhole 响应的地址记录 TTL 统一为 1 秒。blackhole 与普通 FakeIP 共用 DNS 响应构建,AAAA 和其它记录类型返回空 Answer。空 Answer 不含地址记录,也没有地址记录 TTL。多问题请求中任一域名命中时,整个请求返回空 Answer。 黑洞地址不参与普通 FakeIP 分配、持久化映射恢复或循环复用,也不对应任何正常域名。 TUN 在协议栈入口静默丢弃发往该地址的报文:TCP 不回复 SYN-ACK、ACK 或 RST,UDP 不创建会话, 均不进入上层连接分发。客户端自行重试或超时。
非法 dns-reject-behavior 值在配置解析时返回错误。FakeIP 段必须在预留 TUN、DNS 和黑洞地址后仍有普通可分配地址,否则 TUN 初始化失败。
代理模式
| 值 | 行为 |
|---|---|
mixed | TUN 与系统代理设置,使用默认路由策略 |
only-tun | TUN 系统接管,不设置系统代理,使用默认路由策略 |
mixed-no-default | TUN 与系统代理设置,不添加默认路由 |
only-tun-no-default | TUN 系统接管,不设置系统代理,不添加默认路由 |
only-tun-manual | TUN 系统接管,不设置系统代理,手动配置路由 |
内部模式 InternalNoConfig 不接受 INI 输入。
DNS 上游取值
| 取值 | 地址约束 | 默认端口或传输 |
|---|---|---|
system | 系统当前 DNS | 系统提供 |
IP、IP:端口、udp://IP[:端口] | 字面 IPv4/IPv6 | UDP,53 |
tcp://IP[:端口] | 字面 IPv4/IPv6 | TCP,53 |
tls://主机[:端口] | 域名或 IP | DoT,853 |
quic://主机[:端口] | 域名或 IP | DoQ,853 |
https://主机/路径 | URL | DoH,自动选择 HTTP/2 或 HTTP/3 |
h2://主机/路径 | URL | DoH,HTTP/2 |
h3://主机/路径 | URL | DoH,HTTP/3 |
Bootstrap 仅允许系统 DNS、UDP(IP) 和 TCP(IP)。配置只有加密 DNS 上游时,运行时补充系统 bootstrap。Host 的上游出站参数见 Host。
示例
[General]
log-level = info
dns-server = system, https://dns.example.com/dns-query
ipv6 = true
tun-ipv6 = auto
hijack-dns = 192.0.2.53:53