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

Mihomo 和 SingBox 关于 Real-IP 在代理挂掉情况下的解析问题

  •  
  •   ENE · 18 小时 39 分钟前 · 923 次点击

    起因是最近代理不稳定,发现代理节点挂掉,国外的 DNS 无法正常工作情况下,国内部分小众域名将会无法解析(不在 geosite:cn 列表中),一部分可以直连国外网站也会无法解析.
    在设置为 规则模式走 Direct 和 Direct 模式情况下,依然无法解析,才发现 Real-IP 在这种情况下有解析问题。


    我们以 Mihomo 内核举例:

    • 首先 规则模式走 Direct 和 Direct 模式 都是在分流层面事情,DNS 解析依然会走 DNS 规则
    • 其次,在 mihomo 内核中,需要代理域名解析到 IP 是错误也不太会影响分流结果( IP 规则除外),因为给远端(节点)是域名
    • 至于 Fallback 我们在这里并不做讨论(因为发送给远端是 IP 而并非域名,所以被排除掉了)
    1. 情况一、为了防止 DNS 泄露,一般除了国内域名( geosite:cn ),都是使用 EDNS+国外 DNS 方式查询( NameServer ),有些可能设置了 direct-nameserver (不影响结果)

      • 在这种情况下,只要国外 DNS 无法解析,就会出现开头所诉情况,即使设置 direct-nameserver 下,国外 DNS 那一关过不去就无法分流。
    2. 情况二、geosite:gfw 全走国外 DNS ,其他 NameServer 都是使用国内 DNS 查询( NameServer ),有些可能设置了 direct-nameserver (不影响结果)

      • 这种情况下会好点,虽然会有 DNS 泄露问题,但是仅限于 geosite:gfw 无法解析了

    SingBox 内核也有相同问题,但是会比 Mihomo 情况好很多(因为可以手动设置解析逻辑,就是比较掉头发罢了)

    • SingBox 可以手动设置 Direct 模式使用的 DNS

    而 Fake-IP 在这点上就没问题了,直接给客户端发送假 IP ,直接跳到分流层面上;
    不必在意 NameServer 是国内还是国外,需要代理域名直接给代理节点发送域名( 99%情况不会发送 IP 的);
    而直连域名就通过内核配置 DNS 解析 IP ,由内核中转发送到目标

    所以有没有一种方式,当解析超时时候,发送 Fake-IP ,直接到分流层次;或者可以设置 FallBack (此 FallBack 非彼 FallBack )

    8 条回复    2026-04-06 10:43:15 +08:00
    butanediol2d
        1
    butanediol2d  
       16 小时 30 分钟前
    为什么 Fake IP 没问题? Mihomo 只在遇到 IP 规则的时候才会去解析域名的 IP ,这一点无论是否使用 Fake IP 都是一样的吧?

    除非软件非要自己解析 IP ,不然一般走 socks/http 代理的时候,软件都会直接把域名交给代理。我感觉理论上是否用 Fake IP 都不影响。
    ENE
        2
    ENE  
    OP
       15 小时 56 分钟前 via Android
    @butanediol2d 因为软件域名解析超时拿不到 IP ,直接报错了; 而 FAKEIP 直接发假 IP 不会有这个问题
    ENE
        3
    ENE  
    OP
       15 小时 53 分钟前 via Android
    @butanediol2d 你说的仅限于 sock 和 http ,如果是 tun 或者 tproxy 模式的话就是我上面说的
    cairnechen
        4
    cairnechen  
       15 小时 49 分钟前
    @ENE sing-box 规则 reject 的时候也会遇到这个问题吧,但是我记得有个兜底策略,连续请求多少次就直接 drop 不 reject 了
    ENE
        5
    ENE  
    OP
       15 小时 41 分钟前 via Android
    @cairnechen 对,reject 的是这样。我现在是吧国外 DNS 单独设置一个组,通过 Auto urltest 选择一个可用节点代理 DNS
    butanediol2d
        6
    butanediol2d  
       14 小时 16 分钟前
    @ENE 哦那确实,但是我感觉 TUN 模式的话推荐用 fake ip 吧。
    Augix
        7
    Augix  
       4 小时 25 分钟前
    都 Real-IP 了还用什么代理软件的 DNS 。
    ENE
        8
    ENE  
    OP
       3 小时 22 分钟前
    @Augix 说的是不在 CN 列表中,但是是 CNIP 的域名,走的国外 DNS 解析,代理挂了不就拿不到 IP 了吗
    还有就是国外域名在!CN 列表里,走的国外 DNS 解析,但是可以直连访问,同样不就拿不到 IP 了吗
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2655 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:05 · PVG 14:05 · LAX 23:05 · JFK 02:05
    ♥ Do have faith in what you're doing.