← 返回 Bocchi 首页

sing-box 导入订阅怎么设置?5 步检查从保存到联网

更新于 2026-10-23 · bocchi.buzz

简答:先确认订阅链接返回的是 sing-box JSON,而不是其他客户端格式;然后在对应客户端新建 Remote,填写名称和 URL,保存后更新、检查节点、授权启动。保存成功不等于已经联网。

定义:sing-box 导入订阅,是把远程 sing-box JSON 配置的 URL 添加为 Remote Profile,由客户端下载、解析、更新并运行。

先对号入座:导入失败通常卡在哪一步

本文与 sing-box 项目及其开发者无隶属关系。最快的做法不是反复点击刷新,而是先确认订阅格式,再判断问题发生在保存、更新、解析、节点可用还是启动联网阶段。官方文档说明,sing-box 配置使用 JSON 结构,常见顶层字段包括 dns、inbounds、outbounds 和 route,可查看sing-box 配置说明。

你看到的症状所处阶段先查什么
Remote 条目都没有保存名称、URL 是否填写,客户端是否真的保存了配置
403、404、429 或 5xx更新订阅权限、路径、访问频率和服务端返回状态
JSON 解析失败解析下载内容是否为 JSON,而不是登录页、HTML 或错误文本
配置打开但节点列表为空节点可用outbounds 是否包含实际节点,以及是否存在选择分组
有节点、能启动但没有网络启动联网VPN、TUN、网络扩展、系统代理、DNS、路由和节点握手
  1. 复制订阅提供方后台显示的完整 URL,不要只复制网页地址或二维码页面地址。
  2. 优先使用明确标注为 sing-box JSON 的订阅。不能因为链接后缀是 .json,就断定返回内容一定是 sing-box 配置。
  3. 在浏览器或命令行中检查返回内容;如果看到登录页、HTML、403 页面或一段普通错误文字,就不能直接作为 Remote 配置。
  4. 订阅 URL 通常包含访问凭据,不要发到公开群组、工单截图或代码仓库;怀疑泄露时,应在提供方后台重新生成或撤销旧链接。

先分清客户端:官方图形客户端、第三方 GUI 与命令行

官方图形客户端页面列出了 Android、Apple 平台以及 Windows、Linux 的 Desktop 客户端;官方通用说明则把 Remote Profile 定义为“以 URL 作为更新来源的远程 sing-box 配置”。不同第三方 GUI 也可能使用 Profiles、订阅或配置管理等名称,但菜单位置应以该客户端文档为准,不能把第三方界面当成官方统一入口。可参考官方图形客户端列表、官方图形客户端通用说明。

平台或方式客户端判断订阅入口和授权重点
Android官方 Android 图形客户端或第三方 GUI在 Profiles、配置或订阅页新增 Remote;启动 VPN 时允许系统创建 VPN
iOS官方 Apple 平台客户端或第三方客户端新增远程配置后刷新;首次启动可能需要允许 VPN 配置或网络扩展,下载入口以当前 App Store 或 TestFlight 页面为准
macOS官方 Apple 平台客户端、Desktop 或第三方 GUI新增 Remote 后更新;根据客户端实现,可能需要允许网络扩展或系统扩展
Windows官方 sing-box for Desktop 或第三方 GUI官方 Desktop 支持管理本地或远程配置;使用 TUN 时可能需要管理员权限
Linux官方 Desktop、命令行或第三方 GUIGUI 按自身文档添加;命令行需要手动保存 JSON、检查配置并运行进程

官方 Desktop 页面明确写明支持 Windows 10 及以上和 Linux,并支持管理、运行本地或远程配置;因此 Windows、Linux 并非只有一种固定的 Profiles 界面。查看官方 Desktop 客户端说明。Android 与 Apple 平台的官方入口分别见Android 客户端说明和Apple 平台客户端说明。

