← 返回博客

2026年订阅转换与Sub-Store完全指南:机场订阅格式互转、多机场合并与节点管理实战

📌 一分钟总结

机场订阅格式(Clash/v2ray/Sing-Box/Surge)互转实战:在线转换、本地subconverter、Sub-Store自建三条路线对比,多机场订阅合并、节点过滤、正则重命名、Docker部署全流程,附常见问题。

很多人第一次遇到「订阅格式」这个词,是在换了客户端之后:机场后台明明给了订阅链接,粘贴到新客户端里却报错,或者只导入了一半节点。更常见的场景是——手里有两三个机场的订阅,想在 Clash Verge Rev 里一起用,却发现每个订阅的节点名、分组方式完全不一样,策略组里乱成一锅粥。这些问题,靠的不是换客户端,而是搞懂「订阅转换」和「订阅管理」这两件事。

本文是面向 2026 年的完整实战指南:先讲清楚机场订阅到底有哪几种格式、为什么要转换;再对比在线转换、本地转换和 Sub-Store 自建三条路线;最后用完整的操作步骤,把多个机场的订阅合并成一份好用的配置,并转换到 Sing-Box、Shadowrocket 等不同客户端。全程有具体命令和配置示例,照着做就能解决。

一、先搞懂:机场订阅链接到底是什么

机场后台「复制订阅链接」复制出来的,本质是一个 URL。浏览器打开它,会下载到一个文本文件——这个文件里写的就是你的节点列表(服务器地址、端口、密码、协议参数等)。之所以叫「订阅」,是因为客户端会定期(默认 24 小时)重新请求这个 URL,机场侧一旦更新节点,客户端会自动同步。

关键点在于:这份文本的「格式」不是统一的。机场按自己的技术栈生成不同格式的订阅,而不同客户端只认其中一种或几种。这就是一切转换需求的根源。

1.1 常见订阅格式一览

格式本质主要使用客户端
SS / SSR 订阅Base64 编码的节点 URI 列表Shadowrocket、v2rayNG、老版 Clash
Clash 订阅(YAML)YAML 配置文件,含 proxies / proxy-groups / rulesClash Verge Rev、ClashX、Stash、FlClash
v2ray 订阅(Base64)Base64 编码的 vmess / vless / trojan URIv2rayN、v2rayNG
Sing-Box 订阅(JSON)JSON 配置文件,含 outbounds / routesing-box、SFI/SFA
Surge 配置(conf)Surge 专属语法Surge(macOS / iOS)

主流的机场后台通常同时提供 Clash 格式和 v2ray 格式两种订阅链接。比如自由猫这类老牌机场,后台「一键订阅」区域会把 Clash、v2ray、SS 等格式分开放好,对应不同客户端。如果你的机场只给了单一格式,而你要用的客户端不认——那就轮到订阅转换出场了。

1.2 为什么不能直接「复制粘贴」

三个最典型的失败场景:

  • Clash 订阅喂给 Sing-Box:Sing-Box 只认 JSON,把 YAML 粘进去直接报「配置解析失败」。
  • v2ray 订阅喂给 Surge:Surge 认 conf 语法,Base64 列表导入后一个节点都显示不出来。
  • 机场只给 Clash 订阅,而你想用 Stash 的进阶功能:Stash 虽然兼容 Clash 格式,但部分高级配置(如按域名分组)需要规整的结构,原样导入会丢失分组信息。

理解这一点后,你会发现「转换」其实不是玄学——就是把一种格式的节点信息,翻译成另一种格式,同时尽量保留节点分组、备注等元数据。

二、三条路线:在线转换、本地脚本、Sub-Store 自建

订阅转换的工具有很多,但按部署方式可以归成三条路线。先看全景对比,再逐个展开。

路线代表工具适合人群隐私风险功能上限
在线转换站subconverter 公共站、机场自带转换偶尔转一次的普通用户高(订阅链接明文经过第三方)低(单次转换)
本地转换脚本subconverter 本地版、acl4ssr 等有一定动手能力的进阶用户低中
Sub-Store 自建Sub-Store(Docker / 远程部署)多机场、多设备的重度用户低(数据在自己手里)高(订阅合并/过滤/重命名/脚本)

