欢迎光临芒果VPN加速器

sing-box 更新后连不上或报错?先按这几项排查

更新于 2026-10-25 · managevpn.cyou

简答:sing-box 更新后先不要重装:按“确认客户端与内核版本→复制第一条完整报错→运行 check→核对订阅格式→检查 DNS、Route、TUN 和权限→最后测试节点”的顺序排查。这样能先判断是配置迁移、订阅内容还是实际链路问题,避免一开始就删配置或换节点。

定义:sing-box 更新后连接失败,是指客户端界面、sing-box 内核或远程订阅刷新后出现启动失败、配置解析失败、节点握手失败,或显示运行但没有实际流量。

先看这张速查表:不要把配置关键词当成日志原文

本文只讲 sing-box 更新后出现连接失败或报错的通用排查,覆盖 Windows、Android、macOS 和 Linux。本站是第三方使用指南站,不是相关客户端或项目的官方站点。先复制日志中的第一条完整报错,再判断它属于语法、文件、字段解析还是运行链路问题。

sing-box 更新后报错分层与第一处理动作
层级对应报错或现象先查什么是否适合回退
JSON 语法invalid character、括号或逗号错误检查 JSON 引号、逗号、括号和注释通常不必回退
读取文件no such file、permission denied核对绝对路径、文件权限和客户端工作目录回退通常无效
字段解析unknown field、decode error检查旧字段、订阅格式和配置生成器输出可用旧内核做对照
证书解析failed to parse certificate检查 certificate_path 是否指向 PEM 证书,而不是公钥或 DER 文件先改字段,不要先换节点
迁移关键词legacy strategy、match_response这是配置字段或迁移相关关键词,不一定是完整日志原文按官方迁移条目修改
运行链路启动成功但网页打不开、DNS 超时、节点握手超时分别测试代理端口、DNS、Route、TUN 和单个出站最后才换节点

legacy strategy、match_response更适合作为配置搜索词;如果日志里没有完整出现这些字样,不要把它们当成固定报错。配置检查通过也不代表节点、DNS、代理端口和 TUN 已经正常。

第 1 步:确认是客户端、内核还是订阅发生了变化

  1. 客户端版本:查看图形客户端的“关于 / About”或“设置 / Settings”页面,记录客户端版本和系统版本。
  2. 内核版本:如果客户端允许选择内核,记录实际运行的 sing-box 版本;不要只看客户端界面版本。
  3. 配置生成器版本:记录订阅转换或配置生成器的更新时间、输出格式和是否刚刚刷新。客户端、内核、配置生成器三者中任意一个变化,都可能让同一份配置表现不同。
  4. 保存旧环境:先复制此前可用的配置、订阅返回文件和旧版可执行文件到固定的绝对路径,例如 C:\sing-box\backup\config-working.json、C:\sing-box\backup\sing-box-old.exe 或 /opt/sing-box/backup/config-working.json。不要只保存订阅链接,因为远程内容可能继续变化。
  5. 暂停自动覆盖:在客户端设置中暂时关闭“自动更新 / Auto Update”和“自动刷新订阅 / Auto Refresh”;如果界面没有独立开关,就暂时退出客户端,手动保留一份配置副本后再测试。具体菜单名称会随客户端版本变化。

官方 Change Log 当前可见 1.14.0 稳定条目以及 1.15.0-alpha 系列条目,不能把 alpha 条目直接当作稳定版名称。官方迁移页把 TUN stack 的迁移节点写为 1.15.0:该字段在 1.15.0 废弃,并计划在 1.17.0 移除;实际是否已经安装到对应版本,应以你本机的版本输出为准。可对照官方 Change Log和官方 Migration 页面。

第 2 步:运行配置检查,再按报错类型处理

Windows PowerShell:下面使用绝对路径;请替换成实际文件位置。sing-box.exe 和配置文件不在同一目录时,也要分别写出完整路径。

C:\sing-box\sing-box.exe version
C:\sing-box\sing-box.exe check -c C:\sing-box\config\config.json

官方配置文档说明 sing-box 使用 JSON,并提供 check 命令。完整配置结构和检查命令可查看官方 Configuration 文档。

遇到 failed to parse certificate

