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

singbox | sfm 个人感觉现在免费里性能最好的,学习一下你们的 dns 配置

  •  
  •   a66243766 · 61 天前 · 3035 次点击
    这是一个创建于 61 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 现在的 dns 配置总说不上哪里奇奇怪怪的反正就是不是很快的感觉
    • 比方说刷新 you 管的时候

    这里是我 dns 的配置(四个主策略 1111 优先、8888 兜底、国内域名走阿里,apple 走本地)

    "dns": {
        "fakeip": {
          "enabled": true,
          "inet4_range": "198.18.0.0/15",
          "inet6_range": "fc00::/18"
        },
        "servers": [
          {
            "tag": "google",
            "address": "tls://8.8.8.8",
            "detour": "Proxy"
          },
          {
            "tag": "remote",
            "address": "tls://1.1.1.1",
            "detour": "Proxy"
          },
          {
            "tag": "china",
            "address": "https://223.5.5.5/dns-query",
            "detour": "direct"
          },
          {
            "tag": "system",
            "address": "local",
            "detour": "direct"
          },
          {
            "tag": "fakeip",
            "address": "fakeip"
          }
        ],
        "rules": [
          {
            "outbound": "any",
            "server": "china"
          },
          {
            "clash_mode": "direct",
            "server": "china"
          },
          {
            "clash_mode": "global",
            "server": "remote"
          },
          {
            "query_type": "HTTPS",
            "rule_set": "geosite-geolocation-!cn",
            "server": "remote"
          },
          {
            "query_type": "HTTPS",
            "rule_set": "geosite-cn",
            "action": "reject"
          },
          {
            "ip_is_private": true,
            "server": "system"
          },
          {
            "rule_set": [
              "geosite-apple",
              "geosite-microsoft"
            ],
            "server": "system"
          },
          {
            "rule_set": [
              "geosite-bilibili",
              "geosite-cn"
            ],
            "server": "china"
          },
          {
            "type": "logical",
            "mode": "and",
            "rules": [
              {
                "rule_set": "geosite-geolocation-!cn",
                "invert": true
              },
              {
                "rule_set": "geoip-cn"
              }
            ],
            "server": "china",
            "client_subnet": "114.114.114.114/24"
          },
          {
            "query_type": [
              "A",
              "AAAA"
            ],
            "rule_set": "geosite-geolocation-!cn",
            "server": "fakeip"
          }
        ],
        "final": "google",
        "independent_cache": true,
        "strategy": "prefer_ipv4"
      },
    
    21 条回复    2025-09-12 15:05:36 +08:00
    NG6
        1
    NG6  
       61 天前
    这是我的,用着感觉还行,不过我的用途是给不支持 proxy 的容器做代理用
    ```
    {
    "log": {
    "level": "info",
    "timestamp": true
    },
    "experimental": {
    "cache_file": {
    "enabled": true,
    "store_fakeip": true,
    "store_rdrc": true
    }
    },
    "dns": {
    "independent_cache": true,
    "disable_cache": false,
    "strategy": "ipv4_only",
    "servers": [
    {
    "tag": "ali",
    "type": "https",
    "server": "223.5.5.5",
    "detour": "direct"
    },
    {
    "tag": "ali-h3",
    "type": "h3",
    "server": "xxxxxx.alidns.com",
    "detour": "direct",
    "domain_resolver": "ali"
    },
    {
    "tag": "fakeip",
    "type": "fakeip",
    "inet4_range": "198.18.0.0/15",
    "inet6_range": "fc00::/18"
    }
    ],
    "rules": [
    {
    "rule_set": "geosite-cn",
    "server": "ali-h3"
    },
    {
    "query_type": [
    "A",
    "AAAA"
    ],
    "server": "fakeip"
    }
    ]
    },
    "route": {
    "default_domain_resolver": "ali-h3",
    "auto_detect_interface": true,
    "rules": [
    {
    "action": "sniff"
    },
    {
    "protocol": "dns",
    "action": "hijack-dns"
    },
    {
    "ip_is_private": true,
    "outbound": "direct"
    },
    {
    "rule_set": [
    "geosite-cn",
    "geoip-cn"
    ],
    "outbound": "direct"
    },
    {
    "protocol": "quic",
    "port": 443,
    "action": "reject",
    "method": "default",
    "no_drop": false
    },
    {
    "inbound": "tun",
    "outbound": "clash"
    }
    ],
    "rule_set": [
    {
    "tag": "geosite-cn",
    "type": "remote",
    "format": "binary",
    "url": "https://raw.github.com/lyc8503/sing-box-rules/rule-set-geosite/geosite-cn.srs",
    "download_detour": "clash"
    },
    {
    "tag": "geoip-cn",
    "type": "remote",
    "format": "binary",
    "url": "https://raw.github.com/lyc8503/sing-box-rules/rule-set-geoip/geoip-cn.srs",
    "download_detour": "clash"
    }
    ]
    },
    "inbounds": [
    {
    "type": "tun",
    "tag": "tun",
    "address": [
    "172.18.0.1/30"
    ],
    "auto_route": true,
    "strict_route": true
    }
    ],
    "outbounds": [
    {
    "type": "direct",
    "tag": "direct",
    "connect_timeout": "5s"
    },
    {
    "type": "socks",
    "tag": "clash",
    "server": "192.168.1.92",
    "connect_timeout": "5s",
    "server_port": 17891
    }
    ]
    }
    ```
    chunchu
        2
    chunchu  
       61 天前
    能否提供一个完整配置文件参考一下,谢谢
    liaohongxing
        3
    liaohongxing  
       61 天前
    请教一下 dns 的 query_type 为什么可以填 https
    daisyfloor
        4
    daisyfloor  
       61 天前
    和你用没用 tun 有一些关系。

    1 、如果你没用 tun ,其实 fakeip 没什么作用,可能还带来额外的问题。因为 mix 进来的流量会至今进入路由而不会进行 dns 解析,singbox 的路由机制和 clash 也不一样,默认不进行 dns 解析去匹配 ip 规则,所以走代理的都去了远端代理解析,走直连的,才会在域名方式进入 direct 后,调用"default_domain_resolver"指定的那个 server 直接进行解析(不走 DNS 里的规则)。

    2 、如果你用了 tun ,那么所有进入 tun 的的流量,都会先进行 dns 解析,这个时候正确的做法是让 fakeip 直接接管(目的是避免本地 dns 解析的额外开销+dns 泄露和污染的风险),这样带着 fakeip 的流量进入路由后,回到步骤 1 的流程。用最快的方式进行分流和出站。


    如果你路由的 ip 规则需要进行本地域名解析进行匹配,则需要在 ip 规则之前加入解析 action ,这里也是直接指定 dns server

    {
    "action": "resolve",
    "server": "google"
    },


    所以,最终还是看你怎么用,我使用 mix+tun 进站,并且启用了 fakeip ,于是我只在 dns 路由规则里放了 reject 广告规则(其实也可以不放,放在后面的路由里也是可以的,只是放在这里某些情况下这会快一些)、之后是 fakeip 接管所有 dns 解析请求。

    快的飞起。


    我用的是 1.12 。

    你应该根据自己的实际用况,结合 sing-box 的的逻辑(时尚 1.11 和 1.12 在某些地方还是有有差别的)进合理配置。
    wuxkwnjjwoxk
        6
    wuxkwnjjwoxk  
       61 天前
    分流国内外 dns 没有任何意义
    ylx
        7
    ylx  
       61 天前 via iPhone
    vokins
        8
    vokins  
       61 天前
    dns 还不如系统默认,试过各种 dns ,会出现各种各样的小问题
    NASK
        9
    NASK  
       60 天前
    楼主一般怎么弄 singbox 的配置的,之前喜欢用这个软件,但是这个软件每次升级配置文件就要频繁变动,有点劝退
    radeon019
        10
    radeon019  
       60 天前 via iPhone
    @wuxkwnjjwoxk #6 怎么理解?
    d0m2o08
        11
    d0m2o08  
       60 天前
    @NASK 不升级新版😂,每次版本变化都导致配置文件变动确实劝退
    a66243766
        12
    a66243766  
    OP
       60 天前
    先回复一些简单的问题,复杂问题在分步回答
    @NG6 牛学习中
    @chunchu 可能有些敏感的配置不太适合而且文件太大了
    @vokins 是的我也有这样的感觉,但是经验告诉我一般是自己专业性的的问题,学习好了就可以解决
    @liaohongxing 有些 dns 请求是加密的 DoH 、tls 而很多国产的地址并不需要这个过程,毕竟开代理 dns 服务是绕开运行商的采集,走公开的会比较好。
    a66243766
        13
    a66243766  
    OP
       60 天前
    @wuxkwnjjwoxk 怎么说呢如果你为了加速更快的境外体验、避免 dns 过程泄露(为何要 dns 解析并且防止泄露就要知道泄露的主体是谁)一定是有用的
    a66243766
        14
    a66243766  
    OP
       60 天前
    @NASK https://github.com/vincenty1ung/sing-box-subscribe fork 过来 ,定期我会执行一次 py 脚本更新一下代理列表,希望可以帮到你
    a66243766
        15
    a66243766  
    OP
       60 天前
    @daisyfloor
    2.我是 tun 接管所以用了 fakeip ,但是不想 apple 和国内的很多 ip 走 fakeip 想减少转换开销,所以做了!cn a 、aaaa 才走 fakeip
    1.我起初还以为 fakeip 在转换 domain 后到,路由规则后,选择对应的代理配置,然后走 dns 设置好的 final dns server 做 dns 解析然后转换成 ip 给到代理端 ip+port ,原来是直接交给代理服务做了 dns ?

    想问一下这个 有点看不太懂,看了 singbox 官方的文档对这个也没有太多的解释。
    {
    "action": "resolve",
    "server": "google"
    },
    wuxkwnjjwoxk
        16
    wuxkwnjjwoxk  
       60 天前 via iPhone
    @radeon019 以 lz 的配置为例,判断 dns 是否分流的规则和直接用域名规则/geoip 分流然后交给 remote server 处理并没有区别,何必多此一举。况且 remote server 也未必使用 lz 指定的 dns ,这可以用自建 vps 配和能看见解析记录的 dns 验证一下。不如直接使用一个可信的 dns 或者干脆就用公共 dns ,毕竟就解析个 dns 也不会把人抓了。
    a66243766
        17
    a66243766  
    OP
       60 天前
    @wuxkwnjjwoxk 可是你用公共的或者 114 国外的域名会被返回错误的 ip 地址 ,错误的 ip 地址交给 remote server 并不可用啊
    wuxkwnjjwoxk
        18
    wuxkwnjjwoxk  
       60 天前 via iPhone
    @a66243766 这就是第二点,机场会使用自己的的 dns ,你在 client 里面指定是不起效的
    daisyfloor
        19
    daisyfloor  
       59 天前
    @a66243766

    比如你的逻辑规则是这样
    geosite-globle ,proxy
    geosite-cn ,direct
    geoip-cn ,direct
    final ,proxy

    如果没有
    {
    "action": "resolve",
    "server": "google"
    },

    假如有一个域名,qishishichina.com 不在上述任何一个域名规则集里,那么在 singbox 的逻辑中里是不会进行域名解析得到 ip 地址去匹配那个 ip 规则的,而是直接交给 final 了。

    这样做也没有问题,但 qishishichina.com 如果是一个国内域名它对应的 ip 也是国内的,那走 proxy 就绕路了,这我们希望更准确一点,在 geoip-cn 这条规则之前加入

    {
    "action": "resolve",
    "server": "google"
    },

    就会在两条域名规则都不匹配之后,进行域名解析,去匹配 ip 规则,发现是一个 cn 的 ip ,走 direct 出去。

    如果你用过 clash 应该就知道区别在哪里。clash 默认会进行域名解析去匹配 ip 规则,而 sing-box 不会。
    Richared
        20
    Richared  
       59 天前
    你整这么复杂干啥,一个国内一个国外,国内域名走国内,剩下的 final 走国外。其实 dns 无所谓,机场都会开,忘了叫啥了,他不用你的 dns 解析,他会自己解析。你自己搭建也可以开,肯定用 vps 自己的 dns 最好。
    Siefy1983
        21
    Siefy1983  
       9 天前
    @daisyfloor 大佬,能分享一下配置文件么
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2640 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:39 · PVG 22:39 · LAX 07:39 · JFK 10:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.