问答
机场订阅转换是什么:什么时候需要、第三方转换服务的风险与替代办法
按意图看,搜「订阅转换」的人多半想找一个能用的转换网址。这里不给公共网址,给的是三样东西:怎么判断要不要转,交给别人转会交出去什么,非转不可时怎么在自己手里转。客户端怎么挑另有一篇,见代理客户端怎么选。
订阅转换解决什么:格式对不上
按格式看,订阅转换只做一件事:把机场返回的订阅内容改写成另一种格式。机场后台给的订阅地址,打开后常见三种样子。
| 格式 | 内容 | 常见叫法 |
|---|---|---|
| Base64 | 一串编码字符,解开是 ss://、vmess://、vless:// 开头的分享链接 | 通用订阅、V2Ray 订阅 |
| YAML | 一份配置文本,有节点、分组、分流规则 | Clash 订阅 |
| JSON | 大括号开头,节点写在 outbounds 里 | sing-box 订阅 |
客户端只认其中一两种。机场只给 YAML,你手上的客户端只读 Base64,导入就会报错或显示 0 个节点。转换器夹在中间,读进一种,吐出另一种。
所以要不要转,先看两头:机场给了哪几种,客户端认哪几种。两头对得上,就用不着转换。词义见词汇:订阅链接。
一次转换经过谁的手
按路径看,用网页版转换站的流程是这样:
- 你把机场的订阅地址贴进网页,选目标格式。
- 网页拼出一条新地址,形如「转换服务地址/sub?target=clash&url=你的订阅地址」。
- 客户端每次更新订阅,都去请求这条新地址。
- 转换服务收到请求,拿你的原地址去机场拉节点,改写后返回给客户端。
这里有两处要看清。一是网页和后端常常不是同一方:前端页面谁都能搭,真正拿着你的地址去拉节点的是后端服务器,后端是谁,页面上未必写。二是新地址里原样带着你的原地址,只是做了网址编码,谁拿到新地址,等于拿到原地址。
很多转换页还有「远程配置」一栏,填的是另一个人放在网上的规则模板。分组、分流、DNS 怎么写,由这份模板决定,这又多了一方。
交出订阅地址,等于交出什么
按凭证看,订阅地址就是账号钥匙:不用密码,凭它就能拉到你的全部节点。交给第三方服务器,可能的后果有四类。
| 后果 | 怎么发生 | 你能看到的迹象 |
|---|---|---|
| 地址外流 | 服务端记录请求日志,日志被保存、转卖或泄露 | 流量走得比平时快 |
| 被统计 | 服务端汇总经手的订阅,知道你用哪家、什么套餐 | 看不到 |
| 返回内容被改 | 多插几个节点、改分流规则或 DNS,让部分流量绕到别处 | 节点列表里出现陌生名字,规则里多出不认识的域名 |
| 服务停掉 | 公共服务关站或被封,客户端更新失败 | 更新订阅报错,节点停在旧版本 |
前三类从外面查不出有没有发生,只能按「可能发生」处理。流量被别人用了,扣的是你的套餐;返回内容被改,节点和规则都可能不是机场给的原样。
处理办法只有一条:用过公共转换站,就回机场后台重置订阅。重置会让旧地址作废,代价是每台设备都要重新导入一次。
多数时候不需要转:先查两处
按出处看,转换之前,先把机场和客户端两头各查一遍。
机场这头。登录后台,看订阅区域是不是给了多条地址,或者有格式切换按钮。不少面板会按客户端发来的标识返回不同格式,同一条地址,Clash 系拉到 YAML,v2rayN 拉到 Base64。也有面板支持在地址后面加参数指定格式,参数怎么写看该家帮助文档。
表上 22 家里,资料写到订阅形式的有 6 家:
- 跨界云官网写给标准订阅链接,常见客户端能直接导入。
- 闪跃官网写自家客户端之外,通用客户端也能导订阅。
- 一翻云官网写一键导入用的订阅后台不直接给,要找客服要。
- 飞猫云、星岛梦的资料写订阅要找在线客服开通。
- 暮光加速的资料写不给通用订阅链接。
后 4 家,买完先问客服给的是哪种格式、能不能换一种,问清了多半不用转。其余 16 家资料里没写,看该家帮助文档。各家写了什么,可在全表逐家对。
客户端这头。Hiddify、Karing 这类多格式客户端,YAML、Base64、JSON 都能读,转换在应用里就做完了。mihomo 内核的配置里,proxy-providers 也能读部分 Base64 订阅,能读哪些看内核版本说明。换一个认原格式的客户端,往往比找转换器省事。
必须转时:本机、自建、客户端内三条路
按控制权看,转换在谁的机器上跑,订阅地址就在谁手里。下面三条路,地址都不出你自己的设备或服务器。
本机跑转换器。subconverter 是开源转换后端,网页转换站多半用它。从项目仓库的发布页下载对应系统的版本,解压后运行,默认端口 25500。启动前在 pref 配置文件的 server 段把监听地址改成 127.0.0.1,只让本机访问。然后在客户端里填:
http://127.0.0.1:25500/sub?target=clash&url=网址编码后的订阅地址
target 换成别的取值,就输出别的格式,取值表在项目文档里。局限是:客户端更新订阅时,这台电脑上的转换器得开着;手机连不到电脑的 127.0.0.1。只想转一次的,把返回内容存成文件,以本地配置导入,代价是不再自动更新。
自建服务。有 VPS 或 NAS 的,可用 Docker 跑同一个后端:
docker run -d --restart=always -p 25500:25500 tindy2013/subconverter:latest
两点要守住:不直接开放到公网,只在内网用,或在前面加访问控制;不加载来路不明的远程配置,规则模板放在自己机器上。
客户端内转换。iOS 上可用 Sub-Store,它以脚本模块的形式跑在 Loon、Surge、Stash 这类付费应用里,订阅在手机上处理;也有 Node.js 版,可在自己的机器上跑。安卓和电脑上,直接用上一节说的多格式客户端。
三条路共有的两件事:只从项目主页、官方仓库的发布页下载,不用网盘转存版;转换器版本跟不上新协议时,及时更新。之前用过公共转换站的,换到自己手里之后,先重置一次订阅。
转换后导入失败怎么查
按现象看,先把转换后的地址拿到浏览器打开,看它返回什么,再对下表。
| 现象 | 常见原因 | 先查哪里 |
|---|---|---|
| 0 个节点 | 转换器拉不到原订阅:原地址已重置、网址没编码、机场拒绝了服务器的请求 | 浏览器打开原地址,看能不能拉到内容 |
| 节点少了几个 | 转换器不认某种协议或传输层写法,直接跳过 | 对照原订阅数节点,换新版转换器 |
| 提示配置解析失败 | 返回的是报错页,或 target 写错 | 看返回内容是不是配置文本 |
| 能导入,连不上 | 节点参数转丢,如 Reality 公钥、传输层设置 | 用原生客户端连同一节点对比 |
| 过一阵就失效 | 本机转换器没开,或公共服务停了 | 看更新报错的时间点 |
协议和传输层的写法见词汇:协议。原生客户端连得上、转换后连不上,问题在转换这一步,不在机场。两边都连不上,再去问机场客服。
客户端 × 订阅格式对照
按客户端看,下表列常见几款能直接导入的格式。这里没有逐款导入测过,表中「看版本」的,翻该客户端的版本说明。
| 客户端 | Base64 | YAML | JSON |
|---|---|---|---|
| Clash Verge Rev、FlClash(mihomo 内核) | 看版本 | 认 | 不认 |
| v2rayN、v2rayNG | 认 | 不认 | 看版本 |
| sing-box 官方客户端 | 不认 | 不认 | 认 |
| Hiddify、Karing | 认 | 认 | 认 |
| Shadowrocket | 认 | 看版本 | 不认 |
| Stash | 看版本 | 认 | 不认 |
表里「认」的一格,就不需要转换。一个格式在你用的几台设备上都「认」,就统一用这一种。手机、电脑一起换的,订阅怎么重新导入见换手机、换电脑后怎么搬。
一句话收尾:先找原生格式,再找原生客户端,两样都没有,才在自己手里转换。
本文提到的机场
- 跨界云机场¥20/月 · 120GB移步官网
- 闪跃机场¥8/月 · 60GB(年付)移步官网
- 一翻云机场¥20/月 · 150GB移步官网
- 飞猫云机场¥25/月 · 150GB移步官网
- 星岛梦机场¥25/月 · 150GB移步官网
- 暮光加速机场¥20/月 · 120GB移步官网
佣金怎么分 「方圆之外」页另一头的 22 家官网,都和方圆之内有佣金约定:你在那边付了款,这里分到一笔;没经这一页的,这里分不到。圆心和内圈七家是手定的,和佣金多少无关。
常见问题
- 用了公共转换站,要不要重置订阅?
- 要。公共转换站拿到过你的订阅地址,它存没存、给没给别人,从外面看不出来。回机场后台点重置订阅(各家叫法不同,有的叫更换订阅、重置链接),旧地址随之作废,再把新地址导进客户端。重置后旧设备会断开,每台都要重新导入。
- 转换后节点少了几个,正常吗?
- 常见,原因多在转换器一侧。转换器版本旧、不认某种协议或传输层写法,就会把那几个节点跳过,不报错。拿原订阅在能直接读它的客户端里数一遍节点,两边数目对不上,就换新版转换器,或改用能原生读这种格式的客户端。
- 机场给的「通用订阅」和「Clash 订阅」有什么区别?
- 节点通常是同一批,差在写法。通用订阅多是 Base64 编码的一串分享链接,只有节点;Clash 订阅是一份 YAML 配置,节点之外还带分组和分流规则。用哪条看客户端认哪种,具体各家给了哪几种,看该家后台或帮助文档。