sing-box 怎么导入订阅链接?按设备完成导入与连接排查
简答:先确认你拿到的是 sing-box 可读取的远程配置链接,再按设备添加 Remote 配置、更新并启动服务。导入后重点检查配置已更新、节点组出现、VPN 权限已允许;若仍无法联网,再按状态码和日志定位。
定义:sing-box 订阅链接通常是一个用于远程更新配置的 URL,但它必须返回 sing-box 可解析的 JSON 配置或客户端明确支持的订阅内容,不能默认把任意 Clash 链接当作 sing-box 配置。
先做这一步:确认订阅链接和客户端类型
sing-box 图形客户端把订阅地址作为 Remote Profile 的更新来源。官方文档说明,Remote Profile 是以 URL 作为更新来源的远程配置,并支持自动更新;不同客户端的按钮名称可能不同,但核心逻辑都是添加远程配置,而不是把链接粘贴到普通文本编辑器里。可先查看sing-box 图形客户端通用文档确认 Remote Profile 的定义。
- 在你购买服务的用户中心,找到名称类似“sing-box”“JSON”“远程配置”或“客户端配置”的链接。若只有 Clash、V2Ray 或通用 Base64 链接,不要直接假定它能被 sing-box 读取。
- 不要把订阅链接公开发到群聊、工单截图或代码仓库。链接可能包含账号凭据或访问令牌,泄露后应回到服务商后台重置或重新生成。
- 官方列出的图形客户端包括 Android、Apple 平台和 Desktop;第三方图形界面不一定拥有相同的 Remote、Dashboard 或更新入口,菜单应以实际客户端为准。平台范围可参考sing-box 图形客户端列表。
| 你看到的内容 | 是否适合直接导入 | 处理方式 |
|---|---|---|
| 明确标注 sing-box、JSON 或远程配置 | 通常可以尝试 | 添加为 Remote Profile,保存后执行更新。 |
| Clash YAML 或 Clash 专用订阅 | 不能默认直接使用 | 向服务商索要 sing-box 格式,或使用你信任且了解风险的转换方案。 |
| Base64 编码的一行节点链接 | 不是完整远程 JSON 配置 | 先确认客户端是否支持该订阅类型,否则需要转换或改用兼容客户端。 |
| 打开后是登录页、错误页或 HTML | 不适合导入 | 检查地址、权限、有效期和服务商返回内容。 |
Android:添加 Remote 配置并启动 VPN
Android 版 sing-box 支持管理和运行本地或远程 sing-box 配置,并提供 TUN 等平台功能;官方页面列出的最低要求是 Android 5.0。具体安装入口可查看sing-box for Android 文档。
- 打开 sing-box for Android,进入配置或 Profiles 页面,选择新增配置。常见流程是选择 Remote,而不是 Local。
- 在 URL 或地址栏粘贴订阅链接,填写容易识别的名称,例如“工作线路”。不要把真实订阅地址写进截图或公开笔记。
- 保存配置后,点击该配置的更新按钮。首次更新时观察是否出现配置更新时间、节点组或远程配置内容;只保存名称但没有成功更新,不算导入完成。
- 回到 Dashboard 或主界面,选择刚更新的配置并启动服务。Android 通常会弹出 VPN 连接授权,确认允许后再测试。
- 如果配置包含 Selector 或 URLTest 等出站组,进入 Groups 选择一个节点或观察自动测试结果;官方通用客户端文档说明,Dashboard 可提供组选择功能,但前提是配置中确实存在相应的出站组。
完成后先访问一个普通网页,再分别测试需要特定线路的业务。若启动成功但没有节点,优先回到更新结果和配置内容,而不是反复点击 VPN 开关。
iPhone、iPad 与 macOS:使用 Apple 平台客户端
sing-box for Apple platforms 覆盖 iOS、macOS 和 tvOS,并支持管理本地或远程配置。官方资料列出的要求是 iOS 15.0+、macOS 13.0+ 和 Apple tvOS 17.0+;页面还说明 Apple 平台客户端需要使用符合要求的 Apple 账号。详情见sing-box for Apple platforms 文档。
- 在 iPhone、iPad 或 macOS 客户端中打开配置管理页面,寻找新增配置、Add Profile 或 Remote 一类入口。
- 选择远程配置类型,粘贴订阅链接并填写名称。不要选择 iCloud 或 Local,除非你手上已经是本地 JSON 文件。
- 保存后手动执行更新,确认页面显示更新时间、配置内容或可用出站组。仅出现一个配置名称并不能证明远程内容已成功下载。
- 返回主界面启动服务。iPhone 或 iPad 需要确认系统 VPN 配置授权;macOS 若使用 TUN 功能,也要按系统提示允许网络扩展或相关权限。
- 如果你使用的是 macOS 独立版本,下载入口和 App Store 版本可能不同。官方 Apple 平台页面同时列出了 Homebrew Cask 和 GitHub Releases 等入口,安装时应以该页面为准。
Apple 客户端的菜单名称会随版本变化。找不到 Remote 时,优先查看配置列表、新增配置或导入配置入口,不要把 iOS 步骤照搬到 Windows 图形界面。
Windows:图形客户端优先,命令行适合已有配置文件的人
sing-box for Desktop 官方文档说明,它用于管理和运行本地或远程 sing-box 配置,并提供 TUN 等桌面平台功能,支持 Windows 10 及以上版本。可先查看sing-box for Desktop 文档和官方 Desktop 项目仓库。
- 在 Windows 图形客户端中打开配置管理页面,选择新增远程配置或 Remote Profile。
- 填写订阅链接和名称,保存后执行更新。若客户端显示配置正文或更新时间,说明远程下载至少已经完成;随后还要检查配置是否能启动。
- 选中配置并启动服务。启用 TUN 时可能需要管理员权限;如果不需要 TUN,也可以先使用客户端提供的系统代理模式完成基础验证。
- 如果你已经有完整 JSON 文件,也可以选择 Local 导入。但 Local 文件和 Remote URL 是两种不同来源,不能把 URL 当作 JSON 文件内容保存。
命令行方式适合已经取得完整配置文件、并且知道如何管理 sing-box 核心的人。官方配置文档给出了检查命令:
sing-box check -c 配置文件.json
该命令用于检查配置结构;通过检查后仍要确认路由、DNS、出站和系统代理设置符合你的用途。配置文件字段和检查方式可参考sing-box 配置文档。
导入后怎么确认真的能用
- 确认远程更新成功:页面出现最新更新时间、配置内容或节点组,而不是只有一个空配置名称。
- 确认配置可以启动:服务状态变为运行中,且没有立即停止或弹出 JSON 解析错误。
- 确认节点组存在:如果配置设计了 Selector 或 URLTest,Dashboard 或状态页面应能看到对应组;没有组时不代表订阅一定错误,也可能是服务商只返回单个出站。
- 确认系统接管方式:移动端检查 VPN 权限,桌面端检查系统代理或 TUN 状态。只启动核心但没有系统流量接入,浏览器仍可能直连。
- 确认网页连通性:先用普通网页测试,再测试实际需要的业务。不要只看“已启动”三个字判断网络已经可用。
如果你想先核验订阅返回的状态码和内容类型,可在本机终端发起 GET 请求。下面示例使用占位符“订阅链接”,不会输出 Cookie 或 token:
curl -L --http1.1 -A "sing-box" -D headers.txt -o response.txt "订阅链接"
在 PowerShell 中执行时,可使用:
Invoke-WebRequest -Method Get -Headers @{"User-Agent"="sing-box"} -Uri "订阅链接" -OutFile response.txt
检查 headers.txt 或响应对象中的 HTTP 状态、Content-Type 和文件内容。若返回的是 HTML 登录页、错误提示或空内容,就应先处理地址权限和服务商配置,而不是修改 sing-box JSON。
导入失败、没有节点、启动后无法联网:按这个顺序排查
| 现象 | 优先检查 | 下一步 |
|---|---|---|
| 更新时报 401 或 403 | 订阅权限、链接是否过期、账号是否被要求登录 | 重新从用户中心复制链接,必要时重新生成;不要把账号信息写进公开脚本。 |
| 更新时报 404 或连接超时 | 地址是否复制完整、网络是否能访问该域名 | 用带 User-Agent 的 GET 请求检查响应;若地址本身失效,联系提供链接的一方。 |
| 提示 JSON 格式错误 | 返回内容是否真的是 JSON,是否为 Clash YAML 或 HTML | 打开 response.txt 查看开头内容;确认服务商提供的是 sing-box 兼容配置。 |
| 导入成功但没有节点 | 配置是否为空、节点是否被过滤、远程更新是否完成 | 查看配置内容和更新日志;不要只看配置名称。 |
| 启动后无法联网 | VPN 或 TUN 权限、系统代理、默认出站、DNS 和节点状态 | 先切换到明确可用的节点,关闭其他 VPN,再查看 Dashboard 或客户端日志。 |
| 启动后立刻停止 | 配置结构、字段兼容性、核心版本和权限 | 使用 sing-box check 检查完整 JSON,并在客户端日志面板查看第一条报错。 |
查看报错时,优先打开客户端的日志面板、Dashboard 的日志区域或命令行输出。不要只根据浏览器“打不开”判断是订阅问题,因为系统代理未接管、DNS 失败和节点握手失败都会表现为无法访问。
没有 sing-box 格式链接,可以转换吗?
可以先向服务商索要 sing-box 或 JSON 远程配置,这是最容易核对来源和后续更新的方式。若只有其他客户端格式,转换工具可能需要读取你的订阅凭据,因此要先评估隐私风险、服务维护情况和输出是否完整。
- 不要把包含 token 的订阅地址随意提交给不熟悉的网站。
- 转换后必须检查输出是否包含有效的 JSON 结构、outbounds、route 和 DNS 等必要部分;不能因为页面生成了文件就认为配置可用。
- 如果转换结果只有节点列表,没有完整配置,可能还需要自己补充路由、DNS 或入站设置。
- 转换出现错误时,保留原始订阅地址,不要在多个网站反复提交同一个地址。
sing-box 使用 JSON 配置结构,官方配置文档列出了 log、dns、inbounds、outbounds、route 等顶层字段。你可以把转换结果与官方配置结构说明对照,但不要凭空补写未确认的字段。
最后核对:2026-10-26
截至 2026-10-26,本文按 sing-box 官方文档当前列出的 Android、Apple 平台和 Desktop 客户端组织步骤。客户端按钮和界面可能随版本变化;如果菜单名称不同,应优先寻找配置管理、Remote Profile、更新和 Dashboard 等对应功能,不要混用其他客户端的操作路径。
本站是第三方使用指南站,不是任何 sing-box 项目的官方站点。本文没有把本项目服务称为 sing-box 官方服务,也没有把未核实的订阅格式当作兼容格式。
常见问题
Clash 订阅链接可以直接导入 sing-box 吗?
不能默认直接导入。先确认返回内容是 sing-box 可解析的 JSON 配置,还是 Clash YAML、Base64 节点列表或 HTML 页面;格式不匹配时,应索取兼容链接或谨慎转换。
sing-box 导入订阅后没有节点,应该先看哪里?
先看远程配置的更新时间和更新结果,再查看配置内容是否为空、是否被过滤,以及客户端日志面板是否出现解析错误。不要只看配置名称是否存在。
订阅链接能在浏览器打开,但 sing-box 仍然导入失败,为什么?
浏览器和客户端发送的请求头可能不同,服务端也可能要求特定 User-Agent、授权或返回 JSON。可用带 User-Agent 的 GET 请求检查状态码、Content-Type 和响应开头。
导入后显示已启动,但网页还是打不开怎么办?
依次检查 VPN 或 TUN 权限、系统代理是否接管、节点组是否选中、DNS 是否可用以及客户端日志。启动状态只表示服务进程运行,不等于系统流量已经正确接管。
Remote Profile 和本地 JSON 配置有什么区别?
Remote Profile 以 URL 作为更新来源,适合服务端持续更新;Local 配置是设备上的文件,需要手动替换或编辑。两者入口和更新方式不同,不要把订阅 URL 当作 JSON 文件内容。
相关阅读
- 配置格式转换与 Base64、YAML、JSON 的核验方法
- sing-box for Android 的安装、配置导入与连接排查
- sing-box 升级后报错或无法使用的排查步骤
- 在线检查订阅链接返回状态和内容格式