V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vx007
V2EX  ›  宽带症候群

代理规则中的 dns 不设置,也不会导致 dns 泄露!

  •  
  •   vx007 · 2 天前 · 3890 次点击

    网上看了很多对 dns 泄露的讨论,为了防止 dns 泄露,很多人对 dns 模块进行了复杂的自定义设置。 但我都是直接把配置文件中 dns 模块删除!只需在配置文件设置国内常用域名的白名单走直连,其他所有域名用 match 兜底走代理,ipcidr 和 geoip 规则全设置 no-resolve ,就不会有 dns 泄露。

    国内常用网站走国内 dns ,其他网站都在代理服务器端远程解析,这样既安全又不用配置 dns ,为什么不用?

    这样看来,那么多人都在追求的 dns 精细设置是否多此一举,有什么意义?

    第 1 条附言  ·  2 天前
    有人提到,白名单里国内域名不全导致国内小众网站被迫走代理,这种情况存在但很少发生,就算发生也可以通过搭配 swithyomega 之类的扩展快速放行,国外应直连而走代理的域名同样可如此操作。
    第 2 条附言  ·  6 小时 12 分钟前
    重大发现:当 edge 浏览器 switchyomega 开启 sock5 转发+clash/singbox 不开系统代理和 tun 模式时,dns 竟然会泄露!用 ipleak 和 dnsleak 等网站检测显示无泄露,用 wireshark 抓包证实 dns 泄露无疑!
    但换成谷歌浏览器时无泄露,或者依旧用 edge 浏览器,clash 开启系统代理模式时也无 dns 泄露。
    太奇怪了,sock5 协议为什么不会转发 dns 到 clash ?
    77 条回复    2024-07-01 22:57:33 +08:00
    xclrr
        1
    xclrr  
       2 天前 via Android
    如果不设置,isp 的 dns 服务器会知道你访问了什么网站,校园网什么的对这种大都有审计的
    vx007
        2
    vx007  
    OP
       2 天前
    @xclrr 国内白名单域名走国内 dns ,知道了也无妨,不在白名单中的域名都在代理服务器远程解析了,并不经过运营商 dns ,也就不存在泄露
    xclrr
        3
    xclrr  
       2 天前 via Android
    @vx007 clash 的 dns 逻辑有点奇怪,我记得不设置 dns 是会本地先解析的,你说的设置 no resolve 能否只让远端解析我可能没有做过什么测试,最近都在用 singbox ,singbox 的解析逻辑比较清晰。我的理解是,精细设置 dns 可以让你访问网站吃到离代理服务器近的 cdn(如果你的设置能做到只让远端解析,这一点当我没说),还有就是校园网环境下让一些内网网址走校园网 dns
    hefish
        4
    hefish  
       2 天前
    各人喜欢。
    我家里的 dns 是 DoH 到 dnspod 去解析的,理论上运营商要看的话也比较麻烦。
    K8dcnPEZ6V8b8Z6
        5
    K8dcnPEZ6V8b8Z6  
       2 天前
    @vx007 需要没有 IP 类规则(或者全部都 no-resolve )才可以做到不解析
    vx007
        6
    vx007  
    OP
       2 天前
    @xclrr 只要对 ip 规则设置了 no-resolve ,直连白名单以外的域名都不会在本地解析,测试过。singbox 的 dns 逻辑虽然清晰,但太复杂了
    vx007
        7
    vx007  
    OP
       2 天前
    @K8dcnPEZ6V8b8Z6 是的,ip 规则用到的机会很少
    itisqiang
        8
    itisqiang  
       2 天前
    圈 X: no-system
    xxxxi
        9
    xxxxi  
       2 天前
    你用的是 clash 还是 singbox 啊, “其他所有域名用 match 兜底走代理”,
    问一下:你把 DNS 模块都删了,那么其他网站是怎么在远端解析的?
    vx007
        10
    vx007  
    OP
       2 天前
    @hefish 这是腾讯的 dns 吧,被腾讯知道了和被运营商知道了有区别吗
    vx007
        11
    vx007  
    OP
       2 天前
    @xxxxi dns 模块删了不影响,其他域名自动加密发送了代理服务器,这就是兜底的意义
    vx007
        12
    vx007  
    OP
       2 天前
    @itisqiang 不了解苹果
    anonymous64
        13
    anonymous64  
       2 天前 via Android
    有人觉得白名单走运营商明文 dns 就算泄露了,你觉得不算那也没办法
    maxus
        14
    maxus  
       2 天前
    - GEOIP,CN,DIRECT
    - GEOSITE,cn,DIRECT
    - IP-ASN,132203,DIRECT # 微信
    - IP-ASN,6185,DIRECT # Apple 中国
    - IP-ASN,714,DIRECT # Apple 中国
    - IP-ASN,13414,推特策略,no-resolve,no-track # Twitter
    - IP-ASN,35995,推特策略,no-resolve,no-track # Twitter
    - IP-ASN,63179,推特策略,no-resolve,no-track # Twitter
    maxus
        15
    maxus  
       2 天前
    有 GEOIP,CN,和 GEOSITE,cn 两个规则直连,基本可以囊括所有大陆常用网站,再不放心就添加中国所有 IP-ASN 使用直连,以及 DOMAIN-KEYWORD,.cn,DIRECT
    cnn 和 cnbc 另外添加策略
    最后兜底走代理,MATCH,proxy
    vx007
        16
    vx007  
    OP
       2 天前
    @maxus 这个配置明显导致 dns 泄露,IP 段和 GEOIP 只要有一处未设置 no-resolve ,就会出现 dns 泄露
    vx007
        17
    vx007  
    OP
       2 天前
    @maxus clash 用这个配置明显会导致 dns 泄露,IP 段和 GEOIP 只要有一处未设置 no-resolve ,就会出现 dns 泄露
    xxxxi
        18
    xxxxi  
       2 天前
    贴一下你的配置看看
    maxus
        19
    maxus  
       2 天前
    @vx007 no-resolve ,国内的 ip 不让本地 dns 解析,怎么判断是国内,国内的必须 resolve 。国外的 ip 必须 no-resolve
    maxus
        20
    maxus  
       2 天前
    如果设置 IP 段为 “no-resolve” ,Clash 就不会对该规则进行 DNS 解析,而是直接将其交给海外代理服务器的 DNS 进行解析。国内的交给国外解析,速度变慢
    jackOff
        21
    jackOff  
       2 天前
    所有复杂操作都是为了实现一个根据域名或者 ip 进行不同的 dns 域名服务器的解析请求这个操作,所以如果公网里存在一个 dns 服务器具备这种能力,你的代理软件的确不用进行任何复杂设置,挂一下代理配置直接用这个特殊的 dns 服务器就可以解决 dns 泄漏问题,那么在中国境内有没有这种特殊的 dns 服务器呢?
    maxus
        22
    maxus  
       2 天前
    mintongcn
        23
    mintongcn  
       2 天前 via iPhone
    常用网站不好定义
    maxus
        24
    maxus  
       2 天前
    😀 为了防止泄漏,clash DNS 引入 fakeip 模式,在此模式下,Clash 会为每个请求生成一个假的、不存在的 IP 地址( ip 段 198.18.0.1/16 ) ,然后在内部解析这个 IP 到正确的域名。这样,外部的网络监控者只能看到假的 IP 地址,而无法通过 DNS 请求来了解你的网络活动。配置是这样的
    dns:
    enable: true
    ipv6: true
    enhanced-mode: fake-ip
    listen: 0.0.0.0:53
    fake-ip-range: 198.18.0.1/16
    default-nameserver:
    - 119.29.29.29
    nameserver:
    - 119.29.29.29
    - 182.254.116.116
    maxus
        25
    maxus  
       2 天前
    使用 fake ip 模式后,- GEOIP,CN,DIRECT 不要加 no-resolve ,直接交给内部解析,外部看到的是假的 fake ip 地址,也就不存在 dns 泄漏。
    国外的加上 no-resolve ,直接交给海外 dns 解析,加快速度。
    fanxasy
        26
    fanxasy  
       2 天前
    surge 默认就是这种策略
    vx007
        27
    vx007  
    OP
       2 天前
    @maxus 白名单中的直连域名自动用系统默认 dns 就行,不需额外设置 dns 。 国内 IP 段设置 “no-resolve” 后,只要白名单包括了对应的国内域名,国内域名只会在本地解析,并不会交国外解析。
    vx007
        28
    vx007  
    OP
       2 天前
    @fanxasy 感觉这是最简单还最安全的策略了,把 dns 想复杂反而百密一疏
    maxus
        29
    maxus  
       2 天前
    @vx007 错,我试过了,国内 IP 段加 no resolve ,是交给国外解析的,人民网解析到国外的 ip
    vx007
        30
    vx007  
    OP
       2 天前
    @maxus 那是因为人民网不在直连域名白名单内,常用的加入白名单就好了,不常用的偶尔交国外解析影响不大,保证境外域名安全才是最重要的
    vx007
        31
    vx007  
    OP
       2 天前
    @maxus 你提到“使用 fake ip 模式后,- GEOIP,CN,DIRECT 不要加 no-resolve ,直接交给内部解析,外部看到的是假的 fake ip 地址,也就不存在 dns 泄漏。”,这不对啊,只要 GEOIP,CN,DIRECT 没加 no-resolve ,你设置了 fakeip 照样泄露 dns 。仅靠 fakeip 根本防止不了 dns 泄露
    SuperArilo
        32
    SuperArilo  
       2 天前
    目前我是使用 mosdns + clash 的 Redir+Host 模式
    测试没有 dns 泄露
    https://imgur.com/gLdbI4A
    js9528
        33
    js9528  
       2 天前 via iPhone
    @SuperArilo 有没有详细教程参考下
    Love4Taylor
        34
    Love4Taylor  
       2 天前
    Without DNS leaks, but slower (1.9.0-alpha.2+)

    ```
    {
    "dns": {
    "servers": [
    {
    "tag": "google",
    "address": "tls://8.8.8.8"
    },
    {
    "tag": "local",
    "address": "https://223.5.5.5/dns-query",
    "detour": "direct"
    }
    ],
    "rules": [
    {
    "outbound": "any",
    "server": "local"
    },
    {
    "clash_mode": "Direct",
    "server": "local"
    },
    {
    "clash_mode": "Global",
    "server": "google"
    },
    {
    "rule_set": "geosite-geolocation-cn",
    "server": "local"
    },
    {
    "type": "logical",
    "mode": "and",
    "rules": [
    {
    "rule_set": "geosite-geolocation-!cn",
    "invert": true
    },
    {
    "rule_set": "geoip-cn"
    }
    ],
    "server": "google",
    "client_subnet": "114.114.114.114/24" // Any China client IP address
    }
    ]
    },
    "route": {
    "rule_set": [
    {
    "type": "remote",
    "tag": "geosite-geolocation-cn",
    "format": "binary",
    "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-geolocation-cn.srs"
    },
    {
    "type": "remote",
    "tag": "geosite-geolocation-!cn",
    "format": "binary",
    "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-geolocation-!cn.srs"
    },
    {
    "type": "remote",
    "tag": "geoip-cn",
    "format": "binary",
    "url": "https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-cn.srs"
    }
    ]
    },
    "experimental": {
    "cache_file": {
    "enabled": true,
    "store_rdrc": true
    },
    "clash_api": {
    "default_mode": "Enhanced"
    }
    }
    }
    ```

    https://sing-box.sagernet.org/manual/proxy/client/#traffic-bypass-usage-for-chinese-users
    Love4Taylor
        35
    Love4Taylor  
       2 天前
    @maxus fake-ip 的出现不是防泄漏吧,是 redir-host 的映射或者反查的问题(当然后来可以通过 sniff 解决),现在普遍讨论的 DNS “泄漏” 只是如果有个网站用来检查用户 DNS 解析的域名没有命中规则就不会走远程解析从而通过国内 DNS 解析就造成了所谓 “泄漏”。以及 “外部的网络监控者” 是啥,你用到 fake-ip 要么本机撑死了在局域网内。
    hefish
        36
    hefish  
       2 天前
    @vx007 好吧,我这就拔网线。
    Jacquesx
        37
    Jacquesx  
       2 天前
    @vx007 域名的 DNS 请求并没有通过加密发送给代理服务器远程解析,clash 处理 UDP 的协议要发起 DNS 请求(软件设计问题)曾经的讨论: https://www.v2ex.com/t/957464
    (而 v2ray 系列的可以开启节点嗅探进行远程 DNS 解析),除非使用 DoT 或者 DoH ,否则
    1 、clash 的 redirhost 模式(目前已弃用)会发起 DNS 请求来进行分流
    2 、现在的 clash 内核使用的是 fake-ip 模式会因为 Windows 的多宿主 DNS 也会发起 DNS 请求

    如果想要使用 clash 代理又不进行
    曾经的讨论:
    https://cn.v2ex.com/t/829447
    https://global.v2ex.com/t/1034325
    Jacquesx
        38
    Jacquesx  
       2 天前
    如果想要使用 clash 代理又不产生 DNS 泄露,最好的办法就是本地配置 DoH/DoT ,即便 clash 代理软件设置了 no-resolve ,chrome 使用 QUIC 协议的流量还是会使 clash 发起 DNS 请求,需要在 chrome 里面配置安全的 DNS (开启 DoH/DoT )
    jinqzzz
        39
    jinqzzz  
       2 天前
    国内域名并不完整,没有在规则列表内的都会走代理查询,geoip,cn,direct 会失效
    vx007
        40
    vx007  
    OP
       2 天前
    @Jacquesx 我的意思是如果域名没有匹配直连规则,则会将域名加密发给代理服务器远程解析,这样不会出现 dns 泄露。我完全删除了 dns 模块,配置文件不对 dns 做任何设置,除了国内域名白名单走直连,其他所有域名都不会被以加密数据的形式发给代理服务器远程解析,就算采用 quick 协议也不会在本地解析
    vx007
        41
    vx007  
    OP
       2 天前
    @vx007 更正:我的意思是如果域名没有匹配直连规则,则会将域名加密发给代理服务器远程解析,这样不会出现 dns 泄露。我完全删除了 dns 模块,配置文件不对 dns 做任何设置,除了国内域名白名单走直连,其他所有域名都会被以加密数据的形式发给代理服务器远程解析,就算采用 quick 协议也不会在本地解析
    adrianzhang
        42
    adrianzhang  
       2 天前
    @jackOff 自己内网做一个就行。
    vx007
        43
    vx007  
    OP
       2 天前
    @jinqzzz 更正:我的意思是如果域名没有匹配直连规则,则会将域名加密发给代理服务器远程解析,这样不会出现 dns 泄露。我完全删除了 dns 模块,配置文件不对 dns 做任何设置,除了国内域名白名单走直连,其他所有域名都会被以加密数据的形式发给代理服务器远程解析,就算采用 quick 协议也不会在本地解析
    vx007
        44
    vx007  
    OP
       2 天前
    @jinqzzz 多打了一个不字,更正:我的意思是如果域名没有匹配直连规则,则会将域名加密发给代理服务器远程解析,这样不会出现 dns 泄露。我完全删除了 dns 模块,配置文件不对 dns 做任何设置,除了国内域名白名单走直连,其他所有域名都会被以加密数据的形式发给代理服务器远程解析,就算采用 quick 协议也不会在本地解析
    jinqzzz
        45
    jinqzzz  
       2 天前
    @vx007 是不是回错人了
    vx007
        46
    vx007  
    OP
       2 天前
    @jinqzzz 用网上 clash 能用的国内常用域名列表啊
    jinqzzz
        47
    jinqzzz  
       2 天前
    @vx007 你没解决问题,如何让 geoip,cn,direct 生效?
    你用网上的域名列表,那列表里没有的怎么办呢?实际上别人也是慢慢收集的国内域名,并不是很全,我已经贡献了六七千个没有在 geosite,cn 里边的
    adrianzhang
        48
    adrianzhang  
       2 天前
    你提出的删除 dns 模块,那么怎么按照域名分流不同规则呢?这件事的正确做法是内网做一个 dns 服务器,dns 模块的上游 dns 都设置成这个 dns(不管国内国外),然后,在这个内网 dns 上下功夫,解决分流解析的问题。国内的直接就 foeward isp 的 dns ,一般都在猫上,国外直接 doh 。或者就建成一个缓存 dns ,从根域开始解析,至于 udp 怎么出去,都会吧?
    leconio
        49
    leconio  
       2 天前 via iPhone
    udp53 不加密就有可能泄露,不管代理还是直连。没代理的话用 doh(dns over https)可以解决一些。代理软件可以用 fakeip ( clash ),fakedns(xray)等缓解。
    vx007
        50
    vx007  
    OP
       2 天前
    @jinqzzz 只需要最常用的几百的国内网站直连就可以满足 99%的场景了,不匹配直连规则而被迫走代理的国内小众网站可以安装 swithysmega 之类的扩展来放行,不麻烦
    vx007
        51
    vx007  
    OP
       2 天前
    @adrianzhang 只需要最常用的几百的国内网站直连就可以满足 99%的场景了,不匹配直连规则而被迫走代理的国内小众网站可以安装 swithysmega 之类的扩展来放行,不麻烦
    jinqzzz
        52
    jinqzzz  
       2 天前
    @vx007 所以你的答案是 不知道 吗?
    yyysuo
        53
    yyysuo  
       2 天前
    dns 分流并不是为了不泄露,而是为了更好的体验,分流越精确,体验越好,当然不泄露也是很好的。
    v2guy
        54
    v2guy  
       2 天前
    简单来说,楼主这种模式就是"绕过大陆"路由模式,也就是所谓的白名单机制。
    本来就是这么简单即可杜绝 Dns 泄露了。
    vx007
        55
    vx007  
    OP
       2 天前
    @jinqzzz 既然白名单解决了 99%的场景,swithysmega 解决了剩下的 1%绕路的问题,geoip,cn,direct 这条规则就多余甚至碍事
    vx007
        56
    vx007  
    OP
       2 天前
    @v2guy 对啊,返璞归真,最简单的反而是最安全的
    jinqzzz
        57
    jinqzzz  
       2 天前 via iPhone
    @vx007 switchyomega
    Jacquesx
        58
    Jacquesx  
       2 天前 via iPhone
    @vx007 我要是没理解错的话,我记得 clash DNS 解析那部分的模块是给 TUN 模式用的,不开 TUN 模式本身就没有启用 clash 内核作 DNS 解析,不知道你说的 DNS 泄漏指的是什么情况下的泄漏,如果是开透明代理/系统代理,那 socks5 是会代理 UDP 请求的,UDP 流量肯定是从 clash 发出去的呀,clash premium 内核处理 UDP 数据会发起一次 DNS 请求(具体来源忘了在哪看到的),而且 clash 应该不能把 DNS 请求交给远程服务器解析吧?(没有这个功能),好久没有关注 clash 内核的更新了 lol
    Jacquesx
        59
    Jacquesx  
       2 天前 via iPhone
    @vx007 记错啦,刚看了一下确实 dns 模块可以删除,dns 请求直接被节点加密发到远程去解析了,理论上说抓包看不到明文国外 dns 请求,应该就算没泄漏?
    hazy
        60
    hazy  
       2 天前 via iPhone
    我认为这个问题首先要讨论的应该是 DNS 泄漏的焦虑是怎么流行起来的,能避免自然是好事,有部分泄漏也不见得有多大问题,信不过运营商可以用公共 DNS ;而且代理中 DNS 的作用本来就是为了更准确的分流,要更好的体验自然需要更精确的 DNS 配置,要是担心 DNS 隐私问题那更简单了,自建前置 DNS 一举两得。
    adrianzhang
        61
    adrianzhang  
       2 天前
    @vx007 所以你喷了半天,还是不理解为什么要 DNS 分流。请问一个代理支持大带宽但不支持 chatgpt ,一个支持 chatgpt 不支持 Netflix 。你访问这俩怎么做?手工切代理?
    ziseyinzi
        62
    ziseyinzi  
       1 天前
    同好奇 dns 泄漏的焦虑是怎么流行起来的,除了 ipleak 跑分不好看有实际影响吗
    weeei
        63
    weeei  
       1 天前
    @maxus DOMAIN-KEYWORD,.cn,DIRECT 这个写的好像不准确,访问 cnbeta.com.tw 也会匹配到了。
    everfly
        64
    everfly  
       1 天前 via iPhone
    基于域名的规则是不可靠的,因为客户端可能内置了加密 dns ,分流基于 IP 规则才是合理的。
    samersions
        65
    samersions  
       1 天前
    @ziseyinzi 不同人对 DNS 泄漏的定义不太一样,网上不良林那种是很苛刻的防 DNS 泄漏。其实一般来说只需要防止部分黑名单域名(如 Google 等)泄漏给运营商就行了。
    frankilla
        66
    frankilla  
       1 天前
    @js9528 #33 https://github.com/Aethersailor/Custom_OpenClash_Rules/wiki/OpenClash-%E8%AE%BE%E7%BD%AE%E6%95%99%E7%A8%8B 这是 fakeip 的,我当前用的,之前不泄露现在泄露了,按照帖子一步步设置也不知道问题所在,如果大佬发现问题可否告知。谢谢。
    chrisl73
        67
    chrisl73  
       1 天前
    @Love4Taylor 最后一个规则没看懂,dns 规则里面匹配 cn ip ? dns 不就是用来解析 ip 的吗,有 ip 了就用不着 dns 了吧
    maxus
        68
    maxus  
       1 天前
    @weeei 是的 不准确,用 geo ip cn 和 geo site cn 完全够用
    maxus
        69
    maxus  
       1 天前
    @ziseyinzi dns 泄漏 国内 dns 提供方 可以看到你访问了哪些翻墙网站😀 他的 dns 在解析了这些域名
    frankilla
        70
    frankilla  
       1 天前
    @js9528 #33 泄露已解决。不过你可以试试这个,作为小白我觉得相当省心且好用~
    Serino
        71
    Serino  
       1 天前
    dns:
    cache-algorithm: arc
    enable: true
    prefer-h3: true
    listen: 0.0.0.0:7874
    ipv6: false
    enhanced-mode: redir-host
    nameserver:
    - "https://223.5.5.5/dns-query"
    - "https://1.12.12.12/dns-query"
    nameserver-policy:
    "geosite:!cn":
    - "https://1.0.0.1/dns-query#proxy"
    - "https://8.8.8.8/dns-query#proxy"

    geodata-mode: true
    geox-url:
    geoip: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip-lite.dat"
    geosite: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat"
    geo-auto-update: true
    geo-update-interval: 24

    rules:
    [省略一些配置]
    - 'GEOSITE,geolocation-!cn,Proxy'
    - 'DOMAIN-SUFFIX,cn,DIRECT'
    - 'DOMAIN-KEYWORD,-cn,DIRECT'
    - 'GEOSITE,cn,DIRECT'
    - 'GEOIP,CN,DIRECT'
    - 'MATCH,Final'

    不用那么麻烦。类似这样设置,就不漏了。
    小众网站也会根据 IP 分流,国内 IP 走直连,国外 IP 走代理。
    radeon019
        72
    radeon019  
       1 天前 via iPhone
    有大神可以出个 passwall2 的具体设置么?
    MrKrabs
        73
    MrKrabs  
       1 天前
    你这白名单不是地雷?
    hongyichao
        74
    hongyichao  
       1 天前
    怎么算 DNS 泄漏啊,运营商知道了你的 DNS 请求吗
    lhwj1988
        75
    lhwj1988  
       1 天前 via iPhone
    @SuperArilo 拿这个网站测试下呢 https://browserleaks.com/dns
    qbqbqbqb
        76
    qbqbqbqb  
       6 小时 43 分钟前
    不用 clash 解千愁
    vx007
        77
    vx007  
    OP
       6 小时 10 分钟前
    @Serino 这个可行,但 rule 部分每次都要手动配置?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   959 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:08 · PVG 05:08 · LAX 14:08 · JFK 17:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.