按 5 步导入:名称、URL、更新、节点、启动

  1. 新建 Remote:打开客户端的 Profiles、配置或订阅管理页,选择新增远程配置。官方通用说明要求 Remote 使用 URL 作为更新来源,并支持自动更新;默认自动更新间隔写为 60 分钟。具体开关名称仍以当前客户端界面为准,参见Remote Profile 通用说明。
  2. 填写名称和 URL:名称只用于本地识别,例如“办公线路”;URL 粘贴完整 HTTPS 订阅地址。示例域名必须替换为你自己的真实订阅 URL,不要自行删除参数或令牌。
  3. 保存后手动更新:点击保存,再立即点击更新或刷新。看到更新时间、下载成功或更新完成,才说明客户端拿到了远程内容;保存成功本身不等于更新成功。更新失败时先保留旧配置,不要马上删除。
  4. 确认节点和分组:打开配置查看是否有实际出站节点,并检查是否出现 Selector 或 URLTest 等分组。官方通用说明指出,只有配置包含相应的分组出站时,客户端才会显示分组选择器;没有分组时,不要把“没有分组”误判为客户端故障。
  5. 选择节点并启动:选择节点或分组后启动服务。Android、iOS 和 macOS 可能出现 VPN 或网络扩展授权;Windows、Linux 使用 TUN 或系统级路由时,可能需要管理员或相应网络权限。看到服务状态运行中、连接或流量统计变化,再测试网页或应用。

新手第一次导入时,建议只验证订阅格式、更新和节点选择,不要同时改 DNS、TUN、规则、MTU 和系统代理。一次只改一个变量,才容易定位问题。

二维码和一键导入怎么用

如果订阅提供方给出二维码或“一键导入”按钮,优先确认它实际传递的是订阅 URL,而不是把配置内容直接交给未知网页处理。官方通用说明定义了远程配置导入 URL Scheme:sing-box://import-remote-profile?url=urlEncodedURL#urlEncodedName,但只有明确支持该 Scheme 的客户端才能处理,不能假设所有第三方 GUI 都支持。

  1. 二维码方式:打开客户端的新增配置或导入入口,选择扫码,扫描订阅方提供的二维码。
  2. 一键导入方式:在设备浏览器中点击导入按钮,确认系统将链接交给已安装并支持该 Scheme 的 sing-box 客户端。
  3. 确认导入结果:客户端应出现 Remote 条目;随后仍要手动更新、检查节点和启动服务。
  4. 如果扫码后无反应、跳到网页或提示不支持:退回手动方式,在新增 Remote 页面粘贴完整 URL。

二维码和一键导入只是减少复制步骤,不能绕过格式检查,也不能证明订阅一定有效。相关 Scheme 和 Remote 行为以官方图形客户端通用说明为准。

Linux 命令行:下载、检查,再运行配置

命令行用户不能照搬 Android 或 Windows 的 Profiles 路径。下面示例使用 curl 下载,再使用 sing-box 检查和运行;示例 URL 必须替换为你自己的真实订阅地址,且命令行程序需要先安装并能在终端中执行。

  1. 下载远程配置:curl -L -o config.json "https://example.com/your-subscription"。这里的 https://example.com/your-subscription 只是示例域名,必须替换。
  2. 先查看文件开头和结尾,确认不是 HTML、登录页或错误信息;不要把包含令牌的文件上传到公开服务。
  3. 检查配置:sing-box check -c config.json。官方配置文档列出 sing-box check 用于配置检查;判定标准是命令结束时没有错误输出,并且文件结构能被当前程序读取,见官方配置说明。
  4. 运行配置:sing-box run -c config.json。如果终端提示找不到命令,先确认 sing-box 已安装并在 PATH 中;如果配置包含 TUN、自动路由或系统级网络修改,按发行版要求使用 sudo 或授予等效网络权限。
  5. 停止运行:回到运行该进程的终端按 Ctrl+C。若要长期运行,再根据系统服务管理器配置,不要先把后台服务问题和订阅解析问题混在一起。

官方 TUN 文档提醒,非特权模式下地址和 MTU 不会自动配置;因此 Linux 上即使命令检查通过,也不代表 TUN 已经接管系统流量。先看日志和网卡状态,再判断是否需要调整权限或 TUN 参数,参考官方 TUN 配置说明。

按错误类型排查:403、解析失败、节点为空和启动无网

