sing-box怎么添加订阅?远程配置导入完整步骤
简答:在 sing-box 中添加订阅,通常不是把普通文本直接粘贴到核心配置里,而是将提供方给出的远程配置 URL 添加为 Remote Profile(远程配置)。打开官方图形客户端的配置或 Profiles 页面,新建 Remote 配置,填写名称和 HTTPS 配置地址,保存后先验证配置,再选择该配置启动。
定义:sing-box 订阅是一个能够返回有效 sing-box JSON 配置的远程 URL,客户端通过 Remote Profile 定期获取并更新这份配置。
添加订阅前,先确认链接和客户端类型
sing-box 的图形客户端支持管理本地配置和远程配置。官方文档把远程配置称为 Remote Profile:它以 URL 作为更新来源,客户端保存配置副本,并按设置的更新周期重新获取内容。相关说明可参考 sing-box 官方客户端通用文档。
因此,添加订阅前要先确认三件事:
- 链接类型:订阅地址应当能够直接返回 sing-box 可读取的 JSON 配置,而不是登录页面、HTML 页面或普通文本说明页。
- 协议格式:链接最好使用 HTTPS。若服务商提供的是 Clash、通用代理链接或其他客户端专用格式,不能默认认为 sing-box 可以直接识别,是否兼容要以提供方说明为准。
- 客户端来源:官方图形客户端包括 Android、Apple 平台以及 Windows、Linux 上的 sing-box for Desktop。官方文档说明,这些客户端都用于管理和运行本地或远程 sing-box 配置文件,可在 sing-box 官方图形客户端页面查看平台信息。
如果你拿到的链接打开后显示一段 JSON,仍然不代表一定能启动;配置中的入站、出站、路由和 DNS 等字段还必须符合当前 sing-box 版本支持的配置结构。官方提供了配置 Schema,可用于编辑器补全和校验,详见 sing-box 官方 JSON Schema 文档。
Android 版 sing-box 添加订阅
- 打开 sing-box,进入 Profiles 或配置文件页面。
- 点击右上角的加号,选择新建配置或手动创建配置。
- 在配置类型中选择 Remote,不要选择 Local。
- 在名称栏填写便于识别的名称,例如“主配置”或“备用配置”。
- 在 URL 栏粘贴订阅地址。建议粘贴完整的 HTTPS 地址,不要在末尾额外添加空格或换行。
- 点击创建或保存。客户端会先请求远程内容并检查配置格式;如果远程内容无法读取或不是有效 sing-box 配置,通常会在保存阶段提示错误。
- 返回配置列表,点选刚刚添加的远程配置,再启动服务。
官方项目文档说明,Android 客户端可以管理本地或远程 sing-box 配置文件。实际菜单名称可能会随着客户端版本或语言设置略有差异,但关键选项是配置类型选择 Remote,并填写远程 URL。Android 客户端的官方说明可参考 sing-box for Android 官方文档。
Windows 或 Linux 版 sing-box for Desktop 添加订阅
- 打开 sing-box for Desktop,进入配置文件、Profiles 或配置管理页面。
- 点击添加配置,选择远程配置或 Remote Profile。
- 填写配置名称,并把订阅地址粘贴到远程 URL 输入框。
- 保存后等待客户端下载并检查配置内容。
- 在配置列表中选中该配置,按客户端界面提供的启动或启用按钮运行。
- 如果需要系统级接管流量,再根据客户端提供的 TUN 或系统代理选项进行设置。首次排查时建议先确认配置本身能够启动,再处理 TUN、DNS 或系统代理问题。
官方桌面客户端页面说明,sing-box for Desktop 用于管理和运行本地或远程 sing-box 配置文件,并提供平台相关功能。Windows 和 Linux 的安装方式、支持平台及项目入口,以 sing-box for Desktop 官方页面为准。
iPhone、iPad 或 Mac 添加远程配置
- 打开 sing-box,进入配置文件或 Profiles 页面。
- 点击新增配置,选择 Remote 类型。
- 输入配置名称和远程 URL,然后保存。
- 等待客户端读取远程内容并完成配置检查。
- 保存成功后选择该配置,再根据系统权限提示启用网络扩展或相关连接功能。
官方客户端通用文档还定义了用于导入远程配置的 URL Scheme:sing-box://import-remote-profile?url=urlEncodedURL#urlEncodedName。其中远程地址和名称需要进行 URL 编码;如果只是手动添加,直接在客户端选择 Remote 并填写 URL 通常更直观。不要把未经编码、包含特殊字符的地址直接拼进 URL Scheme。
远程配置导入后,客户端会保存一份本地副本,并保留远程地址作为后续更新来源。Apple 客户端的实现也会在创建远程配置时先读取远程内容并检查配置,因此链接必须能够返回有效配置,而不是需要浏览器交互登录的网页。相关实现可参考 sing-box for Apple 官方项目代码。
订阅添加成功后,如何更新和切换配置
远程配置和本地配置的区别在于:远程配置保留了一个更新来源。添加成功后,可以按下面顺序使用:
- 先在配置列表确认远程配置名称和 URL 没有写错。
- 手动执行一次更新,确认最新内容可以正常下载。
- 查看配置预览或日志,确认没有 JSON 格式错误。
- 选择配置并启动 sing-box。
- 如果客户端提供自动更新间隔,可以按实际需求开启;不需要自动更新时,可保留手动更新方式。
建议在修改订阅前保留旧配置或记录当前使用的配置名称。这样当远程内容更新后出现启动失败时,可以先切回旧配置,判断问题来自网络下载、订阅内容变化,还是本地客户端设置。
| 方式 | 适合场景 | 是否自动获取远程内容 | 注意事项 |
|---|---|---|---|
| Remote | 使用订阅 URL,后续可能更新 | 通常支持按客户端设置更新 | URL 必须能返回有效 sing-box 配置 |
| Local | 导入本地 JSON 或手动编辑 | 不会自动从订阅地址获取 | 更新需要重新替换或编辑文件 |
| URL Scheme 导入 | 通过特殊链接快速创建远程配置 | 取决于导入后配置设置 | 参数和远程地址需要正确编码 |
添加订阅失败的排查顺序
提示配置格式错误
先用浏览器或其他方式检查该地址返回的内容。若看到登录页、验证码、错误页或一段无法解析的文本,说明地址没有直接返回配置。若返回 JSON,则继续检查是否为 sing-box 支持的配置结构。不要只根据文件后缀判断格式,真正决定能否导入的是返回内容和当前版本支持的字段。
提示网络请求失败或超时
检查设备当前网络、DNS 和 HTTPS 证书是否正常,再确认订阅地址是否过期或需要身份验证。可以先在同一设备的浏览器中打开地址;如果浏览器也无法访问,优先处理链接或网络问题,而不是反复修改 sing-box 配置。
配置导入成功但无法启动
这通常说明“远程内容能下载”与“配置能运行”是两个不同环节。先查看客户端日志,重点检查字段拼写、出站类型、端口、TLS 参数、DNS、路由以及当前 sing-box 版本是否支持对应字段。官方文档对配置字段按模块提供说明,例如 TLS 字段和出站类型应以当前版本文档为准,不建议直接复制其他客户端的配置字段。
启动后没有流量或部分应用无法连接
先确认服务确实处于运行状态,再检查系统代理或 TUN 是否已启用。排查时可以先用较简单的模式验证基础连接,再逐步启用 TUN、路由规则和自定义 DNS。不要同时修改多个设置,否则很难判断是哪一项造成问题。
常见问题
sing-box 可以直接添加 Clash 或 V2Ray 订阅吗?
不能一概而论。sing-box 的 Remote Profile 需要远程地址返回它能够读取的有效 sing-box 配置。如果提供方明确支持 sing-box 格式,可以按 Remote 方式添加;如果地址返回的是其他客户端专用格式,应先向提供方确认是否需要转换,不能仅凭“订阅链接”几个字判断兼容。
sing-box 添加订阅时,应该选择 Local 还是 Remote?
如果你填写的是一个在线订阅地址,应选择 Remote;如果你手里是已经下载到设备上的 JSON 配置文件,或准备手动编辑配置,才选择 Local。选错类型是添加后无法自动更新的常见原因。
订阅导入成功后,为什么启动仍然失败?
导入成功只表示客户端能够取得并初步检查远程内容,不代表其中所有出站、TLS、DNS、路由和权限设置都能在当前设备与版本中正常运行。请查看日志,先确认配置格式,再逐项检查出站参数、网络权限和系统代理或 TUN 设置。
订阅更新后配置失效怎么办?
先停止服务并查看更新后的配置或日志,确认问题是否从更新开始出现。如果客户端保留旧配置,先切回上一个版本验证;随后重新获取订阅、检查链接是否返回错误页,并联系配置提供方确认内容是否发生变化。