Hysteria2和TUIC能用吗:Shadowrocket支持哪些协议
一句话结论
Shadowrocket 对 Shadowsocks、Trojan、VMess、VLESS 等主流协议支持较早也较完整,对 Hysteria 系列、TUIC 等较新的 UDP 类协议则依赖版本更新,老版本可能直接无法解析该类节点。因此导入订阅后个别节点缺失或报错,应先确认 App 版本与协议支持范围,再判断是否为机场问题;选机场时也应确认其订阅能否输出 Shadowrocket 可读的格式。
有一类问题看起来像故障,其实是能力边界:订阅导入成功了,节点也出来了一批,可就是比机场后台里少几个;或者某个节点点下去连不上,换成同地区另一个立刻正常。多数人第一反应是订阅坏了、机场缩水了,于是反复重导、找客服,方向从一开始就错了。
小火箭在解析订阅时,遇到自己读不懂的协议类型,处理方式通常是安静地跳过,而不是弹窗告诉你「这条不认识」。所以现象是「少了」而不是「报错了」,这正是它容易被误判成机场问题的原因。
判断的抓手只有两个:客户端版本,和机场输出的协议种类。把这两件事对上,大部分「节点用不了」的疑问会在几分钟内收敛掉,不需要换机场,也不需要重装。
同一份订阅,为什么在小火箭里节点更少
先确认一个事实:订阅本身是一段文本,里面按行或按段描述每一个节点。不同客户端拿到的是同一份文本,但各自能解析的语法子集不同。
| 现象 | 在小火箭里的表现 | 指向的原因 |
|---|---|---|
| 节点总数比后台少 | 少的部分静默消失,没有提示 | 该协议当前版本无法解析 |
| 节点在列表里但连不上 | 能选中,一连就断或超时 | 协议识别了但参数不支持 |
| 节点名乱码或显示不全 | 名称异常,协议图标缺失 | 订阅格式与客户端预期不符 |
| 全部节点都没出现 | 导入后列表为空 | 订阅格式整体不匹配,不是协议问题 |
最后一行要单独拎出来:整份订阅都没落地,那是导入环节的问题,不属于协议兼容范畴,应该按订阅导入失败的报错分类去查。本篇讨论的是「导入成功、只是不全」这种情况。
哪些协议属于装上就能用的稳妥选择
按照小火箭长期以来的实现情况,可以粗略分成三档。需要说明的是,具体支持范围随版本变化,下表是选购和排查时的判断参考,不是某一版本的功能承诺。
| 协议 | 在小火箭中的一般情况 | 挑机场时的定位 |
|---|---|---|
| Shadowsocks | 支持时间最长,兼容性最稳 | 保底选项,几乎不会出问题 |
| Trojan | 支持成熟,配置项完整 | 主力选项之一 |
| VMess | 支持成熟,含常见传输层 | 主力选项之一 |
| VLESS | 较早加入,配合 TLS 使用为主 | 主力选项,需注意版本 |
| Hysteria 系列 | 由较新版本加入,老版本不解析 | 加分项,不宜作为唯一依赖 |
| TUIC | 由较新版本加入,老版本不解析 | 加分项,不宜作为唯一依赖 |
规律很清楚:基于 TCP 的老牌协议踩坑概率低,基于 QUIC/UDP 的新协议踩坑概率高。这不是小火箭一家的问题,新协议从诞生到各客户端普遍实现,中间总有一段时间差。想了解这几种协议本身的差别,可以看协议选择的入门专题。
较新的 UDP 类协议,在 iOS 上还有一层额外限制
即便客户端认得这种协议,也不代表在你的网络里跑得起来。UDP 类协议要求本地网络放行 UDP 流量,而校园网、公司网和部分移动网络会对 UDP 做限速或阻断。
结果就是一种很有迷惑性的组合:节点显示正常、延迟能测出来,实际用起来时快时断,换个地区节点也不见好。这时问题既不在小火箭也不在机场,而在接入网络。判断和回退方法在UDP 被限速的判断与回退里有完整流程。
挑机场时把 UDP 类协议当加分项而不是必需项。手上至少要有一组 TCP 系节点作为退路,遇到限 UDP 的网络能直接切过去,而不是当场没网可用。
App 版本过旧会造成哪些具体现象
版本这件事在 iOS 上有个特殊之处:如果你的 Apple ID 状态异常,可能根本收不到更新推送,于是长期停在一个老版本上而不自知。
| 版本状态 | 典型现象 | 处理 |
|---|---|---|
| 停留在数年前的版本 | 新协议节点大面积缺失 | 更新后重新拉取订阅 |
| 版本较新但非最新 | 个别最新协议不识别 | 更新到最新版再对照 |
| 无法更新 | App Store 不出现更新按钮 | 检查是否用错了 Apple ID 登录 |
| 更新后仍不识别 | 节点数量没有变化 | 转向订阅格式而非版本原因 |
最后一行是关键的分岔点:升级到最新版、手动拉取一次订阅之后如果节点数量还是没变,就说明问题不在客户端能力,而在订阅输出的写法上。这时再往版本方向使劲没有意义。
订阅转换能不能解决协议不兼容
要分清两类问题:
- 格式问题——协议本身支持,但订阅里字段的写法或编码方式客户端读不懂。这类问题转换服务能解决,本质是把同一批节点换一种写法重新描述一遍。
- 能力问题——客户端压根不实现这种协议。转换服务再怎么改写,也变不出客户端没有的功能,转出来的节点仍然连不上。
多数机场后台会直接提供面向不同客户端的订阅地址,优先用它自带的那一条,比自己找第三方转换服务稳妥——第三方服务会经手你的完整节点信息,包含服务器地址和凭据,不该随便交给来路不明的站点。
# 结构示例:机场后台通常会提供多条面向不同客户端的订阅地址
通用地址 https://sub.example.invalid/link?token=REPLACE_ME
客户端专用地址 https://sub.example.invalid/link?token=REPLACE_ME&flag=shadowrocket
上面只是形态示意,实际参数名各家不同,以你自己后台显示的为准。
挑机场时该确认的四件事
协议兼容最终取决于机场输出什么。下单前把这四条问清楚,比买完再排查省事:
- 是否提供面向该客户端的订阅格式。这是最基础的一条,没有专用地址时至少要确认通用地址能被正常解析。
- 主流 TCP 系协议是否齐全。哪怕主打新协议,也应该保留 Shadowsocks 或 Trojan 一类作为退路。
- 新协议是否覆盖全部节点还是仅个别线路。有些服务只在少数节点上开新协议,这决定了你能不能真的用上。
- 协议调整时是否会提前公告。机场单方面切换协议而不通知,会让老版本客户端在某天早上突然全部失效。
这些属于厂商公开资料能查到的规格信息,可以在各家的机场评测页面里对照。要注意的是,能查到的都是厂商声明的支持范围,实际能不能跑通还取决于你的客户端版本和所在网络。
只支持一种协议的机场,到底值不值得选
单一协议不等于不能用,风险在于没有备份路径。网络环境是会变的:换到一个封锁更严的 Wi-Fi、运营商调整了策略、或者该协议特征被针对性识别,只有一种协议时你没有第二个选项。
反过来,协议种类堆得多也不必然是好事。同一批服务器上开一堆协议,更多是营销层面的动作,真正决定体验的还是线路质量和落地负载。判断顺序建议是:先看线路和稳定性,再看协议是否至少有两类可切换,最后才看有没有最新协议。
如果你手上的订阅里协议种类不少、却不知道该点哪一个,选节点的先后顺序写在节点怎么选那一篇;想把某类协议的节点固定给特定用途,则要靠配置文件里的节点分组来实现。
小结
节点比后台少而且没有报错,首先怀疑协议解析能力,不是订阅出错。TCP 系的 Shadowsocks、Trojan、VMess、VLESS 稳妥,Hysteria 系列和 TUIC 依赖版本,升级客户端后必须重新拉取一次订阅才会补回。升级到最新版仍无变化,说明问题在订阅格式而非客户端能力,改用机场提供的专用订阅地址。UDP 类协议还要受本地网络限 UDP 的影响,手上永远留一组 TCP 系节点当退路。
常见问题
同一份订阅在电脑上有 30 个节点,小火箭里只有 24 个,是订阅出错了吗?
多数情况不是。缺掉的那几个通常是当前版本无法解析的协议类型,客户端读不懂就直接跳过,不会报错。把两边的节点名对一遍,缺的往往集中在同一类协议上。
把 App 更新到最新版,是不是就一定支持最新协议?
更新是必要条件而非充分条件。新协议的支持要等作者实现并通过审核上架,同时还要求订阅输出的字段写法和客户端的解析方式一致。更新后仍不识别,就要考虑订阅格式的问题。
订阅转换服务能解决协议不兼容吗?
只能解决格式问题,不能解决能力问题。转换可以把节点信息改写成小火箭读得懂的写法,但如果客户端本身不支持这种协议,转换出来的节点照样连不上。
只提供一种协议的机场值得选吗?
取决于是哪一种。只给主流 TCP 系协议一般够用,风险在于网络环境变化时没有备选;只给较新的 UDP 类协议则要先确认你的客户端和网络都能吃得下,否则等于买了用不了的东西。