AmyTelecom - 老牌IEPL专线机场 | amytele

sing-box DNS 设置后无法连接怎么办?

更新于 2026-10-30 · amytele.top

简答:sing-box DNS 设置后无法连接,先不要继续更换节点或反复改字段:先备份配置,确认核心版本,再执行配置检查。随后按“能否启动→域名能否解析→节点能否握手→TUN 是否接管流量”的顺序排查。若只在 TUN 模式下断网,优先检查 auto_route、strict_route、系统 VPN 冲突和 IPv4/IPv6;若日志出现 lookup timeout 或 no such host,则先回滚 DNS 规则或使用最小 DNS 配置验证。

定义:sing-box DNS 设置后无法连接,是指修改 dns.servers、rules、final、strategy 或 TUN DNS 接管项后,核心无法启动、域名解析失败、节点握手超时或系统流量无法访问。

先试这一步:备份配置并判断故障层级

本文是第三方使用指南,不代表 sing-box 或任何客户端项目的官方页面。适用范围是使用 sing-box 核心或图形客户端、修改 DNS 后出现连接问题的 Windows、macOS、Linux、Android 和 Apple 设备;不覆盖节点服务状态、订阅服务质量或某个未核实品牌的官方支持。

先复制原始 JSON 配置,保留一份“修改前”文件。然后只做一次启动测试,不要同时更换节点、TUN、DNS 和路由。sing-box 官方配置说明使用 JSON,并提供 sing-box check 检查入口;当前参数形式可能随客户端封装不同,命令行使用时应先执行当前版本的帮助命令核对参数。可参考官方配置引言。

现象优先判断第一步处理
核心直接退出或配置无法保存字段、类型或版本不兼容回滚最近改动,执行配置检查,查看错误行
核心运行但域名打不开DNS server、final、rules 或上游不可达暂时减少 DNS 规则,只保留一个已知可用上游
域名能解析但节点超时节点地址、端口、TLS、SNI 或出站路径用 IP 与域名分别测试,核对订阅转换结果
普通代理能用,TUN 开启后全断TUN 路由、DNS 接管、系统 VPN 或权限冲突先关闭 TUN,仅验证普通代理,再逐项恢复

最短排查流程:从 DNS 配置回滚到连接验证

  1. 确认核心版本。先查看 sing-box 核心版本,再对照当前官方 DNS 文档。官方文档显示,final 用于指定默认 DNS server tag,未设置时使用第一个 server;strategy 可使用 prefer_ipv4、prefer_ipv6、ipv4_only 或 ipv6_only。不要把旧版本字段直接复制到新配置中。参考官方 DNS 配置文档。
  2. 只保留最小 DNS 结构做回滚测试。先将复杂的 DNS rules、FakeIP、地址过滤和自定义缓存选项移到备份文件,只保留一个 server、一个 final 和一种 strategy。下面片段只用于核对字段层级,不是完整可运行配置:{"dns":{"servers":[{"type":"local","tag":"local"}],"final":"local","strategy":"prefer_ipv4"}}。若这样能启动,再一次只恢复一个规则。
  3. 先验证普通代理,再验证 TUN。关闭 TUN 或系统 VPN,使用客户端提供的普通代理模式访问一个已知可访问的域名。普通代理可用而 TUN 不可用,问题更可能在路由接管、权限或系统网络冲突,而不是单纯 DNS。
  4. 分别测试域名解析和节点连接。Windows 可用 nslookup example.com,macOS/Linux 可用 dig example.com;这些命令只能说明系统 DNS 的结果,不能证明 sing-box 内部 DNS 一定正常。随后用客户端日志观察节点域名解析、TCP 连接和 TLS 握手是否分别成功。
  5. 检查 DNS 上游是否形成回环。如果 DNS server 配置了 detour、代理出站或域名形式的上游地址,要确认该上游本身可以通过当前路径解析和连接。若节点域名依赖某个 DNS,而该 DNS 又必须经过同一个尚未建立的节点,就可能出现循环等待;排查时可暂时改为直连可达的 DNS 路径,验证后再恢复复杂规则。
  6. 测试 IPv4/IPv6 差异。如果日志显示域名有解析结果,但连接仍然超时,可临时把全局 strategy 改为 ipv4_only 或 prefer_ipv4 做对照。若 IPv4 可用、IPv6 不通,再检查网络是否实际具备 IPv6 出口;测试结束后恢复原策略,避免把临时规避方案当成永久结论。

每次只改一个变量,并记录“改了什么、日志变成什么、是否恢复”。sing-box 官方文档还提示,DNS 查询默认超时在相关版本中为 10s,规则或域名解析器可以覆盖该值;因此看到等待时间较长时,应同时检查规则级 timeout,而不是只更换上游。

版本字段与 TUN 分支:哪些设置容易造成误判

1.14 及以后:先检查弃用字段

