From 3b55bcd3290c15a0dcff778a6332fcf0b9becc4e Mon Sep 17 00:00:00 2001 From: Meow <197331664+Meo597@users.noreply.github.com> Date: Thu, 17 Jul 2025 02:37:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=87=A0=E5=A4=84=E4=B8=8D?= =?UTF-8?q?=E4=B8=A5=E8=B0=A8=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/document/level-1/routing-with-dns.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/document/level-1/routing-with-dns.md b/docs/document/level-1/routing-with-dns.md index 1086fb4..819578e 100644 --- a/docs/document/level-1/routing-with-dns.md +++ b/docs/document/level-1/routing-with-dns.md @@ -4,9 +4,9 @@ 当你尝试手搓代理规则时,必定会有这样的疑问:我该让哪些流量走代理,哪些直连? -答案一般就是黑白名单。 +答案一般就是黑/白名单。 -十几年下来,社区维护了一个庞大的规则列表,诞生了许多优秀项目: +十几年下来,社区维护了一个庞大的规则列表,先后诞生了许多优秀项目: - https://github.com/gfwlist/gfwlist - https://github.com/v2fly/domain-list-community @@ -33,7 +33,7 @@ 合理利用 Xray ~~如轮椅般~~强大的内置 DNS 自带的回落、EDNS、IP 过滤、打 Tag 等功能,精心调整它们的顺序。如此你便得到了最精确的 IP 作为分流条件。 -在继续阅读本文之前,你需要充分阅读并理解“入门技巧:路由 (routing) 功能简析[上篇](https://xtls.github.io/document/level-1/routing-lv1-part1.html)、[下篇](https://xtls.github.io/document/level-1/routing-lv1-part2.html)”。 +在继续阅读本文之前,你需要充分阅读并理解“入门技巧:路由 (routing) 功能简析[上篇](./routing-lv1-part1.html)、[下篇](./routing-lv1-part2.html)”。 与此同时你已经快要把官方配置指南给翻烂了,因此你完全理解了路由和出站中的 domainStrategy、入站中 sniffing 各选项的作用、以及其不同值的组合下产生的行为。 一切就绪?请试着理解下面这段内容: @@ -57,7 +57,7 @@ sock、http 入站时,请求的就是域名,到了路由后,路由中非 A "servers": [ { // 我们不完全信任geosite:cn,但如果一个域名已经存在于此列表 - // 就优先试着解析一下,如果返回中国IP代表它没被墙,反之被墙了就回落到8.8.8.8重新解析,解决DNS污染 + // 就优先试着解析一下,如果返回中国IP代表它没被墙,反之高度疑似被墙,回落到8.8.8.8重新解析,解决可能的DNS污染(这可能会导致代理流量浪费) // 优先让它解析的原因是100%CDN友好,你无法保证所有权威都支持EDNS,而且快 "tag": "dns-direct", "address": "223.5.5.5", @@ -78,7 +78,7 @@ sock、http 入站时,请求的就是域名,到了路由后,路由中非 A }, { // 如果一个域名既不存在于geosite:geolocation-!cn也不存在于geosite:cn,或者是上面的规则回落下来的,就会使用此服务器 - // 未知域名默认交给代理解析的理由是防止访问意图泄露给国内 + // 未知域名默认交给代理解析的理由是防止访问意图泄露给国内,这也是传说中有争议的dns泄露部分 // 这里利用EDNS尝试获取中国的A/AAAA记录 // 若没有,则按顺序请求之后的默认DNS,以获取代理节点CDN优化的记录 "address": "8.8.8.8", @@ -104,7 +104,7 @@ sock、http 入站时,请求的就是域名,到了路由后,路由中非 A "inboundTag": ["dns-proxy"], "outboundTag": "proxy" } - // 你的分流规则,按你的需求利用 domain 和/或 ip 来分流... + // 你的个性化分流规则,按你的需求利用 domain 和/或 ip 来分流... ] } // 其它忽略,按需配置... @@ -125,7 +125,7 @@ realIp 透明代理环境,你甚至可以在劫持 DNS 后,设置 domainStra "servers": [ { // 我们不完全信任geosite:cn,但如果一个域名已经存在于此列表 - // 就优先试着解析一下,如果返回中国IP代表它没被墙,反之被墙了就回落到8.8.8.8重新解析,解决DNS污染 + // 就优先试着解析一下,如果返回中国IP代表它没被墙,反之高度疑似被墙,回落到8.8.8.8重新解析,解决可能的DNS污染(这可能会导致代理流量浪费) // 优先让它解析的原因是代价极小,走直连只需要十几毫秒 "tag": "dns-direct", "address": "223.5.5.5", @@ -158,16 +158,16 @@ realIp 透明代理环境,你甚至可以在劫持 DNS 后,设置 domainStra "inboundTag": ["dns-proxy"], "outboundTag": "proxy" } - // 你的分流规则,按你的需求利用 domain 和/或 ip 来分流... + // 你的个性化分流规则,按你的需求利用 domain 和/或 ip 来分流... ] } // 其它忽略,按需配置... } ``` -此场景下由于发给 Xray 服务器的请求全部都是域名,因此没有必要利用 DNS 反复试探,只需要快速识别域是否被污染,尽可能解析出中国 IP 即可。 +此场景下由于发给 Xray 服务器的请求全部都是域名,因此没有必要利用 DNS 反复试探最优结果,只需要快速识别域是否被污染,尽可能解析出中国的 CDN 友好的 IP 即可。 -此示例中 DNS 模块解析出的中国 IP 已经是 99% 中国 CDN 友好的,因此你可以在 direct 出站中 `domainStrategy` 设为**非** AsIs 以利用缓存;如果你追求 100% 的中国 CDN 友好,可设为 AsIs 利用操作系统设置的 DNS 再解析一次,额外耗时约 30ms。 +此示例中 DNS 模块解析出的中国 IP 已经是 99% 中国 CDN 友好的,因此你可以在 direct 出站中 `domainStrategy` 设为**非** AsIs 以利用缓存;如果你追求 100% 的中国 CDN 友好,可设为 AsIs 利用操作系统设置的 DNS 再解析一次,额外耗时约 1 ~ 数百毫秒。 ## 写在后面 @@ -180,7 +180,7 @@ realIp 透明代理环境,你甚至可以在劫持 DNS 后,设置 domainStra 聪明的你可能会想到:那我再找一个公共代理套一层不就解决了吗?前提是你要完全信任此代理不留日志不出卖你,并且它被许多你国家的人高强度使用。这样一个海外 IP 在单位时间内与成千上万人产生关联,就没有办法通过海外 IP 倒推出你了。至于这种脏 IP 的烦人验证码问题克服一下就行。 -赛博大善人 Cloudflare 的 Warp 不正好完美契合所有特征吗?可惜的是对于托管在 CF 的网站,Warp 并不能隐藏你的 IP,它仅对非 CF 服务器有效。 +赛博大善人 Cloudflare 的 Warp 不正好完美契合所有特征吗?可惜的是对于托管在 CF 的网站,Warp 并不能完全隐藏你的 IP,它仅对非 CF 服务器有效。 Tor 可以吗?它不太适合日常使用,IP 太脏且出口频繁跳跃许多网站会因此封停你的账号。