截至 2026-10-25,问题 #4658 页面仍显示为 Open。该问题的报告者环境是 Windows 图形客户端,配置把由 OpenSSL 导出的 public_key.pem 填入了 certificate_path。这只能说明该报告中的具体配置存在证书字段核对点,不能证明所有更新后的 sing-box 都有同一故障。可查看Issue #4658 原始配置和日志。

先核对三项:certificate_path 是否是 PEM 编码的服务器证书或证书链;是否误填了公钥、私钥或 DER 二进制文件;server_name 是否与证书名称匹配。官方 TLS 字段文档将 certificate_path、certificate_sha256 和 certificate_public_key_sha256 分开定义,不能仅因文件扩展名是 .pem 就认定字段用途正确。详见官方 TLS 文档。

遇到 legacy strategy 或 match_response

官方 DNS Rule Action 文档写明,strategy 在 sing-box 1.14.0 废弃,并计划在 1.16.0 移除。官方 Change Log 还说明,1.14.0-alpha.10 引入了 evaluate 和响应匹配字段,match_response需要配合前置的 evaluate 动作使用。不要把 match_response: true 单独添加到任意规则,先按官方 DNS Rule Action 文档和Migration 页面对应条目检查规则顺序。

第 3 步:检查 rule-set、DNS、Route 和 TUN

如果旧配置里还出现 geoip 或 geosite,不要简单理解为“规则文件丢了”。官方迁移文档显示,GeoIP 和 Geosite 已迁移到 rule_set;现在应检查规则集的 tag、url、缓存文件和下载路径是否可用。对应说明见官方 GeoIP/Geosite 迁移条目和官方 rule-set 文档。

“能启动但不能用”时的验证闭环
现象优先检查操作顺序
启动即退出JSON、字段、证书路径、规则集初始加载先运行 check,再用最小配置启动
显示运行但网页打不开代理端口、DNS、Route 和系统代理先测试本地代理端口,再测试目标网站
普通代理可用但 TUN 不通TUN/VPN 权限、旧 stack、路由冲突先关闭 TUN,确认 HTTP/SOCKS 或 Mixed 入站可用
规则集下载失败远程 URL、证书校验、缓存文件和下载路径暂时减少规则,单独确认规则集能否加载
单个节点握手失败地址、端口、TLS、系统时间和节点参数用最小配置只测试一个出站

Route 规则按顺序匹配,更具体的规则应放在前面;如果使用远程规则集,要确认对应文件或远程地址可访问。Route、默认解析器和规则匹配字段可查看官方 Route 文档。不要用 ping 或 nslookup 代替代理出口测试;验证 HTTP 代理时,应使用客户端页面显示的本地端口,并在 PowerShell 中执行类似命令:

curl.exe -x http://127.0.0.1:7890 https://example.com -I

上面的端口只是占位示例,需替换为客户端实际监听端口;如果客户端提供 SOCKS5 端口,则改用对应的 socks5h://127.0.0.1:端口。只要代理端口、DNS、目标网站和 TUN 分开验证,就能避免把一个层面的错误误判成节点失效。

第 4 步:不同平台分别检查哪里

跨平台权限与日志检查点
平台先检查可执行操作
WindowsTUN 权限、其他 VPN/代理、配置绝对路径先关闭其他网络代理,重新授权 TUN,再运行 PowerShell 的 version 和 check
AndroidVPN 授权、后台限制和电池优化在系统“设置 → 网络和互联网 → VPN”中确认 sing-box 的 VPN 权限;撤销后重新授权,并检查电池优化是否限制后台运行
macOSNetwork Extension、系统扩展和应用数据在“系统设置 → 通用 → 登录项与扩展”检查网络扩展;如果更新后配置消失,重新导入并查看客户端服务日志
Linuxsystemd 用户、配置绝对路径和权限使用 systemctl status 和 journalctl 检查服务状态与日志

Linux 示例:以下命令适用于服务名确实为 sing-box 的 systemd 部署;如果服务名不同,请替换服务名。

sudo systemctl status sing-box --no-pager
sudo journalctl -u sing-box -n 100 --no-pager

Android 的 TUN 由系统 VPN 能力提供,macOS 的 TUN 依赖 NetworkExtension;官方平台说明可分别查看Android 特性文档和Apple 平台特性文档。如果只是客户端更新,权限或应用数据迁移也可能变化,不要直接把问题归因于节点。

第 5 步:重导、改配置、回退和换节点怎么选