官方 DNS 文档显示,independent_cache 在 sing-box 1.14.0 已弃用,并计划在 1.16.0 移除;DNS 规则中的部分旧字段也在迁移。官方迁移说明指出,1.14.0 起 ip_version、query_type 与旧式地址过滤字段、旧式 DNS rule strategy 等组合可能导致启动时被拒绝。若配置来自旧订阅转换器,先删除或迁移报错字段,不要用“能保存”判断配置已经兼容。参考官方迁移说明和官方 DNS 规则文档。

2. TUN 开启后全局断网

官方 TUN 文档说明,auto_route 会把默认路由设置到 TUN;strict_route 会进一步影响严格路由和 Windows 的 DNS 泄漏防护,在某些情况下也可能影响 VirtualBox 等应用。排查时先关闭 TUN 验证普通代理,再检查是否有其他 VPN、虚拟网卡、企业安全软件或系统代理同时接管流量。Linux 环境还要核对 auto_redirect、内核能力和现有防火墙规则;不要仅凭能看到 TUN 网卡就认定流量已经正确经过 sing-box。

3. Android 与 Apple 平台差异

Android 和 Apple 图形客户端使用系统 VPN 或 Network Extension 接管流量,部分 TUN 字段并不完全等同于 Linux、Windows、macOS 命令行环境。官方平台特性页面明确列出部分字段的可用性差异,例如 Android 和 Apple 图形客户端对 strict_route 的支持有限或未实现。遇到手机端“开关显示运行但应用打不开”,先检查系统 VPN 权限、其他 VPN 是否关闭、是否启用了按应用路由,再回到 DNS 日志,而不是直接套用桌面端 TUN 配置。可对照Android 官方特性说明和Apple 官方特性说明。

按日志关键词分流,并安全恢复配置

日志关键词或表现更可能的层级处理动作
unknown field、invalid、启动即退出字段或版本不兼容按当前版本文档迁移,删除最近新增字段后重新检查
lookup timeout、context deadline exceededDNS 上游或 DNS 路径超时减少 DNS rules,检查上游地址、detour 和网络出口
no such host域名解析失败核对域名拼写、DNS final、规则顺序和节点服务器域名
connection refused目标端口拒绝连接核对节点端口和传输参数,不能仅凭 DNS 正常判定节点可用
TLS handshake 或证书相关错误TLS、SNI、时间或传输参数检查系统时间、服务器地址、SNI、证书与订阅转换结果
普通代理可用,TUN 全断TUN 路由或系统冲突关闭其他 VPN,检查 auto_route、strict_route、权限和虚拟网卡

恢复时按“最小 DNS 配置→单个规则→IPv4/IPv6 策略→TUN DNS 接管→完整规则”的顺序逐项加入。若某一步重新出现故障,就回到上一个可用版本。不要把完整订阅链接、令牌、节点密码、服务器地址或未脱敏日志公开;分享日志前应删除这些信息。

本文按 2026-10-30 可核验的 sing-box 官方文档整理。由于不同图形客户端可能封装了核心命令和配置入口,菜单名称、核心版本和权限选项仍应以当前客户端页面及官方文档为准。

常见问题

sing-box DNS 设置后完全打不开网页,应该先换 DNS 还是换节点?

先不要换节点。先关闭 TUN 或系统 VPN,用最小 DNS 配置验证核心能否启动和域名能否解析。若 DNS 日志仍然超时,再检查上游路径;如果 DNS 正常但节点握手失败,才进入节点地址、端口、TLS 和传输参数排查。

sing-box 配置里的 final 和 strategy 分别有什么作用?

final 用于指定默认 DNS server tag,未设置时使用第一个 server;strategy 用于设置默认域名解析策略,可选 prefer_ipv4、prefer_ipv6、ipv4_only 和 ipv6_only。修改前应确认当前核心版本支持这些字段,并避免与旧版规则字段混用。

为什么普通代理能用,但打开 TUN 后 sing-box 就无法连接?

这通常需要从 TUN 路由和系统冲突方向排查,不应直接归因于 DNS。依次关闭其他 VPN 和虚拟网卡,确认 TUN 权限,再检查 auto_route、strict_route、DNS 接管方式以及 Windows、Linux 或手机平台的字段支持差异。

sing-box 1.14 或更高版本出现 DNS 字段报错怎么办?

先查看核心版本,再对照官方迁移文档。重点检查 independent_cache、旧式 DNS rule strategy、旧地址过滤字段,以及 ip_version 或 query_type 与旧字段的组合;不要把旧配置整段复制到新版本。

分享 sing-box 日志给别人排查安全吗?

不要直接公开原始日志或配置。应删除订阅令牌、节点密码、完整服务器地址、私有域名、用户标识和可识别的网络信息,只保留错误关键词、时间顺序和已脱敏的字段结构。

相关阅读

参考资料

  1. sing-box 官方配置引言
  2. sing-box 官方 DNS 配置文档
  3. sing-box 官方 DNS 规则文档
  4. sing-box 官方 TUN 配置文档
  5. sing-box Apple 官方特性说明