diff --git a/docs/document/level-1/routing-with-dns.md b/docs/document/level-1/routing-with-dns.md index 4618aaf..37192f0 100644 --- a/docs/document/level-1/routing-with-dns.md +++ b/docs/document/level-1/routing-with-dns.md @@ -23,13 +23,33 @@ 这无疑给分流带来困扰,如果你的规则更新的不及时,你可能会出现本应走直连的流量被代理、甚至一些网站会打不开的现象。 -那么有没有什么办法能做到 100% 精准分流呢? +未知的域名假如在中国有服务器,希望尽可能直连,但一顿操作后遇到了传说中的 DNS Leak 怎么办? + +那么有没有什么办法能做到 100% 安全又精准的分流呢? 答案是:包的。 ## 利用 Xray-core DNS 模块实现精准分流 -例子 1:此配置解析出精准的 CDN 友好的 IP 地址,保证无 DNS Leak 的同时,只要中国有服务器节点就能优先解析出来,非常适合 realIp 透明代理场景。 +合理利用 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)”。 +与此同时你已经快要把官方配置指南给翻烂了,因此你完全理解了路由和出站中的 domainStrategy、入站中 sniffing 各选项的作用、以及其不同值的组合下产生的行为。 + +一切就绪?请试着理解下面这段内容: + +sock、http 入站时,请求的就是域名,到了路由后,路由中非 AsIs 的 domainStrategy 可以利用内置 DNS 解析出 IP 临时用于路由匹配。到了本地 direct 出站时,出站中非 AsIs 的 domainStrategy 可以利用内置 DNS 再次解析出 IP 用于出站。发往 Xray 服务器的请求只有域名,具体访问哪个 IP 取决于服务器的 direct 出站。 + +透明代理时情况变得更加复杂,入站 sniffing 开启,且 destOverride 有 [http, tls]: + +- 若 routeOnly = false 则请求的 IP 将被抹掉,后面的流程跟 sock 入站一样。 +- 若 routeOnly = true 则同时有域名和 IP,到了路由后,可以直接匹配域名和 IP 规则,本地 direct 出站也会用此 IP。发往 Xray 服务器的请求只有 IP,服务器如何处理?再把刚才的流程走一遍。 + +遇到困难?你需要继续反复阅读官方指南并尝试理解。否则你很难利用到下面示例中 DNS 模块的解析结果来正确分流。 + +--- + +#### 例子 1:此配置解析出精准的 CDN 友好的 IP 地址,保证无 DNS Leak 的同时,只要中国有服务器节点就能优先解析出来,非常适合 realIp 透明代理场景。 ```json { @@ -96,7 +116,7 @@ realIp 透明代理环境,你甚至可以在劫持 DNS 后,设置 domainStra --- -例子 2:此配置解析出正确,但不保证国外 CDN 友好的地址,保证无 DNS Leak 的同时,只要中国有服务器节点就能优先解析出来,适合 fakeIp 透明代理、sock、http 入站等场景。 +#### 例子 2:此配置解析出正确,但不保证国外 CDN 友好的地址,保证无 DNS Leak 的同时,只要中国有服务器节点就能优先解析出来,适合 fakeIp 透明代理、sock、http 入站等场景。 ```json {