如果 DNS 没有泄露,是否还有必要使用 Fakeip 吗

15 天前
 GotKiCry
通过 MosDNS 指定国内国外 DNS ,目前测试下来 DNS 均未发现泄露的情况。Fakeip 是为了解决泄露问题,如果说已经做到避免泄露,Fakeip 是否代表不需要使用 Fakeip 了
2903 次点击
所在节点    DNS
28 条回复
K8dcnPEZ6V8b8Z6
15 天前
不同人对“泄露”定义不一样,有的人需要不让 DNS 服务商知道客户机的 DNS query log ,有的人只是不想要污染
EvineDeng
15 天前
不是一定要用 fake-ip 才能解决 DNS 泄露,只要你方案能解决就行了。
GotKiCry
15 天前
@K8dcnPEZ6V8b8Z6 国外 DNS 应该也是走代理去请求的,理论上服务商收到的客户机 dns 请求应该也是代理服务器发出而已。如果说需要国内 dns 请求干脆不使用国内 dns 就可以了。
Goooooos
15 天前
fake-ip 不是为了解决泄露的吧?
ZRS
15 天前
fakeip 解决的是在应用程序不支持代理的情况下如何将 IP 请求和域名关联起来用于代理的问题
和 DNS 泄露没关系
mohumohu
15 天前
谁跟你说 fakeip 是用来解决 DNS 泄漏的,这两者之间就没有任何联系。
Earsum
15 天前
dns 防泄漏是把国内的域名扔给国内解析,国外的域名扔给国外解析,这样对于境内 dns 提供商而言,只能看到你境内的 dns 请求。甚至有的人还需要不同的服务走不同的节点,例如 paypal 走美国原生节点,那 paypal 就需要从美国原生节点发起 dns 请求而不能单纯用香港或者新加坡的 IP ,否则可能会被风控,但是这种需求对于个人用户很少见。
fakeip 解决的是 dns 请求速度的问题,因为会立马返回一个假 ip 给用户终端,代价就是可能的内网 dns 污染,不过本来没污染也上不去 gfwlist 网站所以对于境内而言区别不太大。
Earsum
15 天前
@Earsum #7 以 clash 为例,clash redirhost 模式完全可以做到 dns 防泄漏,只需要在 Nameserver-Policy 自定义以下规则:
"geosite:cn,apple,private,steam,onedrive":
- "tls://223.5.5.5"
- "tls://1.12.12.12"
而 nameserver 填写境外 dns 即可。
GotKiCry
15 天前
@Earsum 请教一下这个对国内 dns 请求速度有明显提升吗。如果没有感觉只需要分流给国外走 fakeip
Earsum
15 天前
@GotKiCry #9 我认为你并没有搞明白 dns 泄露是怎么造成的,建议看这个帖子 https://linux.do/t/topic/162090 以及 clash meta 官方手册 https://wiki.metacubex.one/config/dns/diagram/
以 clash 为例,fakeip 和 redirhost 解析的行为其实是一致的,对于一个未定义规则的域名(例如常用的 ipleak.net dns 泄露检测网站的域名),clash 内核会将域名同时发送给境内和境外 dns 服务器进行解析并得到一个无污染的解析结果用以发起连接,而 dns 泄露往往发生在这个阶段。
如果你搭建的 mosdns 带 dns 防泄漏分流功能,那么你的代理软件完全不需要考虑 dns 的事情,配置 mosdns 为代理软件上游 nameserver 即可,所有的请求交给上游处理,clash 只负责发起连接。至于 fakeip ,个人认为完全没有必要为了一点点性能去使用 fakeip ,clash meta 的 redirhost 性能并不差且对内网无副作用。
Volekingsg
15 天前
FakeIP ( or Surge 的增强模式)不是为了解决 DNS 泄漏和 请求速度
frankilla
15 天前
DNS 都把你们搞魔怔了。
daisyfloor
15 天前
只有在 tun 模式下,fakeip 才会起作用。其实也就是因为 tun 模式这种透明网关的情况可能会造成泄露。

你只用系统代理,打开 fakeip 是没用的,根本不生效。如何验证呢?
1 、你看看日志,里面的连接请求都是 127.0.0.1 发起的,而不是 198.x.x.x 这种发起的。后者才是 fakeip 生效
2 、你 ping 随便一个 ip 或者域名 延迟应该 <1ms (这种代表 fakeip 生效)

简单总结就是:

