V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GotKiCry
V2EX  ›  DNS

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

  •  1
     
  •   GotKiCry · 13 天前 · 2850 次点击
    通过 MosDNS 指定国内国外 DNS ,目前测试下来 DNS 均未发现泄露的情况。Fakeip 是为了解决泄露问题,如果说已经做到避免泄露,Fakeip 是否代表不需要使用 Fakeip 了
    28 条回复    2024-09-07 00:12:49 +08:00
    K8dcnPEZ6V8b8Z6
        1
    K8dcnPEZ6V8b8Z6  
       13 天前
    不同人对“泄露”定义不一样,有的人需要不让 DNS 服务商知道客户机的 DNS query log ,有的人只是不想要污染
    EvineDeng
        2
    EvineDeng  
       13 天前
    不是一定要用 fake-ip 才能解决 DNS 泄露,只要你方案能解决就行了。
    GotKiCry
        3
    GotKiCry  
    OP
       13 天前
    @K8dcnPEZ6V8b8Z6 国外 DNS 应该也是走代理去请求的,理论上服务商收到的客户机 dns 请求应该也是代理服务器发出而已。如果说需要国内 dns 请求干脆不使用国内 dns 就可以了。
    Goooooos
        4
    Goooooos  
       13 天前
    fake-ip 不是为了解决泄露的吧?
    ZRS
        5
    ZRS  
       13 天前
    fakeip 解决的是在应用程序不支持代理的情况下如何将 IP 请求和域名关联起来用于代理的问题
    和 DNS 泄露没关系
    mohumohu
        6
    mohumohu  
       13 天前
    谁跟你说 fakeip 是用来解决 DNS 泄漏的,这两者之间就没有任何联系。
    Earsum
        7
    Earsum  
       13 天前
    dns 防泄漏是把国内的域名扔给国内解析,国外的域名扔给国外解析,这样对于境内 dns 提供商而言,只能看到你境内的 dns 请求。甚至有的人还需要不同的服务走不同的节点,例如 paypal 走美国原生节点,那 paypal 就需要从美国原生节点发起 dns 请求而不能单纯用香港或者新加坡的 IP ,否则可能会被风控,但是这种需求对于个人用户很少见。
    fakeip 解决的是 dns 请求速度的问题,因为会立马返回一个假 ip 给用户终端,代价就是可能的内网 dns 污染,不过本来没污染也上不去 gfwlist 网站所以对于境内而言区别不太大。
    Earsum
        8
    Earsum  
       13 天前
    @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
        9
    GotKiCry  
    OP
       13 天前
    @Earsum 请教一下这个对国内 dns 请求速度有明显提升吗。如果没有感觉只需要分流给国外走 fakeip
    Earsum
        10
    Earsum  
       13 天前   ❤️ 3
    @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
        11
    Volekingsg  
       13 天前
    FakeIP ( or Surge 的增强模式)不是为了解决 DNS 泄漏和 请求速度
    frankilla
        12
    frankilla  
       13 天前   ❤️ 4
    DNS 都把你们搞魔怔了。
    daisyfloor
        13
    daisyfloor  
       13 天前   ❤️ 1
    只有在 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
        14
    itning  
       13 天前
    @ZRS #5 开启 tun 不久解决了这个问题么,为什么跟 enhanced-mode 有关系?
    batilo
        15
    batilo  
       13 天前 via Android
    DNS 泄漏和 FAKE-IP 根本上是两回事儿啊
    Michae1Jacks0n
        16
    Michae1Jacks0n  
       13 天前
    dns 太复杂 我倒现在都没弄明白它
    qbqbqbqb
        17
    qbqbqbqb  
       13 天前   ❤️ 8
    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
        18
    qbqbqbqb  
       13 天前
    是不是用 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
        19
    qbqbqbqb  
       13 天前   ❤️ 1
    @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
        20
    qbqbqbqb  
       13 天前
    总而言之,只要你的代理软件支持远程解析 dns ,并且正确配置了 dns 分流,对于非国内域名一律使用远程 dns (不能使用类似 clash 的 fallback 这样的功能),会不会 dns 泄露就和 fake-ip 没有关系。
    qbqbqbqb
        21
    qbqbqbqb  
       13 天前
    @daisyfloor “客户端软件自己发起的那次 dns 查询”会泄露,主要原因还是 clash (非 meta )的 dns 模块不支持远程解析 dns ,而不是 fake-ip ,fake-ip 只是恰好规避了这个问题。
    wcnmm
        22
    wcnmm  
       13 天前
    @qbqbqbqb 深感赞同,你的回答好到可以写进 wiki 了
    daisyfloor
        23
    daisyfloor  
       12 天前
    @qbqbqbqb 远超 DNS 解析是指,把 DNS 解析和连接建立的工作放在节点进行?还是说仅仅是 DNS 查询的请求 使用代理进行?

    我没用过后者,一直用前者,并遵循:
    1 、IP 分流规则全部是 no-reslove
    2 、如果用 tun 模式就开启 fake-ip

    这两点保证不在本地做 DNS 解析,这样设定之后就很简单了。

    域名分流:如果是命中直连规则,那么就正常解析,并通过 ip 创建连接,如果命中分流走代理,那直接封装丢给远超节点,去节点解析并连接去。
    daisyfloor
        24
    daisyfloor  
       12 天前
    @qbqbqbqb 我是参考这个大佬的方案做的: https://blog.skk.moe/post/i-have-my-unique-dns-setup/
    jeanz
        25
    jeanz  
       12 天前
    clash meta 用 redir-host 体验更好还不会存在泄露问题
    billytom
        26
    billytom  
       12 天前
    @jeanz 这个模式下手机 chatgpt app 无法走梯子从而被拒绝
    lihaohenqiang
        27
    lihaohenqiang  
       11 天前 via iPhone
    不知道为啥一堆人用 fakeip ,实际体验下来,根本不好用
    yyyb
        28
    yyyb  
       10 天前
    ipleak.net 测一下就知道泄露没有了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   883 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 20:24 · PVG 04:24 · LAX 13:24 · JFK 16:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.