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

clash fake ip 模式是否可以解决 dns 污染?

  •  
  •   maosu · 2022-03-07 19:56:33 +08:00 · 18390 次点击
    这是一个创建于 752 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我写的 dns 配置文件:
    dns:
    enable: true
    ipv6: true
    nameserver:
    - 119.29.29.29
    # fallback:
    # - tls://8.8.4.4:853

    一个仅被 dns 污染的网站: https://merlinblog.xyz/wiki/rules.html

    之前听网上说 fake ip 模式可以解决 dns 污染问题,但我使用以上配置时无论是在 clashx 还是 clash android 上都无法访问被 dns 污染的网站,只有注释掉 fallback 时才能透过自定义的无污染 dns 访问,请 V 友们帮我看看问题出在哪了
    9 条回复    2022-03-08 10:41:08 +08:00
    xenme
        1
    xenme  
       2022-03-07 20:02:48 +08:00 via iPhone
    最终还是用的 119 dns ,一样被污染。
    maosu
        2
    maosu  
    OP
       2022-03-07 20:23:19 +08:00
    @xenme 也就是说不论是 redir 还是 fake ,若是想解决污染问题就要启用 fallback 咯?因为我参考 cfw 的 wiki: https://github.com/Fndroid/clash_for_windows_pkg/wiki/DNS 污染对 Clash ( for-Windows )的影响,是说 fake ip 配置了 nameserver 就能解决污染,结果我发现还是有污染
    ByteCat
        3
    ByteCat  
       2022-03-07 20:37:22 +08:00
    本来应该就是 国内的 nameserver + 无污染 fallback 才能解决污染问题吧,redir 是直接把查询到的真实 ip 返回给客户端,而 fakeip 是把一个保留 ip 返回给客户端,再进行真实 ip 的中转。
    似乎并不会因为请求结果是国内 ip 后就使用远端 dns 请求的。
    ByteCat
        4
    ByteCat  
       2022-03-07 20:39:28 +08:00
    @ByteCat 首先进行的是 nameserver 部分 dns 的查询,如果 Final 设置成 PROXY 的话:
    1. 查询到的 ip 是国内,则直接返回(正确)
    2. 查询到的 ip 是国外(可能存在污染),再使用海外 dns 查询
    chotow
        5
    chotow  
       2022-03-07 20:56:13 +08:00
    https://github.com/Dreamacro/clash/issues/642#issuecomment-618525507
    Fake IP 不能解决 DNS 污染;如果有速度不错的无污染 DNS ,那可以使用 Fallback 来解决 DNS 污染;否则,Fallback 填不填、填啥都不重要,这时候需要靠规则,做到「智能」走代理。
    回到你的配置,个人看法:这个域名使用的是直连策略,在没有 Fallback 的情况下,请求了被污染的解析结果;在有 Fallback 的情况下,因为 Geo 的默认配置的作用,会使用 Fallback 的解析结果,如果刚好 Fallback 是无污染的,那就能成功请求。
    maosu
        6
    maosu  
    OP
       2022-03-07 21:24:00 +08:00
    感谢 V 友们的答复,我对 Fake IP 的原理也大致有了个了解,打算 nameserver 和 fallback 配合长期使用,无污染还是比较省心哈
    coolan
        7
    coolan  
       2022-03-07 22:09:55 +08:00   ❤️ 1
    Clash 使用规则从上到下逐条来判定某个域名是否走代理,一旦命中就结束判定。
    当判定到 IP 类规则时,如果规则没有'no-resolve',就需要解析一下域名 IP 来判定是否符合规则,就用到配置里的 DNS 逻辑了。此时会出现所谓的 DNS 污染。
    不管这个 IP 对不对,只要按规则命中走代理,那就域名直接送去远端连接,这个 IP 就无用了。只有命中直连,clash 直接用这个 IP 连接,才会受污染影响。
    上面是使用 windows 系统代理时的处理流程。如果是透明代理模式,比如 tun ,那 fake-ip 作用是浏览器的 dns 查询直接获得 IP ( clash 记录网址-IP ),然后发起连接,clash 用 IP 找到网址,继续按上面的判定机制判定。
    oxromantic
        8
    oxromantic  
       2022-03-07 22:50:20 +08:00
    chrome 很早就走了 DoH ,哪来的污染。。
    jujusama
        9
    jujusama  
       2022-03-08 10:41:08 +08:00
    如果尼的 nameserver 是无污染的,那么 fallback 就没有必要
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3245 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 13:09 · PVG 21:09 · LAX 06:09 · JFK 09:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.