mixed 模式下 DNS 解析 不走配置的 DNS 块,实际生效的 DNS 服务器选择逻辑是怎样的?

mixed 模式下,流量直接进入主路由进行分流,而不会进入 DNS 模块。

进入主路由后,默认不进行域名解析,就是域名走域名的规则判断,ip 走 ip 的规则判断。走远端代理的去远端机器上进行 dns 解析,走直连的域名才会开始进行域名解析,这个时候默认使用 dns 配置的第一个 server 。(当然你可以在路由规则的 default_domain_resolver 你可以指定使用哪一个 server )

总之就是,mixed 模式下,DNS 里的路由规则似乎是没有用的。

已经弃坑 singbox 了,这软件和它的名字一样 sb 。每次大版本更新规则全变,每次小版本更新一堆 bug 哪哪突然就用不了了。文档写的和狗屎一样,反馈问题开发者还 bb 。

对了,这开发者默认是你会去看懂代码的。

sb

sb 运行效率很高得,建议钉死一个稳定版本使用。

这软件的乐趣不就是更新一个版本,改配置文件可以玩一天吗?

服了。。。你说到痛点了。。

#1 你黑都黑不到点上,大版本更新不兼容之前的配置并没有任何问题。这个软件作者傻逼的是每个小版本更新都是 破坏性更新,不兼容之前的配置。

短暂的用过一段时间,确实相比 clash 配置更合理,但是确实是问题不少,经常变动,提过一个 issue ,作者似乎也没啥心思理解我的问题就直接关了。

这作者堪称劳模啊,更新的非常频繁

支持一楼,提过一次反馈直接被关了

它的效率并没有比 mihomo 高很多,那点性能差距没有稳定性来的实际,我一直服务器用 xray ,客户端全平台都是 mihomo 的配置。

之前我用 ai 写了个 update.sh 每天更新最新版本,然后就发生了像上面说的版本一变,配置文件就要跟着改,特别是 dns ,主要问题是他文档 dns 写的很迷,绕来绕去的
现在 hy2 用的 github.com/apernet/hysteria ,vless 用的 xray ,每天自动更新版本,到现在都没问题

就 singbox 那注解一样的文档, 能看懂多少有点天才了. 小版本还经常引入破坏性更新. 没人能顶得住.
还有一些神奇的坚持, 例如不加入 provider.

sing-box 项目,用户提交的问题,如果作者知道问题在哪怎么解决,修复之前不进行任何回复,修复完了在群里接受大大修 bug 真快的吹捧;如果不知道问题在哪或暂时解决不了的,就直关 issue 或者踢群。同时永远在小版本改配置语法,协议看似集成丰富其实后续跟进有限。

说回 dns ,它的 dns 表现是无法预期的。同系统内在 53 端口部署的 mosdns 服务,sing-box tun 模式下设置 dns 地址为 local 或 127.0.0.1 (文档默认端口为 53 )或 127.0.0.1 (显式配置端口 53 ),这三种表现都是不同的,离谱的是后两种按照文档是相同配置。所以 sing-box 现在只作备份方案

难怪我配置不好透明代理,不是我的问题,哈哈哈哈。

透明代理用 tun+fakeip ,但不代表下次更新个小版本还能正常用。

建议他别拿来当客户端
老实当服务端

千万别做 客户端.
服务端不错

正解

一个版本用到底就行了,配置文件+二进制文件,全平台可用。
如果是 Linux 再开启 auto-redirect 做透明代理,性能一流,比 tproxy 更轻更快更简单。

服务端很好使,客户端用别的吧

确实,更新个中间版本很多破坏性更新,文档是最新版( 1.12.X ),实际上 1.12.X 还没发布。真是蛋疼,又没有旧版的文档镜像,找文档好累,tg 问了个问题直接拉黑了

原来我被踢是因为这个,哈哈

我客户端用的 nekobox ,sing-box 内核的,看来又得研究换个了

#1 不对吧,开启协议探测,检测到 DNS 协议就转发到 DNS 模块不就行了?

