sing-box 订阅怎么导入配置?无节点、JSON 错误这样排查

更新于 2026-10-23 · biubiu.pics

简答:sing-box 订阅应先确认是兼容的远程 JSON 配置,再在客户端新增 Remote 配置并粘贴 URL;更新后检查节点、启动服务和实际联网,Clash 或其他格式不能默认直接导入。

定义:sing-box 订阅导入,是把服务商提供的远程配置 URL 添加为客户端的 Remote Profile,随后下载、解析并启动其中的 JSON 配置。

先判断订阅类型,再选择导入方式

与 sing-box 项目及其开发者无隶属关系。本文按 2026 年 10 月 23 日已公开的官方文档整理,客户端菜单名称可能随版本变化;下载渠道和客户端版本应以对应项目官方页面为准。

导入前的格式判断
类型通常表现能否直接作为 sing-box 配置先做什么
远程 sing-box 配置URL 返回完整 JSON 配置通常可以在客户端新增 Remote Profile,保存后更新
本地 JSON 配置已经下载到设备的 .json 文件可以作为 Local Profile备份文件后导入或放入客户端配置目录
单节点链接只描述一个出站节点的 URI不能等同于完整配置使用客户端支持的节点导入功能,或手动加入配置
Clash、Surge、V2Ray 等其他格式可能返回 YAML、专用 JSON 或转换页面不能默认直接导入回到提供方选择 sing-box 格式;不确定时不要提交给不可信转换站

官方文档说明,sing-box 配置文件使用 JSON,并包含如 dns、inbounds、outbounds、route 等配置区域;因此“能打开一个链接”不等于“返回内容就是可加载的 sing-box 配置”。可查看官方的配置文件结构与检查说明。

最快判断方法:在浏览器或命令行打开订阅 URL,观察返回内容是否为 JSON。若页面显示登录页、HTML 错误页、空白内容或 YAML,先不要导入,优先确认链接权限、格式选项和访问方式。

Android:Profiles → Remote 添加订阅

  1. 打开兼容 sing-box 的 Android 图形客户端,进入配置或 Profiles 页面。
  2. 选择新增配置,类型选 Remote,不要把远程地址粘贴到 Local 文件编辑器。
  3. 在 URL 栏粘贴订阅地址;如果服务商同时提供多个格式,选择明确标注为 sing-box 的配置。
  4. 如果界面提供自动更新选项,可先关闭自动更新,完成首次手动更新后再决定是否启用。
  5. 填写名称并保存,然后执行更新或获取远程配置。
  6. 确认配置解析成功后,进入 Dashboard 或服务页面,选择可用的出站组或节点,再启动连接。
  7. Android 首次启动 TUN 或 VPN 功能时,根据系统提示允许 VPN 权限。若配置使用特殊 TUN 能力,权限要求以客户端和系统提示为准。

官方通用客户端文档把 Remote Profile 定义为以 URL 作为更新来源的远程配置,并列出远程配置导入 URL Scheme:sing-box://import-remote-profile?url=urlEncodedURL#urlEncodedName。其中 URL 和名称应进行 URL 编码,不能把包含特殊字符的原始地址直接拼接。具体菜单是否支持该 Scheme,以客户端实际实现为准,参见官方图形客户端通用说明。

判断 Android 导入成功,不只看配置名称是否出现:至少要依次确认“配置已保存”“远程内容已更新”“节点或出站组能显示”“服务启动无报错”“浏览器或目标应用实际能联网”。

iOS、macOS、Windows、Linux 速查

不同平台的导入与权限提示
平台入口或方式权限提示常见坑
iOS在支持 Remote Profile 的客户端中新增远程配置,或使用客户端支持的导入链接首次启动通常需要允许系统 VPN 配置菜单和获取渠道可能因客户端版本、地区和发行渠道不同;以客户端官方页面为准
macOS使用支持远程配置的图形客户端新增 Remote,或导入本地 JSONTUN、系统扩展或辅助组件可能需要系统授权App Store 版本与独立版本的能力可能不同,不能照搬其他平台菜单
Windows使用 sing-box for Desktop 或其他兼容客户端新增 Remote;命令行可下载为本地 JSON使用 TUN 时通常需要以管理员身份运行PowerShell 中使用 curl.exe,不要把 curl 当作 Linux 参数格式直接照抄
Linux图形客户端新增 Remote,或命令行保存并检查配置TUN、路由和部分网络能力可能需要 root、sudo 或相应能力不能只执行检查命令;检查通过后还要执行 run,并观察日志

