使用 Mihomo、Clash Verge Rev 等客户端时,如果订阅中包含 Hysteria2 节点,经常会看到一段包含 server、port、password、sni 等字段的 YAML 配置。
对于刚开始接触 Hysteria2 的用户,最常见的问题包括:
- Hysteria2配置文件怎么写
- Hysteria2怎么配置到Mihomo
- Hysteria2 YAML格式是什么
- Clash怎么添加Hysteria2节点
- Hysteria2的server和port怎么填
- Hysteria2 password是什么
- Hysteria2 SNI怎么设置
- skip-cert-verify要不要开启
- Hysteria2 obfs怎么配置
- Hysteria2配置导入后为什么不能用
- Mihomo配置Hysteria2报Invalid Config
- Hysteria2节点显示Timeout怎么办
Hysteria2的配置并不复杂,但它和普通 Shadowsocks、VLESS、Trojan 节点使用的字段并不完全相同。
如果某一个关键参数填写错误,就可能出现:
配置可以导入,但节点无法连接;
或者:
配置文件直接无法加载。
本文按照 Mihomo / Clash Meta 常见 YAML 结构,讲清楚 Hysteria2 配置文件中的主要参数、正确写法以及常见错误。
Hysteria2 配置参数太复杂,想获取可直接导入 Clash / Mihomo 的稳定订阅线路?
获取稳定订阅线路一、先确认客户端是否支持Hysteria2
在写配置之前,首先确认客户端底层核心支持 Hysteria2。
目前常见的:
- Mihomo
- Clash Meta
- 部分新版Clash Verge Rev
通常具备较完整的 Hysteria2 支持。
而较老的传统 Clash 核心可能无法识别:
type: hysteria2
如果内核不支持,即使 YAML 写得完全正确,也可能提示:
Unsupported Proxy Type
或者:
unknown proxy type hysteria2
所以配置 Hysteria2 之前,第一步不是修改 YAML。
而是先确认:
当前使用的是支持 Hysteria2 的 Mihomo / Clash Meta 核心。
二、最基础的Hysteria2 YAML配置长什么样?
一个简化的 Hysteria2 节点可以写成:
proxies:
- name: HY2-US
type: hysteria2
server: example.com
port: 443
password: your-password
sni: example.com
skip-cert-verify: false
这是一个最容易理解的基础结构。
主要字段包括:
name
type
server
port
password
sni
skip-cert-verify
实际服务端还可能使用:
obfs
obfs-password
up
down
fingerprint
等更多参数。
三、type为什么必须写hysteria2?
在 Mihomo 配置中:
type
用于告诉核心当前节点使用什么协议。
Hysteria2 节点通常需要:
type: hysteria2
如果误写成:
type: hysteria
或者:
type: hy2
客户端可能无法识别。
常见结果包括:
Invalid Config
或者:
Unsupported Proxy Type
所以不要自行缩写协议名称。
四、name参数是什么?
例如:
name: HY2-US
这个字段只是节点在客户端中显示的名称。
可以改成:
name: 美国Hysteria2
或者:
name: 美国高速01
一般不会影响协议本身。
但要注意:
如果 Proxy Groups 已经引用:
HY2-US
你把节点改成:
美国Hysteria2
以后,代理组里的节点名称也需要同步修改。
否则可能出现:
Proxy Not Found
五、server应该填写什么?
server 是 Hysteria2 节点服务器地址。
例如:
server: example.com
或者:
server: 1.2.3.4
可以是:
- 域名
- IPv4地址
- 部分情况下IPv6地址
这个值必须和服务端实际提供的信息一致。
不要把:
订阅网站域名
误认为:
Hysteria2节点服务器。
它们可能完全不是同一个地址。
六、port应该怎么填?
port 是 Hysteria2 服务端监听端口。
例如:
port: 443
也可能是:
port: 8443
或者其他端口。
必须使用服务端提供的实际端口。
如果端口错误,常见表现就是:
Timeout
Connection Failed
无法建立连接
配置本身可能仍然能够正常导入。
七、password是什么?
Hysteria2通常需要认证密码。
例如:
password: abc123456
客户端连接服务器时,会使用这个密码进行身份验证。
如果密码错误,可能出现:
Authentication Failed
Handshake Failed
连接超时
因此如果节点来自远程订阅,一般不建议自己修改 password。
八、password包含特殊字符怎么办?
如果密码中包含:
:
{
}
[
]
&
*
等特殊字符,建议使用引号。
例如:
password: “abc#123:456”
这样可以避免 YAML 把其中某些字符当成语法。
尤其:
在 YAML 中可能被理解成注释。
所以如果密码是:
abc#123
写成:
password: abc#123
就可能被解析成:
abc
后面的内容被当成注释。
更安全的写法是:
password: “abc#123”
九、SNI是什么?
配置中经常会看到:
sni: example.com
SNI主要用于TLS握手。
可以简单理解为:
客户端在建立加密连接时,需要告诉服务器自己要验证哪个域名。
通常 SNI 应该使用服务端提供的值。
不要自己随便改成:
google.com
或者其他域名。
如果 SNI 与服务端证书不匹配,可能出现:
TLS Handshake Failed
Certificate Error
Connection Closed
十、server和SNI一定一样吗?
不一定。
例如:
server: 1.2.3.4
但:
sni: cdn.example.com
这是完全可能的。
server负责:
实际连接哪个地址。
sni负责:
TLS握手时使用哪个域名。
所以不要看到两者不同,就认为配置一定错误。
以服务端提供的参数为准。
十一、skip-cert-verify是什么意思?
例如:
skip-cert-verify: false
它控制:
是否跳过TLS证书验证。
false:
正常验证证书。
true:
跳过证书验证。
一般情况下,如果服务端证书配置正常,优先使用:
false
不要为了“连接成功”随便改成:
true
如果必须开启才能连接,应该进一步检查:
- SNI
- 证书
- 系统时间
- 服务端TLS配置
十二、系统时间为什么会影响Hysteria2?
Hysteria2通常涉及TLS。
如果电脑日期或时间严重错误,证书可能被判断为:
未生效
或者:
已经过期
于是出现TLS连接失败。
所以如果所有参数看起来都正常,却提示:
Certificate Error
可以先确认:
Windows系统时间
时区
自动同步时间
是否正确。
十三、obfs是什么?
部分Hysteria2服务端会启用流量混淆。
配置里可能出现:
obfs: salamander
以及:
obfs-password: xxxxxx
例如:
proxies:
- name: HY2-US
type: hysteria2
server: example.com
port: 443
password: your-password
obfs: salamander
obfs-password: “your-obfs-password”
如果服务端启用了 obfs,而客户端没有填写对应参数,就可能无法连接。
十四、obfs-password和password是同一个东西吗?
不是。
password通常用于:
Hysteria2认证。
obfs-password用于:
流量混淆。
如果服务端同时设置了两者,就需要分别填写。
不要把:
password
复制到:
obfs-password
除非服务端明确就是同一个值。
十五、为什么有些Hysteria2配置没有obfs?
因为:
obfs不是所有Hysteria2服务器都必须使用。
部分服务器不启用混淆,就不会出现:
obfs
或者:
obfs-password
所以不要为了“配置完整”自行添加。
服务端没有要求,就不需要额外填写。
十六、Hysteria2的up和down是什么?
部分配置中可能看到:
up: 50 Mbps
down: 200 Mbps
或者类似带宽参数。
这些参数通常与:
客户端速率控制
或:
拥塞控制
有关。
具体支持格式会随 Mihomo 版本变化。
如果订阅已经自动生成,一般保持原配置即可。
普通用户不建议为了“提高速度”随意把数值改得非常大。
十七、带宽参数越大速度越快吗?
不一定。
真正速度还受到:
- 本地宽带
- 节点服务器带宽
- 国际线路
- UDP丢包
- 网络拥塞
- 节点负载
影响。
把:
100 Mbps
改成:
1000 Mbps
并不会凭空提高服务器带宽。
设置错误反而可能影响实际表现。
十八、Hysteria2为什么特别依赖UDP?
Hysteria2主要基于QUIC/UDP通信。
所以相比TCP协议,它对UDP环境更加敏感。
即使配置完全正确,如果当前网络:
- 禁止UDP
- UDP丢包严重
- 路由器限制QUIC
- 企业网络阻止UDP
仍然可能出现:
Timeout
这属于网络环境问题,而不是 YAML 写错。
十九、配置正确但节点一直Timeout怎么办?
可以按照下面顺序排查:
第一:
检查server和port。
第二:
检查password。
第三:
检查SNI。
第四:
检查obfs。
第五:
确认Mihomo核心支持Hysteria2。
第六:
更换手机热点测试。
如果:
原Wi-Fi失败
手机热点正常
则更像当前网络UDP受限。
二十、一个较完整的Hysteria2配置示例
例如:
proxies:
- name: HY2-US
type: hysteria2
server: hy2.example.com
port: 443
password: “your-password”
sni: hy2.example.com
skip-cert-verify: false
obfs: salamander
obfs-password: “your-obfs-password”
需要强调:
上面的:
域名
密码
obfs密码
只是格式示例。
实际使用时必须替换成服务端真实参数。
二十一、只有一个节点配置还不够吗?
如果只是作为完整 Clash/Mihomo 配置文件使用,通常还需要:
proxy-groups
和:
rules
例如:
proxy-groups:
- name: 节点选择
type: select
proxies:- HY2-US
然后:
rules:
- MATCH,节点选择
否则即使:
proxies
里已经有节点,也不代表完整分流配置已经建立。
二十二、完整的最小配置可以怎么写?
一个非常简化的结构可以是:
mixed-port: 7890
mode: rule
proxies:
- name: HY2-US
type: hysteria2
server: hy2.example.com
port: 443
password: “your-password”
sni: hy2.example.com
skip-cert-verify: false
proxy-groups:
- name: 节点选择
type: select
proxies:- HY2-US
rules:
- MATCH,节点选择
这种结构更接近一份可以实际加载的完整配置。
二十三、为什么只有proxies时客户端没有节点选择?
因为:
proxies
只定义节点。
而:
proxy-groups
定义:
这些节点怎样被用户选择和调用。
所以如果没有代理组,部分客户端可能:
能解析配置
但没有正常的策略组供用户选择。
二十四、Proxy Groups中的节点名称必须完全一致
例如节点定义:
name: HY2-US
代理组写:
proxies:
- HY2-USA
两者不一致。
就可能出现:
Proxy Not Found
所以节点重命名以后,一定同步修改代理组。
二十五、Rules又有什么作用?
Rules负责决定:
流量应该走哪个策略组。
例如:
rules:
- DOMAIN-SUFFIX,google.com,节点选择
- MATCH,节点选择
表示:
google.com
以及其他最终没有匹配的流量,都使用:
节点选择
这一代理组。
二十六、Hysteria2节点必须单独写规则吗?
不需要。
规则通常引用的是:
Proxy Group
而不是直接针对协议。
例如:
节点选择
里面可以同时存在:
Hysteria2
VLESS
Trojan
Shadowsocks
规则不需要关心节点是什么协议。
二十七、Hysteria2可以放进url-test自动测速组吗?
通常可以。
例如:
proxy-groups:
- name: 自动选择
type: url-test
proxies:- HY2-US
- HY2-JP
客户端会根据测试结果选择节点。
但如果UDP网络本身不稳定,Hysteria2测速结果可能出现:
Timeout
或者:
-1
所以测速失败不一定代表 YAML 语法错误。
二十八、为什么Hysteria2配置导入后节点不显示?
重点检查:
1. type是否正确
必须确认:
type: hysteria2
2. 核心是否支持
旧Clash可能直接忽略。
3. YAML缩进
缩进错误可能导致整个节点无法解析。
4. 节点是否被订阅转换过滤
第三方转换器可能不支持Hysteria2。
二十九、YAML缩进错误是什么样?
错误示例:
proxies:
- name: HY2-US
type: hysteria2
server: example.com
正确结构更应该类似:
proxies:
- name: HY2-US
type: hysteria2
server: example.com
YAML依靠缩进判断层级。
所以空格非常重要。
三十、不要使用Tab进行YAML缩进
建议只使用:
空格。
不要混入:
Tab制表符。
有些编辑器中看起来完全一样,但 Mihomo 解析时可能直接报:
YAML Parse Error
如果手动编辑配置,建议使用:
VS Code
Notepad++
等编辑器。
三十一、为什么从JSON复制过来的配置不能直接用?
例如 sing-box Hysteria2 配置可能是:
JSON结构。
而 Mihomo 使用:
YAML结构。
两者字段和层级可能完全不同。
不能只把:
.json
文件改名成:
.yaml
就认为完成转换。
必须按照目标客户端的配置规范重新组织。
三十二、订阅自动生成和手动配置哪个更推荐?
普通用户优先:
服务端提供的Mihomo订阅。
因为它可以自动填入:
- server
- port
- password
- sni
- obfs
减少手动填写错误。
手动YAML更适合:
- 自建节点
- 配置调试
- 自定义规则
- 配置学习
- 本地备份
三十三、为什么不建议手动修改订阅中的Hysteria2参数?
因为服务端参数可能会变化。
例如:
今天:
port: 443
下周变成:
port: 8443
订阅更新以后会自动同步。
但你手动保存的本地配置不会变化。
所以长期使用订阅服务时,应优先通过:
更新订阅
获取最新参数。
三十四、Hysteria2本地配置为什么突然失效?
如果之前一直正常,几天后突然连接失败,可能是:
- server更换
- port更换
- password更换
- SNI变化
- obfs参数变化
- 节点服务器下线
所以不要第一时间修改 YAML。
先重新获取最新订阅进行对比。
三十五、怎样对比新旧Hysteria2配置?
重点看下面几个字段:
server
port
password
sni
obfs
obfs-password
如果任何一项变化,本地旧配置就可能无法继续使用。
可以把:
旧config.yaml
和:
新订阅YAML
放在文本比较工具中查看差异。
三十六、Hysteria2配置报Invalid Config怎么排查?
如果出现:
Invalid Config
优先检查:
- YAML缩进
- type字段
- Mihomo核心版本
- 字段是否被当前版本支持
- 特殊字符是否正确加引号
- 是否复制了其他客户端的配置格式
如果连配置都无法加载,就还没有进入网络连接阶段。
此时不要优先折腾DNS和路由器。
三十七、出现Unsupported Proxy Type怎么办?
如果报错:
Unsupported Proxy Type: hysteria2
基本可以优先判断:
当前核心不支持Hysteria2。
处理方向应该是:
升级或切换支持Hysteria2的Mihomo / Clash Meta核心。
而不是修改server、password或DNS。
三十八、配置能加载但连接失败意味着什么?
如果:
节点正常显示
配置没有报错
但:
连接Timeout
说明 YAML 基础结构大概率已经被正确解析。
接下来重点转向:
- server
- port
- password
- SNI
- obfs
- UDP网络
- 服务端状态
三十九、如何快速区分配置问题还是网络问题?
可以使用一个简单判断方式。
导入阶段就报错
例如:
Invalid Config
Unsupported Proxy Type
YAML Parse Error
优先属于:
配置 / 内核问题。
可以导入,但节点Timeout
优先属于:
参数 / 网络 / 节点服务器问题。
这个区分非常重要。
四十、Hysteria2配置排查顺序
遇到问题时建议按照下面顺序:
第一步
确认Mihomo核心支持Hysteria2。
第二步
检查:
type: hysteria2
第三步
检查YAML缩进和格式。
第四步
确认:
server
port
password
正确。
第五步
检查:
SNI
TLS
第六步
如果使用obfs,确认相关参数完整。
第七步
更换手机热点测试UDP。
第八步
测试其他Hysteria2节点。
第九步
更新订阅获取最新参数。
第十步
最后再判断节点服务器是否故障。
四十一、Hysteria2参数快速对照表
| 参数 | 作用 | 常见问题 |
|---|---|---|
| name | 节点名称 | 修改后代理组引用失效 |
| type | 协议类型 | 必须正确识别hysteria2 |
| server | 服务器地址 | 地址失效、DNS解析异常 |
| port | 服务端端口 | 错误时通常Timeout |
| password | 认证密码 | 错误时认证失败 |
| sni | TLS域名 | 错误时TLS握手失败 |
| skip-cert-verify | 是否跳过证书验证 | 不建议随意开启 |
| obfs | 混淆类型 | 与服务端不一致无法连接 |
| obfs-password | 混淆密码 | 与认证password不同 |
四十二、普通用户最推荐的配置方式
如果你不是在搭建自己的Hysteria2服务器,最简单的使用方式通常不是手写配置。
推荐流程:
获取服务端Mihomo订阅
↓
导入Clash Verge Rev/Mihomo客户端
↓
更新订阅
↓
选择Hysteria2节点
↓
测试连接
这样可以避免手动填写:
server
port
password
sni
obfs
造成错误。
总结
Hysteria2配置文件的核心并不复杂。
最基本的节点通常围绕:
type
server
port
password
sni
几个关键字段构成。
如果服务端启用了混淆,还可能需要:
obfs
obfs-password
但真正配置时需要注意:
所有参数必须与服务端保持一致。
如果出现:
Unsupported Proxy Type
优先检查 Mihomo / Clash Meta 核心版本。
如果出现:
Invalid Config
YAML Parse Error
优先检查 YAML 格式和字段。
如果配置能够正常导入,但节点一直:
Timeout
重点检查:
server
port
password
SNI
UDP网络
对于普通订阅用户,最推荐的方法仍然是:
直接使用服务端提供的原生Mihomo订阅,让客户端自动生成Hysteria2配置。
手动YAML更适合作为:
配置学习、调试、自建节点和本地配置维护
使用。
按照:
核心兼容 → YAML格式 → 参数 → TLS → UDP网络
这个顺序检查,可以更快定位Hysteria2配置中的具体问题。