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

clash 开启 tun 之后 nslookup 是怎么运作的呢?

  •  
  •   TravisMtg · 2022-03-17 18:09:16 +08:00 · 9731 次点击
    这是一个创建于 999 天前的主题,其中的信息可能已经有所发展或是发生改变。

    nslookup 的结果

    nslookup.png

    浏览器访问 duckduckgo.com 的结果 图片.png

    下面是我的 clash 配置

    tun:
      enable: true
      stack: gvisor
      #dns-listen: 1.0.0.1:53
      dns-hijack:
        - 1.0.0.1:53
      # auto-route: true # auto set global route
    dns:
      enable: true
      default-nameserver:
        - 114.114.114.114
        - 8.8.8.8
      enhanced-mode: fake-ip
      fake-ip-range: 198.18.0.1/16 # Fake IP addresses pool CIDR
      nameserver:
        - 114.114.114.114 # default value
        - 8.8.8.8 # default value
        - tls://dns.rubyfish.cn:853 # DNS over TLS
        - https://1.1.1.1/dns-query # DNS over HTTPS
      fallback:
        - tcp://1.1.1.1
    

    这其中具体过程是什么样的呢,希望 v 站大佬指点一下

    11 条回复    2022-11-17 15:11:54 +08:00
    neteroster
        1
    neteroster  
       2022-03-17 18:20:39 +08:00 via Android   ❤️ 10
    fake-ip 就是,发起连接时,你的 DNS 请求会被 clash 截获然后给你返回个假的 ip ,clash 会在内部记录这个 ip 和请求域名的对应关系。然后应用向这个假的 ip 发送请求的时候,请求会被 clash 截获,clash 通过反查表得到请求域名,然后(如果判定要走代理)把域名封装到某种其他协议然后往代理服务器发送,由代理服务器解析 DNS 。可以一定程度上避免 DNS 污染的影响。
    TravisMtg
        2
    TravisMtg  
    OP
       2022-03-17 18:28:16 +08:00
    @neteroster 谢谢!
    chengouzi
        3
    chengouzi  
       2022-03-17 18:39:58 +08:00
    @neteroster fake-ip 只能使用 域名判断是否走代理是么
    neteroster
        4
    neteroster  
       2022-03-17 18:43:34 +08:00 via Android
    @chengouzi 也可以使用 IP ,所以 clash 其实还是会在本地解析一次(但是这个解析仅仅用做规则匹配),如果结果被污染,误判国内就会无法访问。所以说「一定程度上」缓解 DNS 污染。
    sprite82
        5
    sprite82  
       2022-03-17 19:03:07 +08:00   ❤️ 1
    shawndev
        7
    shawndev  
       2022-03-17 23:47:14 +08:00
    Surge 作者博客有介绍过实现方式,1 楼把实现原理介绍了,实际开发时还可能存在 DNS Cache 及时性(关闭代理之后)和最大容量的问题。https://blankwonder.medium.com/surge-%E5%8E%9F%E7%90%86%E4%B8%8E%E5%AE%9E%E7%8E%B0-8aa3304fb3bb
    zxjunz
        8
    zxjunz  
       2022-03-18 08:55:56 +08:00
    @neteroster #1 所以 fkae-ip 的作用是不用开全局代理也能让 DNS 请求走代理?
    yaott2020
        9
    yaott2020  
       2022-03-18 12:16:08 +08:00 via Android   ❤️ 2
    fake-ip 的弊处就是在关闭 clash 后如果不清理 dns 缓存,就会造成所有的 dns 污染。所以我一般不用 fake-ip
    K8dcnPEZ6V8b8Z6
        10
    K8dcnPEZ6V8b8Z6  
       2022-03-19 21:05:19 +08:00
    @yaott2020 印象中 clash 很早就把 fake-ip 解析的 TTL 改成 1s 了,按理说不会有残留污染(除非你下游又有其他程序缓存了)
    joyoner
        11
    joyoner  
       2022-11-17 15:11:54 +08:00
    @neteroster 解释的很清楚,不过想进一步问下,这个过程中,dns-hijack 这个配置是怎么生效的呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4971 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 08:30 · PVG 16:30 · LAX 00:30 · JFK 03:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.