18 条回复  ·  288 次点击
itning 小成 2024-9-3 20:17:40
@ZRS #5 开启 tun 不久解决了这个问题么,为什么跟 enhanced-mode 有关系?
batilo 小成 2024-9-3 20:19:18
DNS 泄漏和 FAKE-IP 根本上是两回事儿啊
Michae1Jacks0n 小成 2024-9-3 21:30:15
dns 太复杂 我倒现在都没弄明白它
qbqbqbqb 小成 2024-9-3 22:17:56
fake-ip 不是用来解决 DNS 泄露问题的

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

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

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

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

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

缺点是假 ip 会进入系统 dns 缓存,如果关掉代理之后可能会上不了网,这时候需要清除一下系统的 dns 缓存。
wcnmm 小成 2024-9-3 23:19:17
@qbqbqbqb 深感赞同,你的回答好到可以写进 wiki 了
jeanz 小成 2024-9-4 09:08:03
clash meta 用 redir-host 体验更好还不会存在泄露问题
billytom 小成 2024-9-4 13:11:05
@jeanz 这个模式下手机 chatgpt app 无法走梯子从而被拒绝
lihaohenqiang 小成 2024-9-5 15:00:15
不知道为啥一堆人用 fakeip ,实际体验下来,根本不好用
yyyb 小成 2024-9-7 00:12:49
ipleak.net 测一下就知道泄露没有了
12
返回顶部