1 、如果你要用 tun 模式,那建议开启 fakeip 模式(避免客户端软件自己发起的那次 dns 查询,一个是避免泄露,同时也减少一次查询的开销),注意如果是 windows ,tun 模式里要打开 strict-route: true 才可以 杜绝 DNS 泄露

2 、如果你只是用系统代理模式,那你设不设置 fakeip 都无所谓,因为根本没用。你测试结果不泄露就行了。以你当前的设置为准。
itning
15 天前
@ZRS #5 开启 tun 不久解决了这个问题么,为什么跟 enhanced-mode 有关系?
batilo
15 天前
DNS 泄漏和 FAKE-IP 根本上是两回事儿啊
Michae1Jacks0n
15 天前
dns 太复杂 我倒现在都没弄明白它
qbqbqbqb
15 天前
fake-ip 不是用来解决 DNS 泄露问题的

它的实际作用是让 tun 模式的代理也能像传统 HTTP/SOCKS5 代理一样支持域名连接,减少不必要的 DNS 解析,并且充分利用代理软件的路由规则(分流)功能。

传统的 HTTP 或者 SOCKS5 代理都是可以直接用域名建立连接的(有的地方也称为“远程 DNS 解析”),应用发起请求的时候不需要先通过系统进行 dns 解析得到 ip ,直接用域名向代理发起连接请求,这样的话就可以充分利用代理软件的域名分流规则的功能。

但是 tun 模式不一样,因为 tun 是虚拟网卡的原理,其它程序并不知道自己使用了代理,是像平常一样需要先进行 dns 解析得到 IP ,再用 IP 建立 tcp 或者 udp 连接,这样相比传统代理会带来一些麻烦”
1. 代理软件就得分两步处理其它程序的请求,先是接管 dns 解析,再接管后续的真正的连接建立,比较耗时
2. 第二步建立连接的时候代理软件拿到的是 ip ,域名信息没有了,要实现域名分流规则的功能就很麻烦,现在的 v2ray 等代理内核解决这个问题的方法是“协议嗅探”,就是尝试通过应用层的 http/tls 里面的信息来获取域名,这种方法实现域名分流的准确性和普适性有限

而 fake-ip 就是用来解决这个问题的,fake-ip 模式下 tun 模式的代理软件接管了 dns 解析之后,对于被代理的程序的 dns 请求不会实际进行解析,而是给相应的域名关联一个假 ip ,后续程序拿到假 ip 建立实际连接的时候,代理软件就可以知晓这个请求对应的域名,从而像传统代理一样可以直接用域名建立连接(远程解析),或者进行更准确的域名分流等操作。

好处就是提高 tun 模式代理的效率,并且补全了原本 tun 模式相比传统代理反而不支持的一些功能。

缺点是假 ip 会进入系统 dns 缓存,如果关掉代理之后可能会上不了网,这时候需要清除一下系统的 dns 缓存。
qbqbqbqb
15 天前
是不是用 fake-ip 和 dns 泄露无关。

主要是看代理内核接管 dns 解析后所使用的 dns 分流的工作原理。

例如:
1. clash 的 dns fallback 是会并发对国内国外 dns 发起请求然后过滤国内 dns 的无效结果,只要你用了这个 fallback 的功能实现国内外 dns 分流,就会有 dns 泄露,和用不用 fake-ip 无关。
2. v2ray 的 dns 分流是用 geosite 规则匹配国内国外域名分别用对应的 dns 解析,这样只要配置成没有匹配规则的域名一律走国外 dns ,就不会泄露,同样和用不用 fake-ip 无关。
qbqbqbqb
15 天前
@qbqbqbqb

补充一下,#18 里 v2ray 的“国外 dns”更正为“远程 dns”

而原版 clash (非 clash-meta )会有 dns 泄露的一个原因也是它内置的接管 dns 模块不支持远程 dns 解析,国外 dns 也是本地解析的,后续向正确的地址建立连接就要依赖于 redir-host 或者 fake-ip 获得原始请求域名再重新进行二次远程解析(其中 redir-host 就是类似 v2ray 的“域名嗅探”的原理)。

而 clash-meta 内核(使用远程 dns 解析功能)或者 v2ray 内核就不存在这个问题,因为它们在第一步接管 dns 解析的时候就可以先进行远程解析,所以只要配置正确无论用不用 fake-ip 都不会泄露。
qbqbqbqb
15 天前
总而言之,只要你的代理软件支持远程解析 dns ,并且正确配置了 dns 分流,对于非国内域名一律使用远程 dns (不能使用类似 clash 的 fallback 这样的功能),会不会 dns 泄露就和 fake-ip 没有关系。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1069923

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX