sing-box 如何导入订阅:Remote 配置与失败排查

更新于 2026-10-20 · upnc.buzz

简答:sing-box 导入订阅的关键,是使用服务商明确提供的 sing-box 原生 JSON 配置链接;在图形客户端中新建 Remote Profile,粘贴 URL 后保存、更新并启动服务。如果链接返回的是网页、错误页、Clash YAML 或其他未确认格式,先不要直接导入,改用服务商提供的 sing-box 入口或本地 JSON 配置。

定义:sing-box 订阅导入,是把远程 URL 指向一份可被 sing-box 解析的 JSON 配置,并在客户端中以 Remote Profile 保存和定期更新。

先试这一步:确认你复制的是哪一种订阅链接

本文是 upnc.buzz 的第三方使用指南,不是 sing-box 官方页面,也不代表任何订阅服务商。sing-box 官方文档明确说明,核心配置使用 JSON 结构;图形客户端中的 Remote Profile 则以 URL 作为配置更新来源,并支持自动更新。官方通用客户端文档 官方配置说明

你在后台看到的入口通常代表什么在 sing-box 中怎么处理
sing-box、JSON、原生配置更接近 sing-box 所需的 JSON 配置优先复制这个 URL,按 Remote Profile 导入
通用订阅返回格式取决于面板、请求参数或客户端类型不要只看按钮名称;先下载或查看响应内容
Clash、YAML通常是另一种配置表示是否能被当前客户端转换未核实,优先寻找 sing-box 专用入口
Base64、节点列表、分享链接可能是编码文本或单节点信息不能仅凭名称判断为 sing-box JSON,需先确认实际内容

最稳妥的判断方法是:把订阅 URL 放入浏览器或命令行下载,不要把完整链接公开发到群聊、截图或在线转换页面。若返回内容明显是 HTML 登录页、403/404 错误页、空文件或无法解析的文本,就不是一次成功的 sing-box 配置下载。不同面板可能根据请求头返回不同内容,这种情况应向订阅提供方确认“sing-box 原生 JSON 订阅链接”。

安全提醒:订阅 URL 往往包含访问凭据。本文不要求你把真实链接贴出来;排查时只展示域名、状态码或脱敏后的文件片段。

Android:sing-box for Android 导入 Remote Profile

官方客户端名称是 sing-box for Android。官方页面说明,该客户端可以管理和运行本地或远程 sing-box 配置文件,最低要求为 Android 5.0+,下载入口以官方页面当前列出的 Play Store、GitHub Releases 或 F-Droid 为准。官方 sing-box for Android 页面

  1. 打开 sing-box for Android,进入配置文件或 Profiles 页面。
  2. 选择新增远程配置,通常会看到 Remote、URL 或类似名称;具体按钮名称以当前版本为准。
  3. 在 URL 输入框粘贴服务商明确标注为 sing-box 或 JSON 的订阅链接。
  4. 填写名称,保存配置,然后手动执行一次更新,确认下载内容不是空文件或错误页面。
  5. 返回配置列表,选中刚才的 Remote Profile,再进入 Dashboard 或服务控制区域启动。
  6. 首次启动 TUN/VPN 模式时,按 Android 系统弹窗允许 VPN 权限;官方说明 Android 图形客户端在需要 TUN 时通过 Android VpnService 提供实现。官方 Android 功能说明

如果配置列表能显示但节点或策略组为空,先重新更新 Remote Profile,再检查链接是否确实返回完整 JSON。不要先改 DNS、MTU 或路由规则,因为导入阶段最常见的问题仍是链接格式、授权状态和返回内容不正确。

iPhone、iPad 与 macOS:使用 sing-box for Apple platforms

Apple 平台的官方客户端名称是 sing-box for Apple platforms,覆盖 iOS、macOS 和 Apple tvOS。官方通用文档将配置分为 Local、iCloud 和 Remote;Remote Profile 的更新来源是 URL,客户端应提供配置查看、自动更新和 HTTP Basic Authorization 支持。官方 sing-box for Apple platforms 页面 官方 Profile 说明

  1. 安装并打开 sing-box for Apple platforms。
  2. 进入配置文件或 Profiles,点击新增配置。
  3. 选择 Remote,不要把远程订阅误建成 Local。
  4. 粘贴 sing-box JSON 订阅 URL,填写名称并保存。
  5. 点击更新或刷新,打开配置内容查看器确认下载成功。
  6. 回到 Dashboard 或服务控制区域启动;iPhone、iPad 需要按系统提示允许添加 VPN 配置。

