问题描述
使用最新脚本 v3.5.11 在 sing-box 1.13.x 环境下,配置分流工具(DNS 分流、WARP 分流、域名黑名单)后,分流规则无法实际生效,且在某些情况下 sing-box 无法启动。
环境
- 脚本版本:v3.5.11
- sing-box 版本:v1.13.5(通过脚本 core 管理升级)
- 系统:Ubuntu 22.04
具体问题
1. 缺少 default_domain_resolver(严重)
sing-box 1.13.x 将 missing default_domain_resolver 从 WARN 升级为 FATAL。脚本生成的配置中没有此字段,导致:
- v1.12.x:仅显示警告,可以运行
- v1.13.x:直接启动失败
报错信息:
ERROR missing `route.default_domain_resolver` or `domain_resolver` in dial fields is deprecated in sing-box 1.12.0 and will be removed in sing-box 1.14.0
FATAL to continuing using this feature, set environment variable ENABLE_DEPRECATED_MISSING_DOMAIN_RESOLVER=true
2. 缺少全局 sniff 路由规则
脚本的 setSniffRouting() 函数只在配置 Socks5 分流时被调用,普通安装不会生成全局 sniff 规则。
没有 sniff,sing-box 无法从连接中识别出目标域名,导致所有基于域名的分流规则(DNS 分流、WARP 分流、域名黑名单的 geosite-cn 等)全部无法匹配,形同虚设。
3. 缺少 hijack-dns 路由规则
没有 { "protocol": "dns", "action": "hijack-dns" },客户端的 DNS 查询不会被 sing-box 的 DNS 模块拦截处理,dns.json 中配置的 DNS 分流规则(如 Netflix/OpenAI 走指定 DNS)不会生效。
复现步骤
- 全新安装,选择 sing-box 核心
- 通过 core 管理升级 sing-box 到 v1.13.5
- 配置任意分流功能(如 DNS 分流、WARP 分流、域名黑名单)
- sing-box 启动失败(缺少 default_domain_resolver),或启动成功但分流规则不生效(缺少 sniff 和 hijack-dns)
建议修复
在脚本安装/配置流程中自动生成一个基础路由配置文件(如 00_base_route.json),包含:
{
"route": {
"default_domain_resolver": "local",
"rules": [
{ "action": "sniff" },
{ "protocol": "dns", "action": "hijack-dns" }
],
"final": "direct-out"
}
}
其中 "local" 对应 dns.json 中已有的 { "type": "local", "tag": "local" } DNS 服务器。
感谢作者持续维护此项目!
问题描述
使用最新脚本 v3.5.11 在 sing-box 1.13.x 环境下,配置分流工具(DNS 分流、WARP 分流、域名黑名单)后,分流规则无法实际生效,且在某些情况下 sing-box 无法启动。
环境
具体问题
1. 缺少
default_domain_resolver(严重)sing-box 1.13.x 将
missing default_domain_resolver从 WARN 升级为 FATAL。脚本生成的配置中没有此字段,导致:报错信息:
2. 缺少全局
sniff路由规则脚本的
setSniffRouting()函数只在配置 Socks5 分流时被调用,普通安装不会生成全局 sniff 规则。没有 sniff,sing-box 无法从连接中识别出目标域名,导致所有基于域名的分流规则(DNS 分流、WARP 分流、域名黑名单的 geosite-cn 等)全部无法匹配,形同虚设。
3. 缺少
hijack-dns路由规则没有
{ "protocol": "dns", "action": "hijack-dns" },客户端的 DNS 查询不会被 sing-box 的 DNS 模块拦截处理,dns.json中配置的 DNS 分流规则(如 Netflix/OpenAI 走指定 DNS)不会生效。复现步骤
建议修复
在脚本安装/配置流程中自动生成一个基础路由配置文件(如
00_base_route.json),包含:{ "route": { "default_domain_resolver": "local", "rules": [ { "action": "sniff" }, { "protocol": "dns", "action": "hijack-dns" } ], "final": "direct-out" } }其中
"local"对应dns.json中已有的{ "type": "local", "tag": "local" }DNS 服务器。感谢作者持续维护此项目!