403、404、429 或 5xx

先访问订阅 URL,记录实际返回状态。403 通常指向权限或令牌问题,404 指向路径不存在,429 可能与请求频率有关,5xx 表示服务端返回错误;这些状态应先检查订阅地址和提供方状态,不要通过修改节点字段解决。若订阅需要认证,检查当前客户端是否提供对应认证字段;不要直接把凭据写入公开配置。

下载成功但 JSON 解析失败

查看下载内容是否为 JSON。如果是 HTML、登录页或错误文本,说明 URL 返回的不是配置;如果是 JSON,再用 sing-box check -c config.json 检查字段。出现未知字段或弃用字段时,先核对客户端与配置生成方的兼容性,不要凭感觉删除字段。

配置加载成功但节点列表为空

检查 outbounds 是否存在实际节点。如果只有 direct、block 等基础出站,或者没有 Selector、URLTest 等分组,通常应回到订阅地址或转换结果检查,而不是继续反复刷新客户端。

有节点但启动后无网络

先确认 VPN、TUN、网络扩展或管理员权限已经授权,再查看日志中的 DNS、路由、TLS、握手和超时信息。随后只做单变量测试:先切换另一个节点,再切换规则或全局模式,最后才检查 DNS、MTU 和本机防火墙。若只有单个应用无法连接,检查规则是否把该应用分到了直连或阻断路径。

自动更新没有按时发生

先手动刷新确认 URL 有效,再检查自动更新开关、间隔、系统后台限制和客户端是否正在运行。官方 GitHub Issue #3409 记录了 Android 15、sing-box for Android 图形客户端 1.12.8 环境下远程配置更新延迟的报告;这只是该 Issue 的特定环境描述,不能推断所有版本都存在同一问题。排查时记录客户端版本、系统版本、配置创建时间和最后更新时间,参见Issue #3409:Remote profile updates in SFA works not reliably。

只有 Clash 或其他通用订阅时怎么办

不要默认认为其他客户端格式可以直接导入 sing-box。优先向订阅提供方索取明确标注为 sing-box JSON 的远程配置;如果只有通用订阅,再选择能够说明数据处理方式、并且由你信任的转换方式。

判断订阅是否能用于 sing-box,关键不是名称、二维码或文件扩展名,而是客户端能否下载并解析与当前版本兼容的 sing-box JSON。

常见问题

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

不能默认认为可以。应优先使用明确生成 sing-box JSON 的订阅;只有经过可信转换并确认结果能被当前客户端解析时,才考虑转换后的配置。

Remote 保存成功但没有节点,怎么办?

先手动更新并查看返回内容,确认它确实是 JSON,并检查 outbounds 是否包含实际节点。如果只有 direct 或 block 等基础出站,应回到订阅地址或转换结果排查。

导入订阅后一定要开启 TUN 吗?

不一定。TUN 是系统级流量接管方式,是否需要取决于客户端、系统和使用场景。启动前先完成 VPN、网络扩展或管理员权限授权,并确认服务状态正在运行。

自动更新间隔设置多久合适?

先使用客户端默认值并手动验证一次。官方通用客户端说明写明默认自动更新间隔为 60 分钟,但不同客户端的实际选项可能不同;更新失败时应保留旧配置并查看日志。

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

把它当作凭据处理:停止公开分享,回到订阅提供方后台重新生成或撤销旧链接,再用新链接创建 Remote。

二维码导入失败怎么办?

退回手动方式,在客户端新增 Remote 页面粘贴完整订阅 URL。二维码或一键导入只减少复制步骤,不能代替格式检查,也不代表配置已经启动联网。

参考资料

  1. Introduction - sing-box 配置说明
  2. General - sing-box 图形客户端通用说明
  3. Graphical Clients - sing-box 官方图形客户端列表
  4. sing-box for Android - Android 客户端说明
  5. sing-box for Apple platforms - Apple 平台客户端说明
  6. sing-box for Desktop - Windows 与 Linux 客户端说明
  7. Tun - sing-box TUN 配置说明
  8. Issue #3409:Remote profile updates in SFA works not reliably