先确认这是 Hysteria 1.x
type: hysteria 对应 Hysteria 1.x。它以 QUIC 为基础,但协议格式与 Hysteria2 完全不兼容,客户端和服务端必须使用同一代协议。
一个可创建的 Hysteria 节点至少需要名称、类型、服务器、端口以及有效的 up 和 down。认证是否为空取决于服务端,但启用认证时必须提供匹配的 auth-str 或 auth。
name必填- 节点名称,用于策略组引用。
type: hysteria必填- 明确选择 Hysteria 1.x 出站,不是 Hysteria2 的别名。
server / port必填- 服务端地址和基础端口;即使使用 ports,官方配置仍要求保留 port。
up / down必填- 填写有效且非零的上传和下载速率,缺失或解析为 0 会导致节点创建失败。
认证与传输模式
Hysteria 1.x 可以把认证写成普通字符串,也可以使用 Base64 字段。传输模式控制 QUIC 数据包外层的发送方式,必须与服务端能力一致。
auth-str认证- 直接填写服务端认证字符串,最常见也最易核对。
auth认证- 填写 Base64 编码后的认证字节;与 auth-str 同时存在时,当前实现优先使用 auth。
protocol默认 udp- 可选 udp、wechat-video 或 faketcp。省略时使用 udp。
obfs可选- 填写 Hysteria 1.x 的 XPlus 混淆字符串,不是 Hysteria2 的 salamander 或 gecko 类型。
obfs-protocol兼容字段- 用于兼容部分 Stash 配置;存在时会覆盖 protocol。普通配置优先使用 protocol。
带宽与拥塞控制
up 和 down 是 Hysteria 1.x Brutal 拥塞控制的速率输入。未写单位时按 Mbps 解释,推荐显式写成 30 Mbps 一类格式。
这两个值不是购买套餐的标称带宽,也不是越大越快。填写超过当前链路可达到的速率,会让发送端持续制造拥塞。
| 字段 | 方向 | 填写原则 |
|---|---|---|
up | 客户端上传 | 不超过当前网络稳定可达到的上传速率 |
down | 客户端下载 | 不超过当前网络稳定可达到的下载速率 |
| 单位 | 两者通用 | 建议显式使用 Mbps,省略单位也按 Mbps 处理 |
端口跳跃
Hysteria 1.x 可以在多个 UDP 端口间切换。ports 接受单个端口、范围以及用逗号或斜杠分隔的组合,但基础 port 仍不能省略。
port必填- 保留一个基础服务端端口,即使同时配置 ports。
ports可选- 例如 1000,2000-3000,4000;服务端防火墙和转发规则必须开放同一组 UDP 端口。
hop-interval默认 10 秒- 控制端口切换间隔,Hysteria 1.x 使用整数秒。
TLS 与 QUIC 参数
Hysteria 1.x 要求 TLS 1.3。除服务端明确要求外,不要照搬 Hysteria2 的 h3 ALPN;当前内核在未填写 alpn 时使用 hysteria。
sniTLS- 设置证书对应的服务器名称;省略时使用 server。
alpn默认 hysteria- 仅在服务端使用不同 ALPN 时覆盖,不能因为协议基于 QUIC 就随意写 h3。
skip-cert-verify风险- 跳过证书校验,只用于明确需要的测试或自签场景。
name-cert-verify / fingerprintTLS- 分别用于指定证书名称校验目标和固定证书指纹。
recv-window-conn高级- 调整单个 QUIC 流的接收窗口,通常保留默认值。
recv-window高级- 调整整个 QUIC 连接的接收窗口,盲目增大只会增加内存占用。
disable-mtu-discovery高级- 禁用路径 MTU 探测,仅在确认平台或链路存在 MTU 问题时使用。
fast-open默认 false- 降低连接建立延迟,但会改变目的端可达性确认时机。
Hysteria 与 Hysteria2 字段对照
两代协议看起来都使用 UDP 和 QUIC,但认证、混淆和带宽语义不同。迁移时应重新生成节点,不要机械改字段名。
| 配置面 | Hysteria 1.x | Hysteria2 |
|---|---|---|
| 认证 | auth-str 或 auth | password |
| 传输模式 | udp、wechat-video、faketcp | QUIC over UDP,不使用 protocol |
| 带宽 | up 与 down 必须有效 | 按方向可选,填写后启用 Brutal |
| 混淆 | obfs 字符串 | salamander 或 gecko 加 obfs-password |
| 兼容性 | 仅连接 Hysteria 1.x 服务端 | 仅连接 Hysteria2 服务端 |
基础示例与常见误配
下面示例依赖服务端提供相同认证、SNI 和带宽约束。省略 alpn 时使用 Hysteria 1.x 默认值。
- 误用 Hysteria2 的
password、obfs-password或 salamander 字段。 - 省略
up或down,或把其中一个写成 0,节点会因速率无效而创建失败。 - 把 ALPN 写成 h3,但服务端仍使用 Hysteria 1.x 默认的 hysteria。
- 启用 ports 后删除 port,违反当前 Hysteria 配置边界。
proxies:
- name: hysteria-v1
type: hysteria
server: server.example.com
port: 443
auth-str: replace-with-server-auth
protocol: udp
up: "30 Mbps"
down: "200 Mbps"
sni: server.example.com
skip-cert-verify: false