V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jamesjammy061
V2EX  ›  问与答

sing-box 的 dns 规则是怎么路由的?

  •  1
     
  •   jamesjammy061 · 30 天前 · 846 次点击

    这里简化一下配置把 json 转为 yaml 表示

    俺代码也去扒了一下没大看懂,暂且理解为从上到下,按照先后顺序一条条匹配的,如果没有匹配到任何一条,那么就走 final

    如果在 tun mode 下,sing-box 会进行 dns 劫持吗

    dns:
      final: dns_proxy
      independent_cache: true
      strategy: prefer_ipv4
      servers:
        - { tag: dns_proxy, address: 8.8.8.8, detour: 默认 }
        - { tag: dns_resolver, address: 223.5.5.5, detour: DIRECT }
      rules:
        - { rule_set: [ MainlandNetwork ], server: dns_resolver }
        - { rule_set: [ AboardNetwork, GeoSite@category-anticensorship, GeoSite@tld-!cn, GeoSite@gfw, GeoSite@geolocation-!cn ], server: dns_proxy }
        - { rule_set: [ GeoSite@cn, GeoSite@tld-cn ], server: dns_resolver }
        - { outbound: [ any ], server: dns_resolver }
    

    按照这个规则,比如说当前域名是 3vc6d6355d917116360892063vc6d635.edns.ip-api.com

    ip-api.com 应该是没有在上面任何一条 rule_set 中,那么是否会命中 outbound: any

    测试了一下 tun mode ,发现会有 dns 泄露

    但是 http proxy 不会,有点不太明白这个逻辑,按这个逻辑来说应该任何没有命中 rule_set 的域名都应该走 223.5.5.5 请求 dns

    已经禁用 Windows 智能多宿主名称解析

    3 条回复    2024-03-29 10:24:07 +08:00
    SenLief
        1
    SenLief  
       29 天前
    strict_route
    kuaizi
        2
    kuaizi  
       29 天前 via Android
    outbound
    匹配出站。
    any 可作为值用于匹配任意出站。

    解析你代理服务器域名用的
    没有匹配规则的话,默认走 sever 第一个,也就是你的 8.8.8.8
    jamesjammy061
        3
    jamesjammy061  
    OP
       29 天前
    @kuaizi 感谢。我也有在 singbox 官方 issue 问过,但是发现好像会死循环,8.8.8.8 又会走 detour 。有没有方法像 clash meta 的 proxy_nameserver 一样,使得解析代理服务器域名走单独的 dns ,直接出站
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   962 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:53 · PVG 06:53 · LAX 15:53 · JFK 18:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.