sing-box 安卓订阅配置教程:先辨 JSON,再导入 Remote Profile
简答:如果你是在 Android 手机上导入 sing-box 订阅,先不要急着改 DNS 或开启高级模式:第一步用浏览器确认订阅返回的是 JSON 配置;第二步在 sing-box for Android 的配置文件区域添加 Remote Profile,保存后手动更新;第三步启动服务并区分“配置存在”和“实际连接成功”。本文是系列中的 Android 篇,不覆盖 Windows、macOS、iOS 或 Linux 命令行。
定义:sing-box 订阅配置,是把服务提供方生成的远程 sing-box JSON 配置,通过 Remote Profile 加入客户端,再完成更新、启动和出站连接测试。
先做 3 分钟判断:链接、配置、连接不是一回事
本文为第三方使用指南,不代表 sing-box 项目或任何订阅服务官方。本文只讲 Android 上的 sing-box for Android,简称 SFA;如果你使用的是 Windows、macOS、iOS 或 Linux 客户端,请先查看使用指南目录,不要照搬 Android 的菜单路径。
| 检查阶段 | 你要观察什么 | 通过标准 | 不通过时先做什么 |
|---|---|---|---|
| 返回内容 | 浏览器打开订阅 URL 后显示什么 | 返回可解析的 sing-box JSON,而不是 HTML、YAML、Base64 或单条分享链接 | 重新复制完整 URL,向订阅提供方确认是否有 sing-box 专用格式 |
| 导入结果 | Remote Profile 是否保存并完成一次手动更新 | 配置可以被客户端读取,且没有明显的截断、错误页或解析错误 | 查看原始返回内容和错误提示,不要只修改文件后缀 |
| 启动状态 | 服务是否启动、系统 VPN 是否授权、出站是否能连接 | 服务已启动,并通过实际网页或应用测试确认连接成功 | 先停止其他 VPN,重新授权并只测试一个出站 |
官方文档说明,sing-box 配置文件使用 JSON,并列出 log、dns、inbounds、outbounds、route 等配置区域。这个结构表用于说明配置可以包含哪些区域,不代表每个字段都必须填写;能否启动还取决于当前配置、客户端版本和实际出站内容。查看 sing-box 配置结构官方文档
最小结构示例(不可直接复制,也不能直接连接):{"outbounds":[],"route":{}}。它只用于帮助你识别 JSON 对象,里面没有真实服务器、认证信息或可用节点,因此不能作为完整配置运行。
先确认订阅格式:不要把其他内容当成 sing-box JSON
| 内容类型 | 常见特征 | 能否直接作为 SFA Remote Profile | 正确处理方式 |
|---|---|---|---|
| sing-box JSON | 打开后是 JSON 对象,通常以花括号表示结构 | 在字段兼容的前提下可以尝试 | 添加 Remote Profile,保存并手动更新 |
| Clash YAML | 文本依赖缩进和 YAML 键值结构 | 不能因为都是“订阅”就直接混用 | 向提供方索取 sing-box 格式,或使用已核验的转换方式 |
| Base64 编码内容 | 打开后是一长串编码文本,未必能直接阅读 | 不能直接当成完整 sing-box 配置 | 确认它到底是节点集合还是完整配置 |
| 单条分享链接 | 通常只有一个协议链接或一条节点信息 | 不是完整 Remote Profile 配置 | 使用客户端支持的单节点导入功能,或获取完整配置 |
| HTML 错误页 | 出现登录页、过期提示、权限错误或网页源码 | 不能导入 | 检查 URL、授权状态和订阅有效性 |
- 复制订阅 URL 到浏览器地址栏,观察返回的是配置文本还是网页错误。
- 如果内容是 HTML、YAML、编码文本或单条链接,不要只把后缀改成
.json;改后缀不会改变实际内容格式。 - 如果订阅需要登录或带授权参数,重新复制完整 URL,避免漏掉问号、等号和其他参数。
- 如果提供方同时给出多个格式,优先选择明确标注为 sing-box、SFA 或 JSON 的版本;没有该选项时,应先向提供方确认兼容性。
订阅 URL 应按凭据处理。不要把完整链接发到公开群组、截图、工单或未经核验的在线转换页面;如果链接已经公开,按提供方支持的方式重新生成或重置。
Android SFA 导入 Remote Profile:按功能名称寻找入口
官方客户端页面确认,sing-box for Android 用于管理和运行本地或远程 sing-box 配置,并提供 Android 平台相关功能;官方页面同时列出下载渠道和系统要求。本文不把界面名称写死为某个构建版本,实际界面可能显示为 Profiles、Configuration 或“配置文件”。查看 sing-box for Android 官方页面
- 打开配置文件管理区域。进入 SFA 主界面,寻找 Profiles、Configuration 或“配置文件”入口。若首页只有启动按钮,继续查找侧边栏、设置页或配置管理入口。
- 新建远程配置。点击添加、加号或 New,选择 Remote、远程配置或带 URL 更新来源的配置类型。不同构建版本的名称可能不同,但核心是“远程 URL 作为更新来源”。
- 填写名称和 URL。名称可写“工作订阅”等便于识别的短名称;URL 粘贴完整订阅地址,不要手动删除参数,也不要把订阅内容粘到名称栏。
- 保存后手动更新。点击保存,再执行 Update、更新或刷新。第一次更新只用于验证下载和解析,不代表节点已经实际可用。
- 查看配置状态。如果当前构建提供配置内容查看器,查看是否返回 JSON,并留意是否出现 HTML 错误、截断内容或明显的解析提示。
- 启动服务并完成系统授权。回到 Dashboard、主控制页或服务页启动。Android 需要由系统确认 VPN 权限时,按提示完成授权;如果已经有其他 VPN 应用运行,先停止它再测试。
- 选择出站并做实际测试。只有配置中存在 Selector 或 URLTest 等组出站时,客户端才可能显示组选择入口。看到节点名称只说明配置中存在出站,不等于该出站已经连接成功;还要打开网页或使用目标应用验证。
官方通用图形客户端文档将 Remote Profile 定义为以 URL 作为更新来源的远程配置,并说明图形客户端应提供配置查看、自动更新和远程配置导入方式。该文档属于统一功能说明,不能当成每个构建版本的固定菜单截图;如果你的 SFA 没有 Remote 字样,应按“配置文件管理—添加—URL 更新来源”的功能寻找,或回到官方客户端页面确认构建来源。查看图形客户端通用功能说明
导入失败、Groups 为空、启动无网络:按现象分流
| 现象 | 先判断哪一层 | 下一步动作 |
|---|---|---|
| 订阅链接打不开 | 下载层 | 切换 Wi-Fi 与移动网络,重新复制完整 URL,并确认链接是否需要授权或已失效 |
| 返回 HTML、YAML 或编码文本 | 格式层 | 获取 sing-box JSON;不要把其他格式直接改后缀 |
| JSON 解析失败 | 内容层 | 查看原始返回是否被截断、混入错误提示,随后核对当前客户端支持的字段 |
| 导入成功但 Groups 为空 | 配置结构层 | 查看是否有 Selector 或 URLTest;如果只有单个出站,Groups 为空可能是配置设计,不一定是客户端故障 |
| 服务启动但没有网络 | 系统与连接层 | 停止其他 VPN,重新完成系统 VPN 授权,只测试一个出站,再查看日志或错误信息 |
| 自动更新没有变化 | 更新层 | 先手动 Update,记录更新时间和错误;再检查后台限制与远程 URL 是否仍可访问 |
配置存在,不等于节点可用
如果配置查看器能显示 outbounds,只能说明配置中有出站定义;它不代表服务器可达、认证正确、TLS 参数匹配或实际网页访问成功。排查时应记录三项结果:配置是否能更新、服务是否能启动、选定出站能否完成实际访问。
Groups 为空时不要先改 DNS
官方通用说明指出,Dashboard 的组选择与配置中的 Selector 或 URLTest 组出站有关。如果配置只有一个普通出站,客户端没有 Groups 入口可能是正常结果。先查看配置结构和出站类型,再决定是否需要更换由提供方生成的完整配置。
启动后无网络的最短回滚
- 停止 SFA 服务,并关闭其他 VPN、代理或网络过滤应用。
- 重新启动 SFA,按 Android 系统提示再次确认 VPN 权限。
- 只选择一个明确存在的出站测试,不要同时切换多个节点或修改多个字段。
- 如果仍然无网络,记录客户端错误、配置更新时间和当前出站名称,再检查 DNS、route、TUN 相关字段是否适用于当前 Android 构建。
- 若更新后才出现故障,恢复更新前保留的本地副本或重新导入上一次可用配置,避免在远程配置上连续覆盖修改。
Android 客户端的 TUN、VPN 权限和后台运行行为受客户端构建与系统版本影响。不要直接把桌面或 Linux 配置中的字段全部复制到 Android;字段是否可用,应以当前客户端和配置文档为准。
备份、更新与回滚:把订阅当作远程凭据管理
- 更新前记录状态:记下 Remote Profile 名称、最后一次成功更新时间、当前使用的出站,以及是否能正常启动。
- 保留可回退副本:如果客户端支持导出或复制配置,保存一份脱敏副本;不要把真实订阅 URL、密码、密钥和私有参数发布到公开位置。
- 先手动更新,再长期使用:第一次导入不要立即依赖自动更新。先手动更新、启动、选择一个出站并完成实际访问测试。
- 更新后分开判断:如果下载失败,是 URL 或网络问题;如果 JSON 解析失败,是内容或字段兼容问题;如果启动后无网络,则进入系统授权、出站、DNS 或 route 排查。
- 升级时核对官方资料:客户端、内核、字段和构建版本会变化。本文按 facts.today,即 2026-11-01 的官方页面核对;以后升级时仍应重新查看官方文档和发布说明,不把本文菜单名称视为永久固定。
官方配置文档还提供 JSON Schema、配置检查和格式化相关说明。对于普通 Android 用户,优先使用客户端自身的解析提示;如果需要在电脑上检查配置,再根据当前安装版本的官方帮助确认命令和参数,不能把不同版本的命令混用。查看 sing-box JSON Schema 官方说明
如果你已经有订阅但 Android 导入后仍无法连接,可前往边界云加速官网了解相关服务,具体能力与适用范围以官方说明为准。
完成标准:什么时候才算 sing-box 订阅配置成功
- 订阅 URL 在当前网络下可以访问,返回内容不是 HTML 错误页。
- 返回内容与 sing-box JSON 配置相符,而不是 YAML、Base64 或单条分享链接。
- SFA 能保存 Remote Profile,并完成至少一次手动更新。
- 配置查看器能显示配置内容,没有明显截断或解析错误。
- 服务启动时完成 Android 系统 VPN 授权。
- 配置中存在出站;如果需要 Groups,还要确认存在 Selector 或 URLTest 组出站。
- 至少用一个出站完成实际网页或应用访问测试。
- 更新前保留名称、时间和可回退副本,便于出现问题时恢复。
做到第 3 步,只能说明订阅链接和格式基本可读;做到第 7 步,才有依据判断当前配置、出站和 Android 本机连接是否真正可用。
常见问题
sing-box 订阅链接打开后不是 JSON,还能直接导入吗?
不建议直接导入。Remote Profile 面向远程 sing-box 配置;如果返回的是 YAML、Base64、HTML 错误页或单条分享链接,应先获取 sing-box 专用格式或确认可靠的转换方式。仅修改文件后缀不会改变内容格式。
SFA 导入订阅后为什么没有 Groups?
Groups 是否出现取决于配置结构。官方通用说明将组选择与 Selector 或 URLTest 等组出站关联;如果配置只有一个普通出站,Groups 为空可能是正常结果。先查看配置内容,不要直接判定为客户端故障。
配置导入成功但启动后手机没有网络怎么办?
先停止其他 VPN 或代理应用,重新启动 SFA 并完成系统 VPN 授权,再只测试一个出站。若仍失败,记录错误信息和配置更新时间,随后检查出站、DNS、route 与 TUN 字段是否适用于当前 Android 构建。
Remote Profile 一定会按固定时间自动更新吗?
远程配置具备自动更新设计,但实际更新时间、后台执行和电池限制可能受客户端构建及 Android 系统影响。首次导入后先手动更新,并记录最后成功时间;自动更新异常时先检查远程 URL 和后台限制。
没有 sing-box 专用订阅,能不能把其他订阅直接改成 JSON?
不能靠改后缀完成转换。Clash YAML、Base64 节点集合、单条分享链接和完整 sing-box JSON 不是同一种内容。优先向提供方索取兼容格式;必须转换时,先核查隐私、凭据暴露和字段兼容性。