我的建议很直接:如果你只有一个机场、一个客户端,在线转换站够用;如果你有两个以上机场,或者要在电脑、手机、软路由上分别用不同客户端,直接上 Sub-Store——它解决的不只是「转换」,而是「订阅管理」这一整类问题。

2.1 在线转换站:方便但要注意隐私

在线转换的原理很简单:把订阅链接粘贴到转换站,选好目标格式,点转换,拿到新链接或文件。公共转换站(比如各种 subconverter 前端)会用你提供的订阅 URL 去拉取节点信息,再按目标模板生成新配置。

这里有一个必须提醒的坑:你的订阅链接里带着机场账号的身份信息(有的机场订阅链接本身就是一个带 token 的 URL)。把链接交给第三方转换站,等于把账号的订阅权限交给了对方。正规机场的订阅 token 通常只能拉节点不能改密码,但泄露后别人可以消耗你的流量,部分机场还支持用订阅 token 查看用量甚至重置。建议:

  • 只在信誉好的转换站操作,用完不要在聊天软件里转发完整订阅链接;
  • 尽量使用机场后台自带的转换功能(如果有);
  • 对隐私敏感的节点(比如带真实身份信息的专线、住宅 IP 节点),不要走公共转换站。

说到住宅 IP,仙路湾这类主打原生 IP / 住宅 IP 的机场,节点信息本身比较敏感,更建议用下面两种「数据不出自己设备」的方案来管理。

2.2 本地转换:subconverter 跑在自己机器上

subconverter 是订阅转换领域的事实标准,开源、支持几乎所有格式互转。它既可以部署成服务,也能用命令行直接跑。本地跑的好处是订阅链接只在自己机器上处理,隐私问题消失。

最简单的本地用法(以 Linux/macOS 为例):

# 下载 subconverter 并解压
wget https://github.com/tindy2013/subconverter/releases/latest/download/subconverter_linux64.tar.gz
tar -xzf subconverter_linux64.tar.gz && cd subconverter

# 修改配置文件,指向你的订阅
# 编辑 subconverter 目录下的 profile.conf,把 [target] 段的 url 换成你的订阅链接

# 启动服务(默认监听 25500 端口)
./subconverter

# 请求转换:把 Clash 订阅转成 Sing-Box JSON
# 打开浏览器访问:
# http://127.0.0.1:25500/sub?target=singbox&url=你的订阅链接

本地跑 subconverter 的体验:功能全、隐私好,但每次改规则模板要改配置文件,日常维护偏「程序员向」。如果你要的是「可视化地管理多个订阅」,往下看 Sub-Store。

三、Sub-Store:多机场订阅管理的核心工具

Sub-Store(GitHub 上搜索 substack 社区维护的 substore 项目)是目前多机场用户里口碑最好的订阅管理工具。它解决的问题比「转换」高一个层次:把多个机场的订阅,当成数据源来统一管理——合并、去重、过滤、重命名、排序、按需生成不同客户端的订阅链接,全部可视化完成。

3.1 部署:Docker 一键起服务

Sub-Store 支持本地部署和远程部署(部署到 VPS 上,所有设备共用)。本地部署最简单:

# 本地部署(Windows / macOS / Linux 均可)
# 用 Node.js 直接跑:
git clone https://github.com/sub-store-org/Sub-Store.git
cd Sub-Store && npm install
node ./sub-store.js

# 或者用 Docker(推荐,省去 Node 环境问题):
docker run -d --name substore -p 3000:3000 -v $(pwd)/data:/opt/app/data xream/sub-store

启动后浏览器打开 http://127.0.0.1:3000,进入后台。第一次使用先设置一个访问密码(防止局域网内别人访问你的订阅管理界面)。

远程部署建议:如果你的主力设备是手机(iOS 的 Shadowrocket / Stash 更新订阅时需要一个公网可达的链接),把 Sub-Store 部署到一台 VPS 上,或者用 Cloudflare Worker 版本(Sub-Store 官方提供了 Worker 部署方案,免费额度够个人用)。部署到远程后,所有设备都从同一个地址拉订阅,管理一次、处处生效。

