Clash报unsupported proxy type hysteria2怎么办?换mihomo内核和手写节点配置
导入 Hysteria2 节点时,Clash 类客户端提示 unsupported proxy type: hysteria2,或者带着节点序号的 proxy 0 unsupport proxy type hysteria2,这是搜这个问题的人最常看到的几种写法。意思其实很直接:内核不认识 hysteria2 这个节点类型。节点本身大概率没有问题,问题出在跑配置的那个内核。服务端有没有搭好,可以先对照客户端导入连接里的排查顺序确认一遍。
先分清:Clash 不是一个东西
"Clash"这个名字现在指的是好几个东西,只有搞清楚你用的是哪一个,才知道该怎么办:
- 原版 Clash 内核:原作者的仓库我查询时已经访问不到(GitHub 接口返回 404),所以没有官方文档可以核对它是否支持 Hysteria2。它不再更新是确定的,而 Hysteria2 的支持是后来才加到 mihomo 里的,所以原版不支持是合理推断,不是我从官方文档查到的结论。
- mihomo 内核(也叫 Clash Meta):目前社区在维护的 Clash 内核。我查了它的更新记录:v1.16.0(2023 年 9 月 25 日发布)的更新说明里就有
support Hysteria2。官方文档里有专门的 hysteria2 节点配置页。 - 各种客户端:很多图形客户端只是壳,里面装的是 mihomo 内核。比如 OpenClash 的说明里写明它是 Mihomo(Clash) 客户端,clash-verge-rev 的说明里写着内置 Clash.Meta(mihomo) 内核,并支持切换 Alpha 版本内核。
所以报错的几种可能是:用的是不带 Hysteria2 的旧内核;内核是 mihomo 但版本比 v1.16.0 还老;或者节点配置本身写错了。
第一步:确认你用的内核和版本
不同客户端看内核信息的入口不一样,我不逐个写菜单路径,免得写错。通用的做法是:
- 在客户端设置里找"内核""Core"之类的页面,看它显示的是不是 mihomo 或者 Clash Meta,以及版本号。
- 能进命令行的环境(比如 OpenWrt),可以直接运行
mihomo -v查看版本,具体可执行文件名以你实际安装的为准。
如果显示的是原版 Clash 或者 Premium,就需要换内核;如果是 mihomo 但版本低于 v1.16.0,就升级。
第二步:换成 mihomo 内核
- 图形客户端:换一个内置 mihomo 内核的客户端,或者在设置里把内核切换成 mihomo。
- OpenWrt 的 OpenClash:它本身就是 Mihomo 客户端,按它的说明更新内核。
- 只想先验证节点是否可用:直接下载 mihomo 的官方发布版本,用它加载你的配置,能排除客户端软件的干扰。
这里要提醒:内核升级之后,配置字段也可能随版本有新增,比如端口跳跃相关的字段。想用新字段,除了内核要新,也要看更新说明有没有相应的支持,我这里没有逐个字段去核对是哪个版本加的。
第三步:按官方文档检查节点配置
mihomo 官方文档给的 Hysteria2 节点示例是这样的(只摘了常用字段):
1 | proxies: |
需要时再加上这些:
1 | ports: 20000-50000 # 端口跳跃的范围 |
官方文档里几点说明:
port在配置了ports时会被忽略,也就是用端口跳跃时以ports为准。up和down是带宽,没写单位的时候,默认单位是 Mbps。obfs可以填salamander或gecko,留空就表示不使用混淆。skip-cert-verify是跳过证书验证,官方提示它有安全上的影响。
分享链接的参数怎么对应
如果你手里是一条 hysteria2:// 链接,各参数和上面字段的对应关系,我是对照字段含义整理的,不是官方给出的一张对照表,仅供参考:
| 链接里 | mihomo 里 |
|---|---|
@ 前面的认证信息 |
password |
| 主机、端口 | server、port |
sni= |
sni |
insecure=1 |
skip-cert-verify: true |
obfs=salamander、obfs-password= |
obfs、obfs-password |
pinSHA256= |
fingerprint(官方文档描述为 SHA256 证书指纹) |
链接各参数本身的含义,见客户端导入连接那篇的表格。端口跳跃的服务端怎么配,见端口跳跃配置。
关于 up 和 down
在 Hysteria 官方的说法里,客户端写了带宽就启用 Brutal,不写就用 BBR,填大了会适得其反。这是 Hysteria 官方客户端的行为,mihomo 里 up、down 具体怎么影响拥塞控制,我没有核对过。不确定的话,先不要填一个很大的值,具体可以看速度慢怎么办里的排查思路。
订阅导入的几个注意点
用订阅链接导入时,还有两类常见情况:
- 订阅里根本没有 Hysteria2 节点:订阅是面板生成的,格式和内容取决于面板和订阅类型。面板导出的订阅里没有这个节点,客户端当然不会显示,先确认面板端节点是不是启用了、订阅有没有包含它。3x-ui 的 Clash 订阅导入可以看这篇。
- 订阅转换服务不认识新协议:如果中间经过订阅转换,转换器本身也可能不支持 Hysteria2,导致生成的配置里这个节点被丢掉或者写错。这时候换成手写节点配置,能最快判断问题出在哪一层。
排查顺序
- 看报错是不是"unsupported proxy type":是,就是内核不认识,先看内核。
- 确认内核是 mihomo,并且版本不低于 v1.16.0。
- 节点
type写成hysteria2,不是hy2,也不是旧的hysteria。 - 字段名和官方文档逐项对照,尤其是
password、sni、skip-cert-verify。 - 内核认出来了但连不上:这是另一类问题,回到服务端和客户端参数的对照,先确认 UDP 端口放行、证书验证选项和混淆设置,见客户端导入那篇的排查顺序。
这篇没有覆盖的
Surge、Loon、Quantumult X、Shadowrocket 这类 iOS 客户端对 Hysteria2 的支持,和 Clash 内核是两套体系,我没有核对它们各自的文档,所以这篇不写。想了解 Hysteria2 本身值不值得用,可以看优点和缺点那篇。