四种处理方式的适用条件与风险
处理方式适合什么时候用主要风险
重导订阅确认订阅返回完整 sing-box JSON,且生成器已适配当前内核可能覆盖此前可用的手工修改和旧配置
修改配置日志明确指出旧字段、证书格式、规则顺序或路径错误改错字段可能引入新的解析错误
回退内核更新前同一配置和节点可用,更新后出现明确解析或迁移问题旧内核可能缺少新字段,不能长期替代迁移
换节点最小配置能启动,代理端口和 DNS 正常,只有单个出站持续握手失败会掩盖真实的配置兼容问题
  1. 保存当前配置和日志。
  2. 用 check 确认配置能解析。
  3. 关闭 TUN 和复杂规则,只保留一个入站、一个 DNS 和一个出站。
  4. 验证本地代理端口,再验证 DNS 和目标网站。
  5. 最后恢复规则集、TUN 和自动刷新。

每次只改一项,并记录改动前后的版本和结果。这样即使需要回退,也能知道是哪个字段或哪个平台权限导致问题,而不是把“重装后暂时恢复”误认为根因已经解决。

常见问题

sing-box 更新后应该直接重导订阅吗?

不建议。先保存旧配置,确认订阅响应是完整 sing-box JSON,再运行 check。如果只是旧字段不兼容,按 Migration 修改通常比直接覆盖配置更容易定位。

check 通过后为什么仍然打不开网页?

check主要说明配置可以被解析,不代表节点握手、DNS、Route、代理端口或 TUN 已正常。应依次测试启动、代理端口、单节点、DNS、目标网站和 TUN。

legacy strategy 和 match_response 是固定日志报错吗?

不一定。它们更适合作为配置搜索词或迁移关键词。strategy涉及 DNS 规则动作迁移,match_response涉及响应匹配和前置 evaluate,需要结合第一条完整日志和配置位置判断。

failed to parse certificate 应该先换节点吗?

不应先换。先检查 certificate_path 是否指向正确的 PEM 证书或证书链,是否误用了公钥、私钥或 DER 文件,并核对 server_name。问题 #4658 截至 2026-10-25 仍显示 Open,只能作为具体配置核验入口。

更新后 TUN 还能不能保留 stack 字段?

官方文档写明,stack 在 1.15.0 废弃,并计划在 1.17.0 移除。若你的内核属于 1.15.0 系列或测试版本,先备份配置,再按官方 Migration 删除该字段测试;具体版本状态以本机版本和官方 Change Log 为准。

什么时候才值得换节点?

当配置检查通过、最小配置能启动、本地代理端口正常、DNS 可用,而单个出站仍持续握手失败时,再换节点或测试其他出站。否则换节点可能掩盖配置问题。

常见问题

sing-box 更新后应该直接重导订阅吗?

不建议。先保存旧配置,确认订阅响应是完整 sing-box JSON,再运行 check;如果是旧字段不兼容,优先按 Migration 修改。

check 通过后为什么仍然打不开网页?

check 主要验证配置能否解析,不代表节点握手、DNS、Route、代理端口或 TUN 正常,应按启动、端口、单节点、DNS、目标网站、TUN 顺序验证。

legacy strategy 和 match_response 是固定日志报错吗?

不一定,它们更适合作为配置搜索词或迁移关键词。strategy 涉及 DNS 规则动作,match_response 涉及响应匹配和前置 evaluate。

failed to parse certificate 应该先换节点吗?

不应先换。先检查 certificate_path 是否是正确的 PEM 证书或证书链,是否误用了公钥、私钥或 DER 文件,并核对 server_name。

什么时候才值得回退或换节点?

更新前同一配置可用、更新后出现明确解析或迁移错误时,可用旧内核做对照;只有配置和 DNS 正常而单个出站持续握手失败时,才适合换节点。

相关阅读

参考资料

  1. sing-box 官方 Migration 迁移指南
  2. sing-box 官方 Change Log
  3. sing-box 官方配置结构与 check 命令
  4. sing-box 官方 TLS 字段文档
  5. sing-box 官方 DNS Rule Action 文档
  6. sing-box 官方 Route 文档
  7. sing-box 官方 rule-set 文档
  8. sing-box 官方 Android 特性文档
  9. sing-box 官方 Apple 平台特性文档
  10. GitHub Issue #4658:Hysteria2 协议 failed to parse certificate