3.2 核心界面:订阅源(Source)与订阅(Subscription)

Sub-Store 有两个容易混淆的概念:

  • 订阅源(Source):你添加的原始机场订阅链接,是「输入」。
  • 订阅(Subscription):你基于订阅源生成的、供客户端使用的最终链接,是「输出」。

流程是:添加订阅源 → 在订阅源上做过滤/重命名/排序 → 生成一个或多个订阅(不同格式)→ 把订阅链接填进客户端。这样机场原始链接只存在于 Sub-Store 里,客户端接触到的都是你加工后的订阅。

四、实战一:多机场订阅合并,生成一份 Clash 配置

这是 Sub-Store 最常用的场景:把两三个机场合并成一份订阅,在 Clash Verge Rev 里当成一个订阅管理,配合策略组实现自动选优。

4.1 添加订阅源

# 在 Sub-Store 后台「订阅源」页,点新增,填入:
# 名称:机场A(举例,真实填写你的机场名)
# URL:机场后台复制的订阅链接(Clash 或 v2ray 格式均可)
# 类型:按链接实际格式选 Clash / V2Ray / SS 等

把每个机场都添加为独立的订阅源。比如你有一个主用机场和一个备用机场,加上一个专门看流媒体的机场,三个源各自独立、互不干扰。这里以万达云这类中转+专线组合的机场为例:它的订阅里通常同时包含中转节点和 IEPL 专线节点,在 Sub-Store 里你可以用过滤规则只保留专线节点,生成一个「只看专线」的订阅,用于延迟敏感的场景。

4.2 节点过滤:只留你需要的

机场订阅动辄几十上百个节点,很多是不同地区、不同线路的重复项。Sub-Store 支持用正则表达式过滤:

# 保留规则(include):只保留名字含 HK 或 JP 的节点
HK|JP

# 排除规则(exclude):去掉名字含「测试」或「过期」的节点
测试|过期

# 举例:只想留 IEPL 专线,不想看中转
include: IEPL

过滤规则可以叠加在订阅源上,也可以只作用于某个订阅(输出),灵活度很高。

4.3 重命名与排序

多机场合并后最头疼的是节点名混乱。Sub-Store 的重命名功能用正则替换解决:

# 把节点名前统一加上机场标识,方便识别
# 示例:原始节点名「香港 01」,替换为「A机场-香港 01」
匹配: ^香港
替换: A机场-香港

# 去掉节点名里的表情符号和多余空格
匹配: [^\x00-\x7F]|\s+
替换: 

排序规则可以按「延迟优先」「名字排序」「手动排序」配置,生成订阅时节点顺序就是你看到的样子。

4.4 生成订阅并导入 Clash Verge Rev

在「订阅」页新建一个订阅,选「Clash」格式,绑定刚才配置好的订阅源(可以绑多个源,实现自动合并),保存后复制生成的订阅链接,粘贴到 Clash Verge Rev 的订阅管理里即可。

导入后的进阶玩法——策略组配置(负载均衡、故障转移、按规则分流)——在《Clash Verge Rev 从入门到精通》和《多机场订阅管理与策略组高级配置》里都有完整的配置示例,这里不重复展开。简单说:合并订阅只是第一步,真正提升体验的是用 url-test 策略组让客户端自动选延迟最低的节点,用 fallback 实现机场故障自动切换。

五、实战二:转换到 Sing-Box 与 Shadowrocket

合并好的订阅,在 Sub-Store 里可以同时输出多种格式,覆盖你所有的客户端。

5.1 转 Sing-Box JSON

Sing-Box 是 2026 年增长最快的客户端之一(性能和资源占用优势明显),但它只认 JSON 配置。在 Sub-Store「订阅」页新建订阅时,格式选「Sing-Box」,生成的链接就能直接导入 sing-box / SFI / SFA。转换时会自动生成 outbounds 和基础 route,DNS 部分建议对照官方推荐配置微调。

Sing-Box 的完整配置思路(出站、路由、DNS 分层)见《Sing-Box 完全配置指南》,那里有从零到进阶的完整步骤,包括怎么把转换出来的 JSON 和自定义规则合并。

