sing-box 订阅转换与导入教程:先识别格式,再完成跨平台配置
简答:先不要急着转换:优先确认服务商是否提供 sing-box 专用远程链接。没有专用链接时,再判断输入是 JSON、YAML、Base64 还是节点 URI,必要时转换后检查是否包含完整的 outbounds、route 与 DNS 配置,最后再导入客户端并通过日志验证。
定义:sing-box 订阅转换,是把现有的远程订阅、Clash YAML、Base64 内容或节点 URI,整理为 sing-box 客户端能够读取的远程配置或完整 JSON 配置。
先看格式:你手里的链接能不能直接导入
本文是一篇第三方使用指南,核对日期为 2026-11-14。sing-box 的配置文件采用 JSON 结构,官方配置文档列出了 dns、inbounds、outbounds、route 等主要字段,并提供 sing-box check 校验命令,详见sing-box 配置文档。
| 你看到的内容 | 大致判断 | 建议操作 |
|---|---|---|
| 服务商明确写 sing-box 的远程链接 | 专用 sing-box 订阅 | 优先直接添加远程配置,不再转换 |
打开后是以 { 开头的 JSON | 可能是完整 sing-box 配置 | 检查是否同时存在 outbounds、route 等结构,再导入 |
内容有 proxies、proxy-groups、rules | 更像 Clash YAML | 需要使用兼容的转换方式,转换后重新检查协议参数和路由 |
| 是一长串字母数字,末尾可能有等号 | 可能是 Base64 编码内容 | 先在本地解码并查看结果,不要直接把原始订阅发到公开网站 |
出现 vless://、vmess://、ss:// 等 | 节点 URI 列表 | 通常只有节点信息,不一定包含完整路由、DNS 和策略组 |
| 打开后是登录页、HTML 或 JSON 错误 | 订阅地址失效、过期或被拦截 | 先确认链接、Token、网络和服务端状态,暂时不要转换 |
以上识别是排查入口,不应只凭 URL 后缀下结论。最可靠的方法是查看返回内容:完整配置通常是 JSON,而网页提示、登录页或错误对象都不能当作可用订阅。
转换方式怎么选:直导优先,在线转换放到最后
第一选择:使用服务商提供的 sing-box 专用链接。这是变量最少的方式,通常能保留服务端提供的节点参数、路由和 DNS。将链接复制到客户端的“远程配置”“Remote Profile”或相近入口即可;不同平台的菜单名称会随客户端版本变化,需以当前界面为准。官方图形客户端把远程配置定义为以 URL 作为更新来源的 Remote Profile,并说明客户端应支持自动更新,默认更新间隔为 60 分钟,具体实现仍可能存在版本差异,详见sing-box 通用客户端说明。
第二选择:本地转换。适合你不希望把带 Token 的订阅交给第三方服务的情况。先把原始订阅保存到本地,再使用你信任且能看懂输入输出的转换工具。转换完成后,不要只看“转换成功”,还要检查输出是否为完整 JSON、节点数量是否合理、协议参数是否保留,以及路由引用的出站名称是否存在。
第三选择:第三方在线转换。只在前两种方式不可用时考虑。订阅链接通常包含可直接更新配置的凭据,在线转换等于把该链接交给第三方服务器处理。若必须使用,建议先使用短期 Token 或临时订阅,关闭不需要的参数和合并功能,转换结束后立即在服务商后台重置或撤销原订阅。无法撤销时,应把它视为已经暴露,重新生成订阅。
不要把真实订阅链接放进截图、公开 issue、群聊或代码仓库。示例时请改成 https://example.invalid/sub?token=REDACTED,不要只打码域名而保留完整 Token。
跨平台导入步骤:Android、iOS、macOS、Windows 与 Linux
- 先保存原链接和配置备份。如果已有本地配置,Windows 可复制为
config.json.bak-2026-11-14;macOS/Linux 可执行cp config.json config.json.bak-2026-11-14。不要直接覆盖唯一配置文件。远程订阅则把原始 URL 保存到密码管理器或本地加密笔记中。 - Android。安装并打开对应的 sing-box 图形客户端,在配置或 Profiles 页面选择添加远程配置,粘贴订阅 URL,填写名称并保存,然后手动更新一次。启动服务时系统会显示 VPN 权限确认;如果客户端显示 0 个节点,先打开远程配置内容查看器,确认返回的是 JSON 而不是网页或错误文本。Android 客户端使用系统 VPN 服务实现需要 TUN 的运行方式,相关能力以Android 客户端功能说明为准。
- iOS。在 sing-box 的配置管理页面添加 Remote Profile,粘贴 URL 后保存并更新;首次启动需要确认系统 VPN 权限。若你从其他设备获得了导入链接,也可使用官方定义的远程配置 URL Scheme:
sing-box://import-remote-profile?url=urlEncodedURL#urlEncodedName。链接中的 URL 必须进行编码,且不要把含真实 Token 的 Scheme 链接公开分享。 - macOS。选择远程配置或本地配置入口,填写 URL 后先更新,再启动服务。macOS 的客户端形态和配置目录可能随版本变化;官方页面说明 Apple 平台客户端支持本地或远程配置,独立版与商店版的能力也可能不同,遇到菜单不一致时以当前客户端说明为准,详见Apple 平台客户端说明。
- Windows/Linux。官方桌面客户端支持管理和运行本地或远程 sing-box 配置,Windows 要求为 Windows 10 或更高版本,Linux 支持 x64、arm64 和 armv7l 架构,具体安装包以sing-box Desktop 说明为准。打开配置管理页面,添加远程 URL,保存后执行更新,再启动服务;不要把 Clash YAML 直接改名为
.json,扩展名变化不会改变配置格式。 - 命令行校验本地 JSON。在配置文件所在目录执行
sing-box check。如果当前版本要求显式指定配置路径,先执行sing-box check --help查看该版本参数,再按帮助中的路径参数运行。预期结果是校验通过且进程返回成功;如果出现 JSON 语法错误、未知字段或缺少必填字段,先恢复备份,不要直接启动。官方配置文档还提供sing-box format -w的格式化方式,执行前必须先备份,因为格式化会修改文件。
如果客户端支持从 URL Scheme 导入,仍建议先在客户端内检查远程配置名称和更新时间。URL Scheme 只负责传递地址,不代表配置一定完整,也不代表节点一定可连接。
导入成功但不能用:按现象定位转换问题
| 现象 | 优先检查 | 处理方法 |
|---|---|---|
| 添加后显示 0 个节点 | 返回内容不是 sing-box JSON,或只有空的 outbounds | 在配置内容查看器中检查首字符、字段结构和节点数量;重新获取专用链接或转换 |
| 能导入但启动失败 | JSON 语法、未知字段、协议字段不兼容 | 执行 sing-box check;查看日志中的英文原文,先删除最近新增的字段或恢复备份 |
| 能启动但无法连接 | 节点协议参数、TLS、传输层、认证信息 | 对照原始节点信息逐项核对,不要只检查节点名称;必要时让服务提供方重新生成 sing-box 专用链接 |
| 节点能连但网页打不开 | route、DNS、默认出站或 TUN 权限 | 先关闭 TUN 做最小测试,再检查默认出站和 DNS;确认系统 VPN 或网络扩展权限已允许 |
| 更新失败 | 订阅过期、Token 被撤销、网络无法访问或服务端返回错误 | 复制 URL 到浏览器查看响应类型,但不要公开分享;若返回 HTML、401、403 或超时,重新确认订阅状态 |
| 转换后策略组失效 | 策略组引用的出站名称被改写或丢失 | 检查 selector、urltest 等出站引用是否仍对应实际节点;必要时改用完整 sing-box 模板 |
可复现的验收标准:远程配置能够成功更新;配置查看器显示 JSON 而不是 HTML;本地校验命令通过;节点或出站数量与原订阅大致一致;启动后日志出现实际连接尝试;选择节点后,客户端的连接计数或流量统计发生变化。若只满足“配置已添加”,还不能说明订阅可用。
撤销与恢复:误把真实订阅交给在线转换服务后,立即在订阅服务后台重置 Token 或生成新订阅,并删除旧远程配置;若无法重置,联系服务提供方处理。转换失败时先停用远程配置,再恢复 config.json.bak-2026-11-14,不要在原文件上连续覆盖。
常见问题
sing-box 订阅一定要转换吗?
不一定。如果服务提供方已经给出 sing-box 专用远程链接,优先直接导入。只有 Clash YAML、Base64、节点 URI 或其他通用格式无法被当前客户端直接读取时,才考虑转换。
为什么订阅能导入,但 sing-box 里没有节点?
常见原因是返回内容其实是网页、错误信息或空配置,也可能转换结果只有不完整的节点列表。先查看远程配置原文,确认是 JSON,并检查是否存在有效的 outbounds;不要只看文件扩展名。
在线订阅转换会不会泄露 Token?
存在这种风险,因为带 Token 的订阅链接可能允许第三方持续获取更新内容。优先使用专用链接或本地转换;必须在线转换时使用临时订阅,完成后重置或撤销原 Token。
sing-box check 报错后可以直接改配置吗?
可以修改,但先备份。根据错误原文定位 JSON 语法、未知字段、缺少字段或出站引用问题,修改后重新执行校验;如果连续修改后无法判断原因,恢复备份再逐项加入变化。
Android、iOS 和电脑端的导入入口一样吗?
不一样。官方统一抽象为本地配置和远程配置,但不同平台的页面名称、权限确认和 TUN 启动方式会变化。按当前客户端的 Profiles、Remote、配置或相近入口操作,并以当前版本界面为准。