From d24233eb735637f0f2ae198dcb264404ac744a8f Mon Sep 17 00:00:00 2001 From: Meow <197331664+Meo597@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:08:39 +0800 Subject: [PATCH] ECH and Sniffing: Explaining when to block QType 65 (#767) --- docs/config/inbound.md | 17 +++++++++-------- docs/config/outbounds/dns.md | 6 +++--- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/docs/config/inbound.md b/docs/config/inbound.md index 504c6cbd..db92074b 100644 --- a/docs/config/inbound.md +++ b/docs/config/inbound.md @@ -75,17 +75,18 @@ > `sniffing`: [SniffingObject](#sniffingobject) -流量探测主要作用于在透明代理等用途. -比如一个典型流程如下: +流量探测主要作用于在透明代理等用途,比如一个典型流程如下: -1. 如有一个设备上网,去访问 abc.com,首先设备通过 DNS 查询得到 abc.com 的 IP 是 1.2.3.4,然后设备会向 1.2.3.4 去发起连接. -2. 如果不设置嗅探,Xray 收到的连接请求是 1.2.3.4,并不能用于域名规则的路由分流. -3. 当设置了 sniffing 中的 enable 为 true,Xray 处理此连接的流量时,会从流量的数据中,嗅探出域名,即 abc.com -4. Xray 会把 1.2.3.4 重置为 abc.com.路由就可以根据域名去进行路由的域名规则的分流 +1. 如有一个设备上网,去访问 abc.com,首先设备通过 DNS 查询得到 abc.com 的 IP 是 1.2.3.4, 然后设备会向 1.2.3.4 去发起连接。 +2. 如果不设置嗅探,Xray 收到的连接请求是 1.2.3.4, 并不能用于域名规则的路由分流。 +3. 当设置了 sniffing 中的 enable 为 true,Xray 处理此连接的流量时,会从流量的数据中,嗅探出域名,即 abc.com。 +4. Xray 会把 1.2.3.4 重置为 abc.com。路由就可以根据域名去进行路由的域名规则的分流。 -因为变成了一个向 abc.com 请求的连接, 就可以做更多的事情, 除了路由域名规则分流, 还能重新做 DNS 解析等其他工作. +因为变成了一个向 abc.com 请求的连接,就可以做更多的事情,除了路由域名规则分流,还能重新做 DNS 解析等其他工作。 -当设置了 sniffing 中的 enable 为 true, 还能嗅探出 bittorrent 类型的流量, 然后可以在路由中配置"protocol"项来设置规则处理 BT 流量, 比如服务端用来拦截 BT 流量, 或客户端固定转发 BT 流量到某个 VPS 去等. +当设置了 sniffing 中的 enable 为 true,还能嗅探出 bittorrent 类型的流量,然后可以在路由中配置 "protocol" 项来设置规则处理未加密的 BT 流量,比如服务端用来拦截未加密的 BT 流量,或客户端固定转发 BT 流量到某个 VPS 去等。 + +注意:较新的浏览器可能使用 ECH 加密 Client Hello, 此时 Xray 只能看到 Outer Hello 中的域名,可能需要考虑劫持 DNS 或者手动在浏览器配置关闭 ECH. ### SniffingObject diff --git a/docs/config/outbounds/dns.md b/docs/config/outbounds/dns.md index 84b9a826..29bd52a3 100644 --- a/docs/config/outbounds/dns.md +++ b/docs/config/outbounds/dns.md @@ -38,10 +38,10 @@ DNS 是一个出站协议,主要用于拦截和转发 DNS 查询。 > `blockTypes`: array -为一个int数组,屏蔽数组中的查询类型,如 `"blockTypes":[65,28]` 表示屏蔽type 65(HTTPS) 和 28(AAAA) +为一个 int 数组,屏蔽数组中的查询类型,如 `"blockTypes": [65,28]` 表示屏蔽 type 65(HTTPS) 和 28(AAAA). 常见用途包括屏蔽 type 65 以阻止浏览器发起 ECH. -由于 `nonIPQuery` 默认 drop 所有非 A 和 AAAA 查询, 所以需要将其设置为 skip 本选项才能进一步发挥作用。当然也可以不修改,单纯用来屏蔽A或者AAAA来屏蔽 ipv4/ipv6 查询, 但非常不推荐那么做,建议在内置DNS的 `queryStrategy` 对相关内容进行设置。 +由于 `nonIPQuery` 默认 drop 所有非 A 和 AAAA 查询, 所以需要将其设置为 skip 本选项才能进一步发挥作用。当然也可以不修改,单纯用来屏蔽 A 或者 AAAA 来屏蔽 IPv4/IPv6 查询,但非常不推荐那么做,建议在内置 DNS 的 `queryStrategy` 对相关内容进行设置。 -注:当只使用 `blockTypes` 屏蔽 A 或 AAAA 时, 如果 `nonIPQuery` 设置为了 `reject` 那么屏蔽方式也会是返回 DNS reject 而不是丢弃 +注意:当只使用 `blockTypes` 屏蔽 A 或 AAAA 时, 如果 `nonIPQuery` 设置为了 `reject` 那么屏蔽方式也会是返回 DNS reject 而不是丢弃。 ## DNS 配置实例