使用本地双层 DNS 过滤(Xray+smartDNS)降低 DNS 泄漏概率 #1983
Replies: 11 comments 5 replies
-
i don't know what you said as dns leakage discribes behaviors not expected onto those dns queries. |
Beta Was this translation helpful? Give feedback.
-
我的做法比这个更快速。我在xray-server端也用smartdns搭建一个dns服务,并在server端新建立一个内网的私有地址。 nft防火墙tproxy设置
xray-client路由设置
xray-server路由设置
|
Beta Was this translation helpful? Give feedback.
-
整篇文章的基点是第一句话,但是第一句就不对,学东西看书比看视频强的多 |
Beta Was this translation helpful? Give feedback.
-
DNS leak WIKI |
Beta Was this translation helpful? Give feedback.
-
这么简单的东西我相信该懂的都懂,确实没必要发出来讨论 |
Beta Was this translation helpful? Give feedback.
-
哦,你说这句话啊,那确实跟wiki不一样,我们又要兼顾国内网络又要连外网,跟老外用VPN保护隐私是有区别的,他们泄漏指的泄露本地,我们不仅要解决本地泄漏还要解决远端泄漏,这个说法没问题,差不多得了。比喻打得不错啊,语文很好吧~~虽然我只看了开头~~
…On Mon, 10 Jul 2023, 10:36 jiushibushuo, ***@***.***> wrote:
按照油管 不良林 的说法和我的理解,导致 DNS 泄漏 的原因是 查询域名时使用的 IP 与 实际访问网站的 IP
区域差距太大。具体原理请谷歌或者看 不良林 的视频。
没闲工夫看一群油管主的视频,不知道你的理解/转述的对不对,如果真如你说,你和不良林,都是蠢货
—
Reply to this email directly, view it on GitHub
<#1983 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AIKEELZ7T67LCSJ4M6UOW63XPNTCFANCNFSM6AAAAAAXHZJDSQ>
.
You are receiving this because you modified the open/close state.Message
ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
讨论区嘛就是图个乐,我看还是open 吧 |
Beta Was this translation helpful? Give feedback.
-
配置透明代理,全局模式,在其后方通过软路由分流。DNS不就不会泄露了。 |
Beta Was this translation helpful? Give feedback.
-
???DNS 泄漏 的原因是 查询域名时使用的 IP 与 实际访问网站的 IP 区域差距太大。这句话有问题,DNS泄漏是递归导致的,再不济按F12或者弄个ADG看看泄漏测试的时候会出来哪些域名就知道怎么回事了。 |
Beta Was this translation helpful? Give feedback.
-
对。就是这样。我为了更方便有效做分流就是这么构建的。
ZqinKing ***@***.***> 于 2024年7月23日周二 13:41写道:
… ???DNS 泄漏 的原因是 查询域名时使用的 IP 与 实际访问网站的 IP
区域差距太大。这句话有问题,DNS泄漏是递归导致的,再不济按F12或者弄个ADG看看泄漏测试的时候会出来哪些域名就知道怎么回事了。
当然防泄漏的的核心目标是保持DNS查询出口和查询到的目标再进行访问的出口尽可能的一致。这点没问题。
全局模式不会泄漏这个点也是没问题的。DNS请求和访问都走代理的情况下,从DNS的角度就是不泄露的。
—
Reply to this email directly, view it on GitHub
<#1983 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AZZ7PCDMGK5NQRHYM5OPEODZNXUJBAVCNFSM6AAAAABLJM7TKCVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTAMJSGIYTIMQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
结论:只要你分流,DNS泄露就是可以被检测的,对观察者来说露没露取决于他的观测手段,你只能降低被检测到的概率。
以下方法仅能降低一定概率,并不能避免泄露,若有表述为解决泄露的,请脑动替换为降低概率,我懒得改了。要是你理解分流必然能被检测出泄露那么你不需要看了。
该教程只讲解软路由透明代理环境下的解决方案(其他环境可以看个思路)
什么是DNS泄漏?
按照油管 不良林 的说法和我的理解,导致
DNS 泄漏
的原因是 查询域名时使用的IP
与 实际访问网站的IP
区域差距太大。具体原理请谷歌或者看不良林
的视频。那么我们需要做的事情就是保持
DNS 查询
和访问
出口的一致性,也就是说:为了实现这一点,最简单的方法就是,把 DNS 的规则和 routing 的规则写成一样的,比如:
geosite:cn
通过114查询,其他通过1.1.1.1查询geosite:cn
direct, 其他 proxy以上做法可以保持
DNS 查询
和访问
出口的一致性,但是问题就在于实际使用上routing
的规则往往比较复杂,并且routing
的查询策略和dns
的不一样,routing
是从上往下按顺序匹配规则,而dns
是先匹配规则,然后把匹配到规则的server
排到前面然后再按顺序查询。所以即使你把两个的规则写成纸面上的一致,实际执行的结果也是不一致的。
而我们需要做的就是根据
routing
的规则来写dns
规则,使得他们的执行结果保持一致(你 proxy 我也 proxy)根据
routing
规则的不同,写dns
的困难程度也不一样,下面讲解一下不同routing
策略下dns
的处理方法ROUTING 策略及对应的 DNS 处理方法
ROUTING 策略为白名单 proxy
白名单 proxy,也就是指定的域名走代理,其他全部直连,这种方法应该没什么人用,毕竟白名单不可能全面,有时候要手动加名单很累。这个解决方法最简单,就是纸面的把两个规则写一样就行了,就不说了。
实际上只要规则不重复就可以保证
dns
和routing
的执行结果一致,比如你只使用geosite:cn
。而添加了domian:tiktok.com
之后由于tiktok.com
存在于geosite:cn
和domian:tiktok.com
,会导致dns
和routing
执行结果不一致,具体下面有讲。ROUTING 策略为
geosite/ip:cn
直连, 其他代理这个应该是大多数人使用的策略,如果
geosite:cn
或者geoip:cn
非常准确的话,那routing
和dns
两个规则纸面一致,完全不会有 DNS 泄漏,问题就在于:geosite:cn
误杀太多,比如 tiktok 也在里面,要让 tiktok 也走 proxy 就需要在geosite:cn
上面加一条domian:tiktok.com
-> proxy。这在
routing
上是很容易解决的,因为routing
是按顺序从上到下匹配规则, 但是dns
的匹配策略为:先匹配规则,规则命中(据我观察只会命中一个)的服务器排在前面,然后按顺序查询。而
geosite:cn
和domian:tiktok.com
在dns
的匹配策略下都匹配 tiktok,并且无视顺序,这就导致了 tiktok 在dns
里面到底匹配到了谁比较随机。不过根据我观察
geosite
优先级比较高,我看日志 tiktok 都是匹配geosite:cn
而不是domian:tiktok.com
,所以这时候 tiktok 的 DNS 查询使用的是国内机器,但是访问确是VPS的ip, 两个地理位置相差巨大,导致dns服务器地理差距也巨大,所以出现了 DNS 泄漏。以上 tiktok 只是举个例子,我只是想说明
dns
和routing
的匹配策略的不一致导致在一些routing
规则下,单靠 Xray 的内置dns
模块无法将 proxy 列表 和 DNS 查询列表一致化,需要引入其他软件处理DNS。引入 smartDNS (本来是用mosDNS 的,但是实在是太菜了,不会用)
引入的目的就是为了解决一些本来应该在远端查询的DNS 请求却在本地查询的问题,如下图,把 CN 的 DNS 请求全部交给 smartDNS,然后再让 smartDNS 处理 “漏网之鱼“
Xray 配置
smartDNS配置(
文档写得好,可以看文档自己配置)最后我还在本地153端口开了个AdGuardHome, 有webui,用来看dns是否泄漏很方便,
还可以紧急block DNS 防止泄漏,再顺便看看隔壁邻居再干啥好像是支持正则的,自己看文档,我只举例子域名
再顺便说一下把ipleak.net 加入远端查询列表并不是掩耳盗铃,而是可以检查配置是否正确,如果ipleak.net 没有泄漏,说明列表里面的其他DNS 也没有泄漏。当然也不是绝对不泄漏,
人家硬是搞个CN 域名来测试你你也没办法是不是。这套方案是我觉得在能在保证绝大多数外网能走 proxy 的情况下,手动添加远端解析列表最少的方案。DNS泄漏没有一劳永逸的解决方案,除非你要求不高,直接 CN->direct ,OTHERS->proxy那确实可以一劳永逸, fakeDNS的话没研究过不是很懂不就加个转换层吗,跟泄露有关系?Beta Was this translation helpful? Give feedback.
All reactions