不需要手写配置啊,我都是用 Gemini 生成的脚本自动转换配置,或者可以用这个 sing-box-subscribe-doraemon.vercel.app/ 把机场订阅填写进去,选择 1.12 版就行了。
我用的 Gemini 生成的脚本
python sub_converter_final.py -u 机场 url
drive.google.com/file/d/1v3GHmmewKE-ilrswCuj3tkSvjY0Mc1le/view?usp=sharing

文档也不用看,直接让 Gemini 或者 Claude 去看提修改建议就行了,如果还是不行丢一个正确的 config 给 Gemini 它就能逆向出一个脚本。

笑死我了还真是,不过人家就是 0.几也情有可原,等待它的 1.0 版本

看这个帖子实在是绷不住,只能说这个 clowwindy 说啥来着,这圈子好像十多年了也是这样也没变过。我觉得比起花时间研究这些软件还不如研究怎么润划算。

回答下 OP 的问题,HTTP 代理和 Socks 5/6 客户端都能够指示目的域名,因此客户端不会对域名做解析。对于这些代理软件的策略路由来说,通用的逻辑是在匹配 IP 规则前解析,具体策略因软件而异,有些是可配置的。

这就是您退圈的原因吗(

一部分吧,最主要的原因还是太忙了。

至今没学会怎么配置,摊手🤷

在 TUN 模式下确实是你说的这个逻辑,但他说的是 mixed 模式。mixed 模式下流量直接进入路由分流。

#27 还记得这事儿的,都是老网民了,确实这么多年一点没变:伸手党大骂“为爱发电”怎么不单独给我发电。哎!

可以在 inbounds 添加本地 port 监听 udp direct ,dns 模块在这个 port 设置一个 server ,把 route.default_domain_resolver 设置为这个 server ,然后这个入站设置 sniff

sing-box 是有一大堆问题,但是它又支持 Hysteria2 又支持 Tun 又支持 iOS ,我找不出第二家。

看起来还是热心人多,还在耐心解答。mixed 模式根据命中的 geoip ,geosite 路由走了,DNS 劫持不会生效,

要想处理 DNS 规则就要用 Tun 模式,配合 DNS 模块分流。

这个回复框很难用,碰到空白就提交了。不是 sing-box 垃圾,而是目标用户要有 JSON 基础,它作为一个通用代理平台如果用 GUI 填字段、拉选项配置开发上就很麻烦,它有几大模块,每个里面又有很多子模块自由组合,直接用 JSON 配置是有道理的,如果支持 yml 就更好,它支持注释。

那些骂 sing-box 的人也可以理解,滚动更新快速迭代新功能,在工程上舍弃旧的配置字段会让人不适应。但这是一个开源项目,不是付费软件,它没有义务全方位服务你,没有这层契约。开源的精神是共建共享,你为我,我为你,SS 原作者的意思是开源社区里有一大堆饭来张口,衣来伸手的白嫖党,什么都要满足于他,这不符合开源的目的,开源项目作者也不是教育使用开源的人怎么怎么样,而是你能力不够或是不理解代码文档,你就更努力学习这些,你会了可以选择写博客来分享如何配置,如何解决疑难杂症,有能力的就添砖加瓦建设开源项目,没能力的也不要过多抱怨,显得戾气纷纷。

sing-box 支持 JSONC 扩展,配置文件里可以写注释。
在 mixed 模式下,DNS 流量会在本地发起一次查询(因为 mixed 并不会劫持 53 端口),同时根据 rule 规则,远端代理也会再进行一次 DNS 解析。这样就导致了 DNS 泄露 。

关于协议探测,得先用 TUN 劫持全部流量才可以读取到包头进行协议类别判断 ,DNS 规则只有在 TUN 模式生效。
谢谢各位 ,我问了个很简单的问题 事后就想明白了

回到现实,写开源软件的人不是全职在干这个,他们有其他的事,人的精力是有限的,代码,测试,文档都需要人来做,不可能凭空就很完美,开源项目的赞助或打赏也没有几个人去做,反过来骂开发者或贡献者不合理,他们没有惹你。如果你和软件无缘换一个便是,大家都开心。

其实不全是这个意思,这段话前面的部分不能忽略,有些 大 佬 确实喜欢一群人围着他转