sing-box 安卓教程:SFA 安装、订阅导入与无法上网排查
简答:sing-box 安卓版通常指官方 SFA 客户端,不是 sing-box Core 本身。先从官方渠道安装 SFA,再导入 sing-box JSON 或远程配置;如果 VPN 已连接但打不开网页,按配置格式、日志、节点、DNS 和 Android 后台限制依次排查。
定义:SFA 是 sing-box 官方 Android 图形客户端,用来管理本地或远程 sing-box 配置,并通过 Android VpnService 提供 TUN 功能。
先看配置格式:不同订阅不能直接混用
如果你已经拿到订阅地址,先不要急着粘贴。SFA 管理的是 sing-box 配置文件;官方文档将配置分为 Local Profile 和 Remote Profile,远程配置以 URL 作为更新来源。Clash YAML、通用 Base64 节点列表、单节点 URI 和完整 sing-box JSON 并不是同一种格式。
| 格式 | 能否直接导入 SFA | 正确处理方式 |
|---|---|---|
| 完整 sing-box JSON | 可以 | 作为 Local 配置导入文件或粘贴内容。 |
| 远程 sing-box JSON URL | 可以 | 在 New Profile 中创建 Remote,填写 HTTPS 配置地址。 |
sing-box://import-remote-profile 链接 | 可以 | 点击链接后交给 SFA,检查 URL 和配置名称再保存。 |
| Clash YAML | 不能直接当作 sing-box JSON | 让配置提供方生成 sing-box 格式,或改用支持该格式的客户端。 |
| Base64 节点订阅 | 通常不能直接导入 | 确认服务方是否提供 sing-box 远程配置,而不是只提供节点列表。 |
| 单节点 URI | 不能直接当完整配置 | 使用能解析该 URI 的客户端,或转换为完整 sing-box JSON。 |
官方客户端规范还定义了远程配置导入链接格式:sing-box://import-remote-profile?url=urlEncodedURL#urlEncodedName。链接中的 URL 需要经过编码,手动修改时不要删掉协议头或参数。官方图形客户端配置说明
下载安装:先核验 SFA,再选择 APK 架构
sing-box Core 是负责处理配置和网络连接的核心程序,SFA 是 Android 图形客户端;两者不是同一个安装包。NekoBox 是使用 sing-box 的第三方 Android 客户端,界面、配置兼容范围和维护方与 SFA 不同。搜索结果中看到“sing-box 安卓版”时,先确认应用名称、发布组织和下载地址,避免把第三方 APK 当成官方 SFA。
- 优先打开 sing-box 官方 Android 页面,从其中列出的 Play Store、GitHub Releases 或 F-Droid 入口进入。
- 如果使用 GitHub Releases,进入具体发布页后,只下载名称以
SFA-开头的 APK,不要把桌面端压缩包或 Core 二进制当作 Android 图形客户端。 - 普通新款手机通常优先检查
arm64-v8a;旧设备可能需要armeabi-v7a。无法判断架构时,可选择官方发布页提供的 universal 包,但文件通常更大。 - 安装前检查发布者、文件名和来源域名。不要从搜索广告、网盘转存或陌生短链接下载 APK。
- 若发布页提供 SHA256,校验对象必须是刚下载的原始 APK,而不是解压后的文件。Windows 可使用
certutil -hashfile 文件名.apk SHA256;macOS 可使用shasum -a 256 文件名.apk。
截至2026年10月24日,Releases 标记为 Latest 的是 1.14.3;如果你稍后打开页面看到不同的 Latest 标记,应以发布页当前固定版本和资产列表为准。官方 Android 客户端要求 Android 5.0 或更高版本。官方 Android 客户端页面
首次配置:导入远程订阅、本地 JSON 和一键链接
方式一:Remote 远程配置
- 打开 SFA,进入 Profiles 或配置列表,点击 New Profile。
- 选择 Remote,填写配置提供方给出的 sing-box JSON 远程地址。
- 填写名称并保存,回到配置列表执行更新。
- 确认配置能显示有效内容后,再进入 Dashboard 启动。
方式二:Local 本地 JSON
- 将完整 sing-box JSON 文件保存到手机,或使用文件分享功能发送给 SFA。
- 在 New Profile 中选择 Local 或本地文件导入。
- 保存后打开配置内容检查是否存在有效的出站、路由和 TUN 设置。
方式三:二维码或 sing-box 导入链接
如果服务方提供二维码或 sing-box://import-remote-profile 链接,使用系统浏览器或二维码扫描器打开,选择 SFA 接收。首次导入时要核对配置 URL,避免把不认识的地址保存为远程配置。导入后仍需在 Profiles 中确认名称、更新时间和内容。
配置解析失败时,不要先反复点击启动。先判断返回内容是不是 JSON:如果浏览器打开后显示 HTML 登录页、错误页、空白页或一段 Base64 文本,SFA 通常无法按完整 sing-box 配置解析。此时应向配置提供方索要 sing-box JSON 或正确的远程配置地址。
启动与验证:VPN 图标出现不等于访问已经正常
- 在 Profiles 中选中刚导入的配置,确认配置状态没有解析错误。
- 进入 Dashboard,点击启动。Android 弹出 VPN 权限确认时选择允许;如果系统已有其他 VPN、企业网络或始终开启的 VPN,先暂时关闭冲突项。
- 如果配置中含有 Selector 或 URLTest 出站,进入 Groups 选择具体线路。没有这些出站组时,Groups 为空并不一定是故障,可能只是配置没有声明可切换的组。
- 观察 Logs 或 Dashboard 中的连接记录,确认是否出现 DNS 错误、连接超时、TLS 错误或出站选择失败。
- 打开一个出口 IP 检查页面,再打开原本无法访问的目标网站。两者都正常,才说明基础连接和目标访问分别通过了验证。
SFA 在需要 TUN 时通过 Android VpnService 提供非特权 TUN;Android 系统会显示 VPN 图标,但图标本身只能说明 VPN 服务已建立,不能证明节点、DNS、路由和目标网站都正常。分应用代理也可能只让部分应用进入配置,需检查 SFA 的应用选择设置。官方 Android 客户端功能说明
按顺序排查:配置解析失败、Timeout、VPN 有图标但无法上网
| 现象 | 优先检查 | 处理方法 |
|---|---|---|
| 配置解析失败 | 格式和返回内容 | 确认是完整 sing-box JSON;用浏览器检查远程地址是否返回登录页、错误页或空内容。 |
| 配置导入成功但没有节点 | 出站和策略组 | 检查配置是否包含有效 outbound;Groups 只有在存在 Selector 或 URLTest 等组出站时才有可选内容。 |
| 节点 Timeout | 网络、地址、端口、TLS | 先切换另一条线路,再检查手机当前 Wi-Fi 或移动网络;不要同时修改多个参数。 |
| VPN 有图标但网页打不开 | 日志、DNS 和路由 | 看日志是否命中出站,关闭分应用代理测试全局范围,再分别测试出口 IP 和目标网站。 |
| 只有某个应用打不开 | 分应用代理 | 检查该应用是否被排除,或先关闭应用分流后重测。 |
| 锁屏后断开或后台停止 | 电池优化和后台限制 | 将 SFA 设为允许后台运行,关闭系统对该应用的电池限制;不同手机品牌入口名称不同。 |
建议始终遵循“订阅格式—配置解析—VPN 权限—节点连通—DNS 与分流—后台限制”的顺序。这样可以避免在节点还未连通时反复修改 DNS,或在配置格式错误时误判为线路问题。
SFA、sing-box Core 和第三方客户端怎么区分
SFA:官方 Android 图形客户端,负责配置管理、启动服务、VPN 权限和 Android 平台功能。
sing-box Core:负责读取 JSON 配置并执行入站、出站、DNS、路由和 TUN 等功能,本身不等同于完整的 Android 图形界面。
NekoBox:第三方 Android 客户端,项目说明显示其使用 sing-box,但它有自己的界面和配置处理逻辑;遇到导入失败时,应按照实际使用的客户端查对应文档,不要把 SFA 的菜单名称套到其他应用上。NekoBox 项目仓库说明
如果你的目标只是把一条 sing-box 远程配置导入 Android,优先选择发布组织和下载渠道都能在官方页面核对的 SFA;如果手里只有 Clash YAML 或通用 Base64 订阅,则先向配置提供方确认是否存在 sing-box 格式,不能因为链接末尾是“订阅”就假定所有客户端都兼容。
常见问题
sing-box 安卓版和 SFA 是什么关系?
sing-box 是核心项目,SFA 是官方 Android 图形客户端,用于管理本地或远程 sing-box 配置并调用 Android VPN 功能。第三方客户端即使使用 sing-box 核心,菜单和兼容格式也可能不同。
为什么 Clash 订阅不能直接导入 SFA?
Clash YAML 是另一种配置格式,通用 Base64 也通常只是节点列表,不等于完整 sing-box JSON。应向配置提供方索取 sing-box 格式,或使用支持原格式的客户端。
SFA 显示 VPN 图标,但为什么还是打不开网页?
先看 Logs 是否有 DNS、连接超时或出站选择错误,再检查 Groups 是否选中有效线路、分应用代理是否排除了当前应用,最后关闭电池限制并分别验证出口 IP 和目标网站。
Groups 页面为空是不是配置导入失败?
不一定。Groups 通常依赖配置中存在 Selector 或 URLTest 等组出站;如果配置只有单个出站,Groups 为空可能是正常表现。
远程配置更新失败应该先查什么?
先在浏览器打开远程地址,确认返回的是完整 JSON,而不是登录页、错误页或空内容;再检查 URL 是否过期、手机网络是否可访问,以及配置提供方是否限制了请求。