5.2 转 Shadowrocket / Stash / Surge 格式

iOS 用户如果主力是 Shadowrocket,直接生成「Shadowrocket」格式的订阅链接即可;Stash 用户生成「Stash」或「Clash」格式;Surge 用户生成「Surge」格式。Sub-Store 支持的输出格式覆盖了主流客户端,一个订阅源、多格式输出,省去了每换一个客户端就重新转换一次的麻烦。

这里提醒一个细节:不同客户端对「订阅」的刷新策略不同。Shadowrocket 默认在打开 App 时刷新,Clash Verge Rev 按你设置的更新时间(建议 6-24 小时)刷新,Sing-Box 需要手动或按 cron 刷新。订阅链接里的节点变动,最长会在一个刷新周期后同步到客户端,不用每次手动重新导入。

5.3 延迟敏感场景的节点选择

如果你的用途是远程办公、视频会议这类对延迟和稳定性要求高的场景,建议在策略组层面做兜底:让客户端在多个节点间自动选择。纯 IEPL 专线机场(比如SS-ID)因为全程专线、晚高峰丢包低,在长时间稳定连接场景下表现更好;中转机场胜在价格便宜、节点数量多。用 Sub-Store 把两类节点分开管理,再在客户端里配置「自动选优 + 故障切换」,是兼顾成本和稳定性的做法。

六、常见问题

Q1:订阅转换会泄露我的机场账号吗?

取决于路线。在线转换站会接触你的完整订阅链接(含 token),有一定风险;本地 subconverter 和 Sub-Store 自建,订阅链接只在你自己的设备/服务器上处理,不经过第三方。敏感账号建议走自建路线。

Q2:转换后的订阅多久更新一次?

客户端按自己的订阅刷新周期拉取转换后的链接。转换链接本身是「实时生成」的——每次客户端请求,Sub-Store 都会去拉取原始订阅源再重新生成。所以机场侧节点更新后,最长一个客户端刷新周期内就会同步。

Q3:多个机场合并后,怎么知道哪个节点属于哪个机场?

用 Sub-Store 的重命名功能,给每个订阅源的节点加上前缀(如「A-」「B-」)。也可以按机场分别生成独立订阅,在客户端里用多个订阅 + 策略组管理,方案见多机场订阅管理那篇。

Q4:免费机场的订阅能转换吗?

能,只要订阅链接是标准格式。但免费机场的节点质量参差不齐,转换不会提升稳定性;且免费机场的订阅链接往往带广告或失效快,建议转换前先确认源可用。

Q5:Sub-Store 一定要部署在服务器上吗?

不一定。本地部署 + 局域网使用完全够个人用;只有当你需要在手机端(尤其 iOS 客户端)拉取订阅、或者多台设备共用时,才需要部署到公网可达的地方(VPS 或 Cloudflare Worker)。

Q6:转换后节点全部导入失败是什么原因?

最常见的原因是订阅源格式选错(把 Clash 订阅当 v2ray 导入),或者订阅链接本身已失效。先在浏览器里打开订阅链接确认能下载到内容,再检查 Sub-Store 订阅源的「类型」是否匹配。

七、总结与选择建议

订阅转换这件事,一句话总结:偶尔转换用在线站,追求隐私用本地 subconverter,多机场重度用户直接上 Sub-Store。工具本身不复杂,关键是搞清楚「格式」和「订阅管理」这两个概念——格式决定能不能导入,管理决定好不好用。

最后给三个实操建议:

  • 订阅链接属于敏感信息,不要在群聊、网盘、公开笔记里转发完整链接;
  • 多机场用户务必用 Sub-Store 统一管理,别在客户端里堆一堆原始订阅,后期维护成本极高;
  • 换客户端前先确认它支持什么格式,再决定是转换订阅还是换订阅来源。

配置完订阅之后,如果你还想把客户端玩得更深,强烈建议读一读下面这几篇:Clash Verge Rev 的策略组进阶、多机场故障转移的完整方案,以及 Sing-Box 的从零配置——它们和本文正好形成一条「订阅 → 客户端 → 策略」的完整链路。