macOS 可能同时显示 Local、Remote 或 iCloud Profile。iCloud Profile 是以 iCloud 作为更新来源的远程配置,不等于直接粘贴订阅 URL;要导入订阅链接,应选择 Remote。macOS 独立版本的发布状态和可用入口以官方页面为准,官方页面当前同时列出 App Store、TestFlight、Homebrew Cask 或 GitHub Releases 等不同路径。

Windows 与 Linux:优先分清图形客户端和命令行

官方图形客户端列表把 Windows 和 Linux 都列为 sing-box for Desktop,但具体发布状态、安装包和界面入口应以官方页面当前信息为准;如果当前版本未提供适合你的桌面包,可以使用命令行或经核实的第三方 GUI。官方图形客户端列表

如果桌面客户端提供 Remote 或 Profiles 入口,操作逻辑与移动端相同:新建 Remote,粘贴 URL,保存,手动更新,确认配置内容,再启动服务。若使用命令行,可以把订阅先保存成 JSON 文件:

mkdir -p ~/sing-box-config

Linux 或 macOS:

curl -fL --show-error --silent --dump-header headers.txt -o ~/sing-box-config/config.json "粘贴你的订阅URL"

Windows PowerShell:

New-Item -ItemType Directory -Force "$HOME\sing-box-config"

curl.exe -fL --show-error --silent --dump-header headers.txt -o "$HOME\sing-box-config\config.json" "粘贴你的订阅URL"

-f 会让 HTTP 4xx/5xx 被视为失败,避免把错误页保存成看似正常的 config.json;-L 用于跟随重定向,--dump-header headers.txt 便于查看响应头。curl 官方文档说明,默认情况下 HTTP 错误状态不一定让 curl 返回失败,使用 --fail 可改变这一行为。curl 官方命令手册 curl 官方 FAQ

先查看状态码,再校验 JSON:

cat headers.txt

sing-box check -c ~/sing-box-config/config.json

Windows 如果 sing-box 没有加入 PATH,请使用可执行文件完整路径,例如:

& "C:\path\to\sing-box.exe" check -c "$HOME\sing-box-config\config.json"

命令行前台启动时,必须明确指定刚才下载的文件:

sing-box run -c ~/sing-box-config/config.json

如果你使用的是 systemd 服务,不要假设它会自动读取 ~/sing-box-config/config.json。应把文件复制到你服务单元实际指定的路径,例如:

sudo install -d /etc/sing-box

sudo cp ~/sing-box-config/config.json /etc/sing-box/config.json

sudo sing-box check -c /etc/sing-box/config.json

然后确认服务单元的 ExecStart 参数确实使用 -c /etc/sing-box/config.json,再执行 sudo systemctl restart sing-box。前台 run 和 systemd 服务是两条独立启动路径;如果服务单元指向别的文件,复制和校验后仍需检查服务实际加载的路径。sing-box 官方配置文档提供了 check 和格式化命令,但不同发行版的服务单元路径可能不同。官方配置命令说明

没有 sing-box 专用链接时,怎么处理 Clash 或通用订阅

sing-box 官方配置格式是 JSON,因此“Clash YAML 能否直接作为 Remote Profile 使用”不能只凭链接名称判断。若下载内容不是 sing-box 能识别的 JSON 配置,常见处理顺序如下:

  1. 回到订阅后台,寻找名称明确包含 sing-box、JSON、原生配置或 sing-box Client 的入口。
  2. 如果只有通用订阅,先询问提供方该链接对 sing-box 返回的具体格式,以及是否需要 User-Agent 或额外参数。
  3. 如果必须转换,优先使用订阅提供方自己提供的转换功能;不要把包含完整 Token 的 URL 粘贴到不明来源的公开转换站。
  4. 转换后先下载到本地,用 sing-box check 校验,再导入客户端。
  5. 如果转换后只有节点但没有有效的 DNS、路由、入站或出站结构,导入成功也不代表能正常启动,需要回到提供方确认配置内容。

这一步的核心不是“把任何订阅都强行转换”,而是确认最终文件确实是适配当前 sing-box 版本的 JSON。官方文档还提供 JSON Schema 说明;兼容编辑器可以使用对应 Schema 做字段提示和验证,但 Schema 版本应与当前二进制和配置字段相匹配。官方 JSON Schema 说明

导入后无法连接:按错误类型排查