官方桌面客户端页面说明,sing-box for Desktop 用于管理和运行本地或远程 sing-box 配置,并提供包括 TUN 在内的平台功能;可查看sing-box for Desktop 官方说明。官方 TUN 文档还说明,非特权运行时,地址和 MTU 不会自动配置,因此使用 TUN 时应同时检查权限与配置内容,参见TUN 配置官方文档。

如果使用命令行,建议先保存为新文件,避免覆盖原配置。Linux 或 macOS 示例:

curl -fsSL -o config.remote.json '替换为你的 sing-box 订阅 URL'
sing-box check -c config.remote.json
sing-box run -c config.remote.json

Windows PowerShell 示例:

curl.exe -fsSL -o config.remote.json "替换为你的 sing-box 订阅 URL"
sing-box.exe check -c .\config.remote.json
sing-box.exe run -c .\config.remote.json

这里的 config.remote.json 是临时文件名,请替换为实际订阅地址,不要直接覆盖已有的 config.json。官方配置文档给出了 sing-box check、format 和 merge 等命令;检查通过只代表配置可被校验,不能替代启动和联网验证。

Linux 使用 TUN 或自动路由时,如果当前用户权限不足,应在确认配置来源可信后使用相应的 sudo 权限运行,或按系统服务方式授予必要能力。Windows 使用 TUN 时,右键终端或客户端选择“以管理员身份运行”。权限不足的判定线索包括创建 TUN 失败、路由写入失败、权限拒绝或服务启动后立即退出。

导入成功后,按五个阶段验证

  1. 保存阶段:配置名称、URL 和本地记录存在。若保存后配置条目消失,先检查客户端是否允许远程配置。
  2. 更新阶段:手动点击更新后,查看最后更新时间或更新日志。没有更新时间,说明请求可能没有发出或响应没有被接受。
  3. 解析阶段:配置内容能被识别为 JSON,且不是 HTML、登录页或其他格式。出现 JSON parse error 时,先查看响应原文的第一行。
  4. 加载阶段:客户端能显示出站节点、Selector、URLTest 或其他配置组,启动日志没有字段不支持、缺少必填字段或 TUN 初始化错误。
  5. 联网阶段:服务状态显示运行,再用一个普通网页或应用进行实际访问;如果只有客户端显示“已启动”而所有请求失败,仍不能算导入完成。

如果配置中存在出站组,官方通用客户端说明指出,Dashboard 可用于查看运行状态和选择组;因此“有节点”与“已选中节点并开始转发”是两个不同步骤。

按错误现象排查订阅失败

错误现象与处理顺序
现象优先检查判定标准下一步
403 Forbidden订阅权限、访问来源、链接是否过期用浏览器或 curl.exe 返回 403回到提供方重新复制或生成 sing-box 格式链接,不要反复修改 JSON
404 Not FoundURL 是否完整、域名和路径是否被截断请求返回 404 或明确的不存在页面重新复制完整地址,检查是否误删查询参数
429 Too Many Requests短时间重复刷新或服务端限流响应状态为 429停止连续刷新,等待后再试;动态限制未核实,不要自行推断恢复时间
Timeout本地网络、DNS、服务端响应和代理链路请求在客户端设定时间内没有完成先用普通网络打开同一 URL,再区分是链接不可达还是客户端请求失败
返回 HTML登录页、验证页、错误页或重定向响应开头出现 <html>、<!DOCTYPE> 或网页标题不能把该响应当作 JSON,先解决访问权限或改用正确订阅格式
JSON parse error响应是否完整 JSON、是否混入说明文字命令行 sing-box check -c config.remote.json 返回错误保留原文件并查看错误位置;不要直接手改节点字段,除非明确知道配置结构
导入成功但无节点配置是否只有规则、出站组是否为空、格式是否选错配置能打开但 Groups 或 outbounds 没有可选项重新确认服务端提供的是完整 sing-box 配置,而不是其他客户端格式
启动后无网络节点选择、DNS、TUN 权限、路由和日志服务显示运行但测试请求失败先切换到明确存在的出站,检查 DNS 与 TUN 初始化日志,再进行单变量测试

