避坑答疑更新时间:Sun Apr 07 2024 00:00:00 GMT+0000 (Coordinated Universal Time)

Sing-box 提示 Config Parse Error 配置文件解析失败修复方法

💡 核心提要:详细排查 Sing-box 客户端报错 Config Parse Error / Failed to Parse Config 的核心原因,并提供格式修复与 Schema 验证指南。

在导入或更新 Sing-box 订阅配置文件时,许多用户经常在客户端日志或弹窗中遇到错误提示:Config Parse Error 或 Failed to parse config: json: cannot unmarshal…,导致代理服务根本无法启动。

本文将总结造成 Sing-box 配置文件解析失败的四大常见原因并提供手把手修复方案。


导致 Config Parse Error 的四大核心根因

配置文件解析失败诊断树:
[JSON 语法存在尾随逗号/缺少引号] -> [Sing-box 版本不匹配 (v1.8+ 语法变更)] -> [订阅链接返回了 HTML 报错页] -> [内核不支持某种特殊加密协议]

4 步故障排查与修复流程

1. 排查 JSON 格式语法错误(末尾多余逗号)

JSON 格式相比 YAML 极其苛刻:

  • 错误写法:“outbounds”: [ “direct”, “block”, ] (数组最后一项带了多余逗号 ,)。
  • 正确写法:“outbounds”: [ “direct”, “block” ]。
  • 在线修复方法:将完整的配置文件文本复制粘贴到 jsonlint.com 进行一键语法校验与美化。

2. 检查 Sing-box 内核版本兼容性 (v1.7 vs v1.8/v1.9)

Sing-box 在升级到 v1.8.0 后引入了重大重构:

  • 废弃字段:旧版的 geoip 和 geosite 规则匹配语法被彻底废弃。
  • 新版写法:必须使用 rule_set(规则集文件)取代旧的内嵌规则。
  • 解决方案:在客户端【设置】中将 Sing-box 内核升级至最新版本,或在订阅转换工具中勾选“适配 Sing-box 1.8+ 语法”。

3. 检查订阅链接返回内容是否为 HTML 网页

如果机场后台服务器宕机或你的订阅链接已过期,客户端拉取到的可能是一段类似 html 404 Not Found html 的网页文字,Sing-box 将网页当作 JSON 解析自然会抛出 Parse Error。

  • 验证方法:在浏览器中直接打开你的订阅 URL,检查下载下来的是否为以 { 开头的 JSON 文本。

4. 移除客户端内核不支持的第三方拓展字段

部分机场为了兼容 Mihomo/Clash,在 JSON 中添加了非 Sing-box 官方标准的自定义字段。在配置文件中搜索并删除这些无用属性即可恢复正常。


常见故障现象与修复对照表

报错日志关键片段 错误原因分析 快速修复操作
invalid character after array element JSON 数组结尾多写了逗号 使用 JSON 校验工具删除多余逗号
unknown field geosite 使用了已被 Sing-box v1.8 废弃的旧语法 升级客户端或切换为 rule_set 格式
unexpected end of JSON input 订阅内容下载不完整或为空白 检查网络连通性后重新刷新订阅

Sing-box 配置解析报错 FAQ

Q1:为什么在电脑上正常运行的 JSON 放到手机 Sing-box 上就提示 Parse Error?

通常是因为手机端的 Sing-box 应用版本落后于电脑端。请将手机 App 更新到 App Store / Google Play 的最新版本,确保两端内核版本一致。

Q2:使用订阅转换平台生成的 Sing-box 配置还是报错怎么办?

选择公信力强且持续维护的订阅转换服务,并在“客户端类型”中明确选择 Sing-box 而不是旧版 Singbox-Legacy。


Sing-box 报错修复总结

遭遇 Config Parse Error 时无需慌张,只要按照 “检查 JSON 语法 -> 确认订阅链接文本有效性 -> 核对 Sing-box 内核版本语法” 的顺序逐一排查,绝大多数配置文件报错都能在 2 分钟内解决。