现象优先检查处理方法
下载失败、403、404订阅过期、权限、URL 拼写、响应状态码重新复制链接,查看 headers.txt;不要把错误页保存为配置
JSON 解析失败返回 HTML、YAML、Base64 或截断内容用文本编辑器查看文件开头,回到后台寻找原生 JSON 入口
配置导入成功但没有节点配置内容为空、分组为空或转换结果不完整先手动更新,再查看配置内容;必要时让提供方确认格式
启动时报字段不兼容配置字段与当前 sing-box 版本不匹配记录完整报错,核对当前版本文档,不要盲删字段
启动后设备无网络VPN/TUN 权限、路由、DNS 或系统代理状态先停止服务并恢复系统网络,再重新授权 VPN;之后查看客户端日志
命令行能运行,systemd 启动不生效服务单元读取了另一份配置检查 ExecStart 的 -c 路径,并对该路径重新执行 sing-box check

如果只是某个节点不可用,不要马上判定整个订阅失败。先确认配置已成功加载,再在客户端的 Groups 或 Selector 中选择其他可用出站;官方通用客户端说明指出,只有配置包含 Selector 或 URLTest 等组出站时,Dashboard 才能提供相应的组选择功能。官方 Dashboard 说明

订阅更新与安全自查清单

  • 首次导入后立即手动更新一次,确认 Remote Profile 保存的是订阅 URL,而不是临时下载文件。
  • 官方通用文档给出的 Remote Profile 默认自动更新间隔为 60 分钟;当前客户端界面可能允许修改,实际菜单名称和可选值以当前版本为准。
  • 不要把完整订阅 URL 放进公开截图、工单或社交平台;需要求助时至少隐藏 Token、用户名和路径参数。
  • 如果怀疑链接泄露,联系订阅提供方轮换或撤销旧链接;本文不对任何未核实服务的泄露状态作判断。
  • 升级 sing-box 或客户端后重新执行一次配置校验,尤其要留意字段废弃、协议支持变化和系统 VPN 权限变化。
  • 若你还不确定客户端选择,可先阅读本站的客户端选择说明;导入和更新流程可参考订阅导入与更新指南,启动后打不开网页则查看连接失败排查步骤。

以上步骤只说明客户端和配置文件的技术操作,不代表任何订阅服务的可用性、速度或线路质量。使用网络服务时,请遵守所在地法律法规以及服务提供方的使用规则。

常见问题

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

不能仅凭链接名称判断。sing-box 官方核心配置使用 JSON;Clash YAML、Base64 或通用订阅是否能被当前客户端转换,取决于实际返回内容和客户端能力。优先寻找服务商明确标注的 sing-box 原生 JSON 入口,无法确认时先下载并执行 sing-box check。

Remote Profile 和 Local Profile 有什么区别?

Remote Profile 以 URL 作为更新来源,适合远程订阅;Local Profile 对应本地配置文件,适合你已经下载或手动编辑的 JSON。iPhone 和 macOS 还可能看到 iCloud Profile,它以 iCloud 作为更新来源,不等于直接粘贴普通订阅 URL。

为什么订阅导入后显示空配置或没有节点?

优先检查订阅请求是否返回 403、404、登录页或空内容,再确认复制的是 sing-box JSON 链接。若文件能打开但配置中没有有效出站或分组,可能是通用订阅格式、授权状态或转换结果问题,应让提供方确认适配方式。

Windows 用 curl 下载配置时为什么生成了错误的 JSON 文件?

curl 默认不一定把 HTTP 4xx/5xx 当作命令失败,若直接输出到文件,错误页可能被保存成 config.json。PowerShell 请使用 curl.exe,并加上 -fL --show-error --silent --dump-header headers.txt,随后查看 headers.txt 和文件内容。

Linux 中 sing-box check 通过,但 systemd 启动后仍然没有生效怎么办?

检查 systemd 服务单元的 ExecStart 参数,确认它的 -c 路径就是你刚才校验的文件。例如文件放在 /etc/sing-box/config.json,就对该路径执行 sudo sing-box check -c /etc/sing-box/config.json,再重启服务并查看服务日志。

相关阅读

参考资料

  1. sing-box 官方:通用图形客户端与 Remote Profile
  2. sing-box 官方:sing-box for Android
  3. sing-box 官方:Android 客户端功能与 VPN/TUN
  4. sing-box 官方:sing-box for Apple platforms
  5. sing-box 官方:图形界面客户端列表
  6. sing-box 官方:JSON Schema
  7. curl 官方命令手册(curl.se)
  8. curl 官方 FAQ(curl.se)
  9. sing-box.sagernet.org