排查时不要同时更换订阅、客户端、DNS 和 TUN 模式,否则无法判断是哪一个变量造成变化。建议先记录客户端名称、核心版本、系统版本、响应状态和错误日志;版本号通常可在客户端的 Settings、About 或 Core 区域查看,命令行可尝试执行 sing-box version,若当前构建不支持该写法,则以启动输出或客户端 About 页面为准。

Clash 订阅能否直接导入 sing-box?

不能默认认为可以。sing-box 官方配置文档明确使用 JSON 配置结构,而不同客户端订阅可能返回 YAML、专用 JSON、单节点 URI 或带有转换逻辑的网页。扩展名、链接名称和页面标题都不能单独证明格式兼容。

  1. 优先在提供方后台查找明确写有 sing-box 的格式选项。
  2. 如果只有 Clash 或其他格式,先确认是否提供官方或可信的 sing-box 输出,不要把未知转换站当作默认方案。
  3. 转换前注意订阅 URL 可能包含账户凭据、节点信息或访问令牌,不要公开粘贴到论坛、截图或第三方服务。
  4. 转换后仍需用 sing-box check 校验,并逐步确认节点、出站组、启动和实际联网。

如果订阅地址已经泄露,应在提供方后台重新生成或撤销旧链接;旧链接能否立即失效、是否支持撤销以及具体操作,本文无法核实,应以提供方页面说明为准。

使用命令行时的最小安全流程

  1. 先备份现有配置:cp config.json config.json.bak;Windows 可使用 Copy-Item .\config.json .\config.json.bak。
  2. 把远程内容保存为新文件 config.remote.json,示例域名和 URL 必须替换为实际订阅地址。
  3. 查看文件头部,确认不是 HTML 或登录页;不要在不信任的环境中打印完整订阅 URL。
  4. 运行 sing-box check -c config.remote.json。以命令返回成功且没有错误为基本通过标准。
  5. 运行 sing-box run -c config.remote.json。Linux 使用 TUN 时按需加 sudo;Windows 使用管理员终端。
  6. 观察启动日志,确认没有 TUN、DNS、路由、字段不支持或出站连接错误,再进行实际联网测试。

如果只是想验证文件格式,可先使用官方支持的检查命令,不要为了“修复”而直接删除未知字段。字段是否支持与核心版本有关,版本不一致时应先查看官方迁移说明和当前配置文档;例如官方迁移页记录了 TUN stack 字段在新版本中的弃用变化,具体以sing-box 官方迁移说明为准。

常见问题

sing-box 订阅一定是 JSON 链接吗?

不一定。完整远程 sing-box 配置通常应返回可解析的 JSON,但订阅地址也可能返回 HTML、YAML、单节点 URI 或其他客户端格式。应查看响应内容,并使用 sing-box check 校验,不能只看链接名称。

Clash 订阅可以直接导入 sing-box 吗?

不能默认直接导入。Clash 订阅可能是 YAML 或其他结构,必须先确认提供方是否提供 sing-box 兼容格式;未经核实的转换站还可能暴露包含凭据的订阅地址。

为什么订阅导入成功后没有节点?

可能导入的是空配置、规则配置、单节点以外的错误格式,或者配置中的出站组为空。先查看更新后的原始内容,再检查 outbounds、Selector 或 URLTest 等配置是否存在。

Windows 下载配置为什么不能直接使用 curl 参数?

PowerShell 5.1 中 curl 可能映射为 Invoke-WebRequest,参数行为与 Linux curl 不同。Windows 示例应使用 curl.exe,保存后再运行 sing-box.exe check -c .\config.remote.json。

sing-box check 通过后就能正常联网吗?

不能。check 主要验证配置是否可被检查,仍需运行 sing-box run 或在图形客户端启动服务,再确认节点选择、DNS、TUN 权限和实际访问结果。

订阅链接泄露后应该怎么办?

先停止公开分享并尽快到提供方后台重新生成或撤销旧链接;是否支持立即撤销、旧链接何时失效等信息未核实,应以提供方页面为准。

相关阅读

参考资料

  1. 通用 - sing-box 官方图形客户端说明
  2. sing-box 官方配置文件结构与检查命令
  3. sing-box for Desktop 官方说明
  4. TUN 配置 - sing-box 官方文档
  5. Migration - sing-box 官方迁移说明