# DNS、嗅探与代理选路

Source: https://onexray.com/zh/docs/configuration/routing-options/
Description: 配置代理／直连 DNS 与备用、嗅探及运行链路最低延迟选路，了解默认值和 JSON 边界。
Language: zh-CN
Last updated: 2026-10-20


智能路由与每份常规自定义路由分别保存 DNS、嗅探和代理选路设置。编辑后保存草稿；影响当前 App 管理配置时确认重连。高级／Raw 与提供方配置使用各自字段。

## 代理与直连 DNS

两种出口分别填写主解析器和有序备用地址。主地址默认均为 `8.8.8.8`，缓存默认开启，“备用 DNS 使用相同出口”默认关闭。每项仅编辑地址，可使用内核支持的 TCP／HTTPS 等形式。

仅纯域名的代理／直连规则参与 DNS 匹配，代理例外优先于宽泛直连分类。代理域名解析不会回退直连 DNS；直连失败时默认可尝试代理 DNS，开启同出口备用后只尝试命中策略内的解析器。关闭智能直连 DNS 保留填写值，但不生成对应域名匹配。隧道 DNS 是另一组平台设置。

常规 JSON 使用 `app-dns-proxy`／`app-dns-direct` tag，同 tag 按主地址、备用顺序重复，FakeDNS 可加 `app-dns-fake`。根部 `disableCache` 控制缓存，`disableFallbackIfMatch` 保存同出口备用；域名列表、`finalQuery` 和 IPv6 查询策略由 App 生成。普通解析器只开放 address／tag，不开放单项超时／缓存覆盖、应答过滤、过期缓存或并发查询；高级／Raw 原生字段和 JSON 提示保留。

## 嗅探

默认开启 HTTP／TLS／QUIC 嗅探；“仅用于路由”和 `metadataOnly` 默认关闭。`metadataOnly` 仅使用元数据，不读取 HTTP／TLS／QUIC 内容。FakeDNS 要求嗅探开启。普通表单不提供域名／IP 排除列表。

常规交换格式用唯一的 `tag=tunIn` 入站占位，仅保存 `sniffing.enabled`、`routeOnly` 和 `metadataOnly`；实际监听及 `destOverride` 由 App 管理。高级／Raw 可保留完整嗅探对象和原生排除字段。

## 轮询与最低延迟

默认轮询。最低延迟只探测本次连接已选中的至少两条完整代理链；固定单节点保留偏好，不增加探测。启用最终出口时，每条观察链都包含最终出口。此结果独立于服务器列表的手动延迟缓存。

默认探测地址 `https://www.google.com/generate_204`、间隔 60 秒、并发探测开启。表单可选 30／60／300 秒；导入参数使用合法 HTTP(S) URL 和至少 10 秒的受支持 duration。

新连接按探测结果选路，已有 TCP／UDP 会话不迁移。最低延迟失败时回退首条完整代理链，不静默直连；App 在用户规则末尾为托管 TUN 与已启用 LAN 入口添加代理兜底。轮询继续使用原有第一出站行为与直连回退。探测可达不代表 Netflix／AI 服务解锁或带宽保证。

连接页通过运行 metrics 展示未知／可用／失败、最近延迟和探测时间；没有 metrics 不代表 VPN 已断开。常规和高级交换仅开放 `routing.balancers` 中 `tag=proxy` 的 `strategy.type=roundRobin|leastPing`，以及 Observatory 的 `probeURL`、`probeInterval`、`enableConcurrency`。`selector`、`fallbackTag`、`subjectSelector` 由 App 生成；额外高级入站需自行声明 `balancerTag: proxy` 规则。


