第三方机场配置文件转换:YAML、Base64 与 sing-box JSON 怎么处理
简答:机场配置文件转换不能只改文件后缀:先识别内容是 Mihomo/Clash YAML、URI、Base64 订阅还是 sing-box JSON,再使用目标客户端支持的格式转换或重新整理字段,最后通过客户端导入和内置检查确认。
定义:机场配置文件转换,是把订阅链接、节点 URI、Mihomo/Clash YAML 或 sing-box JSON 按目标客户端支持的字段结构重新整理,而不是简单修改文件扩展名。
先判断你手里的文件是什么格式
本站是第三方使用指南站,不是任何订阅服务或客户端的官方站点。所谓“机场配置文件”通常不是一种固定格式,常见内容包括 Mihomo/Clash YAML、单条或多条节点 URI、Base64 编码的 URI 列表,以及 sing-box 使用的 JSON 配置。Mihomo 文档明确区分了 YAML、URI 和 Base64 三类代理提供者内容,而且这三类内容不能直接混写在同一个文件中;sing-box 官方文档则说明其配置文件使用 JSON 结构。Mihomo 代理提供者内容说明 sing-box 配置文件说明
| 看到的内容 | 通常是什么 | 下一步 |
|---|---|---|
以 proxies:、proxy-groups:、rules: 开头 | Mihomo/Clash YAML | 优先导入支持 Clash/Mihomo 配置的客户端;不要直接改成 JSON 后缀 |
以 ss://、vmess://、trojan:// 等开头 | 节点 URI | 使用目标客户端的“从剪贴板导入”或“添加节点”功能 |
| 是一长串看似随机的字母数字,解码后出现 URI | Base64 编码的订阅内容 | 先确认来源可信,再在支持订阅的客户端中添加链接或解码后整理 |
以 { 开头,包含 inbounds、outbounds、route | sing-box JSON | 使用 sing-box 兼容客户端导入,并运行配置检查 |
如果文件只有一个订阅链接、节点列表或编码文本,而没有完整的端口、入站、路由和 DNS 配置,它更像“节点集合”或“代理提供者内容”,不一定能直接当作完整配置文件使用。
通用转换步骤:先备份,再识别,再验证
- 保存原始文件。先把原文件复制一份,保留原始扩展名和内容。不要把订阅链接、节点 URI、UUID、密码、私钥或访问令牌公开粘贴到不明转换网站。本文不提供绕过访问控制或处理来历不明配置的办法。
- 检查文件头和关键字段。用文本编辑器打开文件,查看是否出现
proxies、proxy-providers、proxy-groups、inbounds、outbounds、route等字段。YAML 对缩进敏感,常见问题是 Tab 缩进、冒号后缺少空格、字符串中包含未转义的特殊字符。 - 确认目标客户端。如果目标是 Mihomo/Clash 系客户端,优先使用 YAML 或代理提供者格式;如果目标是 sing-box,配置主体应符合 JSON 结构。不要把 Mihomo 的
proxy-groups、rule-providers等字段原样复制到 sing-box,因为两者的配置模型和字段名称并不相同。Mihomo 官方文档将代理组、代理提供者和入站配置分别定义;sing-box 官方文档则把入站、出站、DNS 和路由放在不同顶层字段中。Mihomo 代理组配置 Mihomo 入站配置 sing-box 入站配置 sing-box 路由配置 - 优先使用客户端自身的导入功能。在客户端中找到“订阅”“配置”“Profiles”或“添加远程配置”等入口,粘贴订阅链接或选择本地文件。中文界面名称可能不同,英文界面常见为 Profiles、Proxies、Connections;应以当前客户端显示为准。
- 转换后检查语法。sing-box 官方提供
sing-box check检查配置,并提供sing-box format -w -c config.json -D config_directory格式化配置。先检查语法,再启动客户端,不要把“文件能打开”误认为“配置可用”。sing-box 检查、格式化与合并命令 - 启动后逐项验证。先确认配置是否成功加载,再查看入站端口、代理组、节点名称、DNS 和路由规则。若节点显示为空,检查订阅是否过期、返回内容是否为 HTML 登录页、Base64 是否解码失败,以及目标客户端是否支持该节点协议。
Mihomo/Clash YAML 转换与排错
Mihomo 配置通常以 YAML 表示。完整配置可能包含代理节点、代理组、规则提供者、DNS、TUN 或端口等部分;只包含节点 URI 的文本则需要先被客户端解析为代理列表,不能直接当作完整 YAML。Mihomo 官方文档还支持通过 proxy-providers 引用远程或本地代理提供者,并设置更新间隔、健康检查地址和超时时间。Mihomo 代理提供者配置
- 打开客户端的“订阅”或“Profiles”页面,添加远程订阅或导入本地 YAML。
- 进入“代理”或“Proxies”页面,确认代理组和节点列表是否出现。
- 如果使用代理提供者,检查配置中的
type是否为http、file或inline,并确认远程地址、保存路径和更新间隔字段位置正确。 - 如果要做节点健康检查,应使用客户端或 Mihomo 代理组提供的 URL 测试功能。Mihomo 文档将代理组健康检查定义为基于 URL 的检查,并通过
url、interval和timeout控制;这不是对节点进行 ICMPping。Mihomo 代理组健康检查字段
不要用系统命令 ping 的结果直接判断代理节点是否可用。在普通系统代理模式下,ICMP 流量通常不会经过代理客户端;启用 TUN、fake-ip 或流量劫持后,结果还可能受到虚拟地址和 DNS 处理影响。节点延迟应优先看客户端代理组的 URL 测试结果,再结合实际网页、文件传输或办公连接进行验证。
Mihomo YAML 转 sing-box JSON:哪些内容不能直接照搬
Mihomo YAML 转 sing-box JSON 通常不是机械改格式,而是按功能重新映射。Mihomo 的节点、代理组和规则提供者,需要分别对应到 sing-box 的出站、路由规则和规则集;Mihomo 的 mixed-port、tun、DNS 和规则字段,也不能保证在 sing-box 中存在同名字段。
| 原配置中的功能 | 转换时要确认 | 常见失败表现 |
|---|---|---|
| 节点 | 协议、服务器地址、端口、认证信息、TLS 与传输参数是否被目标客户端支持 | 节点能显示但连接失败 |
| 代理组 | 手动选择、自动选择、故障转移等逻辑是否需要重新建立 | 只有节点,没有可选择的策略组 |
| 规则 | 域名、IP、规则集和最终出站是否重新对应 | 部分网站直连或全部流量走同一出口 |
| DNS | 服务器、解析策略、fake-ip 或其他虚拟地址行为是否兼容 | 域名解析失败、应用显示网络错误 |
| TUN | 系统权限、路由接管、DNS 劫持和自动网卡检测是否重新配置 | 客户端启动但应用不经过代理,或出现路由循环 |
sing-box 官方配置结构包括 dns、inbounds、outbounds 和 route 等顶层字段;其路由文档还说明 auto_detect_interface 可用于 TUN 场景下绑定默认网卡以避免路由循环。转换后应逐项检查这些功能,而不是只确认 JSON 能通过语法检查。sing-box 配置结构 sing-box 路由与自动网卡检测
转换失败时按这个顺序排查
- 文件无法导入:先确认扩展名与实际内容一致,再检查 YAML 缩进或 JSON 括号;不要只改文件名后缀。
- 订阅导入后没有节点:检查订阅响应是否为空、是否返回登录页面、是否需要特定请求头,以及客户端是否支持返回的节点协议。
- 节点出现但无法连接:核对服务器域名、端口、UUID、密码、TLS 服务器名称、传输路径和证书校验设置。任何一项缺失都可能导致连接失败。
- 网页能打开但命令行不通:区分系统代理、应用代理和 WinHTTP 代理。PowerShell 中调用网络工具时可明确使用
curl.exe,并单独检查该程序是否读取系统代理设置。 - 开启 TUN 后异常:先关闭 TUN,仅保留系统代理测试;再检查 DNS、默认路由、自动网卡检测和权限。不要用 TUN 状态下的
ping结果代替客户端 URL 测试。 - 转换网站要求粘贴完整订阅:除非你能确认网站的运营方、处理方式和隐私政策,否则不要上传包含节点凭据的内容。更稳妥的方式是使用目标客户端原生导入,或在本地按照官方配置文档重新整理。
常见问题
机场配置文件转换是不是改成 .json 或 .yaml 就可以?
不是。扩展名只表示文件名后缀,不能改变内容结构。YAML、URI、Base64 和 sing-box JSON 的字段组织不同,必须先识别格式,再按目标客户端的配置模型导入或重建。
Base64 订阅解码后为什么不能直接导入 sing-box?
Base64 通常只是编码方式,解码后可能得到多条节点 URI 或其他订阅文本,并不等于完整 sing-box JSON。sing-box 还需要符合其 inbounds、outbounds、route 和 DNS 等结构,必要时需要重新生成配置。
Clash 或 Mihomo 配置能不能直接导入 sing-box?
不能保证。简单节点信息有时可以被第三方工具转换,但代理组、规则提供者、DNS、TUN 和传输参数可能需要人工核对。转换后应使用 sing-box 的 sing-box check 检查,并实际测试入站、出站和路由。
转换后节点延迟很高,应该用 ping 判断吗?
不建议直接用 ping 判断代理节点延迟。系统代理模式下 ICMP 通常不经过客户端,TUN 或 fake-ip 模式也可能使结果失真。应在客户端代理组中使用 URL 测试功能,并确认测试地址、超时和节点选择逻辑。
订阅链接和配置文件有什么区别?
订阅链接通常用于获取远程节点或配置内容,客户端会按订阅格式解析并更新;本地配置文件则是已经保存到设备上的 YAML 或 JSON 等文本。订阅能否更新、返回什么格式和需要哪些请求参数,应以提供方和客户端实际支持为准,无法核实的内容不要自行推断。
常见问题
机场配置文件转换是不是改文件后缀?
不是。先识别 YAML、URI、Base64 或 sing-box JSON,再按目标客户端支持的字段结构导入或重建。
Mihomo 配置可以直接转成 sing-box 吗?
不能保证。节点、代理组、规则、DNS 和 TUN 的配置模型不同,转换后必须重新核对字段并运行 sing-box check。
为什么转换后没有节点?
检查订阅返回内容、Base64 解码结果、节点协议兼容性、请求头和配置中的代理提供者路径;如果返回的是登录页或错误页,客户端通常无法解析。
转换后能不能用 ping 测节点?
不建议。系统代理模式下 ICMP 通常不经过代理客户端,TUN 或 fake-ip 模式下结果也可能失真,应优先使用客户端的 URL 测试功能。