Hysteria2 的速度来自 QUIC 与 Brutal 拥塞控制,但它也更吃链路质量。很多问题不是「协议坏了」,而是 MTU、速率和路径丢包没有调到同一档。
##看哪种症状?
| 现象 | 可能原因 |
|---|---|
| speedtest 很高,网页首开慢 | 小包重传、DNS 路径异常 |
| 视频起播慢,播放后正常 | 首段请求丢包或握手重试 |
| 手机热点可用,家宽卡 | 家宽路径 MTU 或 UDP 策略不同 |
| 晚高峰明显变差 | 真实可用带宽低于配置速率 |
把现象写下来,别同时改 MTU、端口、obfs、速率。一次改太多,最后不知道是哪项生效。
MTU 为什么会影响 Hy2?
MTU 是单个包能承载的最大尺寸。路径 MTU 低时,大 UDP 包可能被分片或丢弃。TCP 有更成熟的发现与回退机制,UDP 场景下就更依赖应用和系统处理。
实操建议:
- 客户端 MTU 先设 1200。
- 观察 5 分钟网页、视频、下载三类场景。
- 如果正常,再试 1250、1300。
- 一旦卡顿复现,退回上一个值。
Brutal 速率为什么别填满?
Brutal 需要你告诉它大概带宽。填太高,它会持续施压,丢包链路会更糟。更稳妥的写法是:把上下行都写成真实可用带宽的 70%-80%。比如晚高峰实测上行 30 Mbps,就不要写 100 Mbps。
如果你只是想排除订阅格式或客户端兼容性,可以临时用兼容 Clash / Singbox / V2Ray 的订阅做交叉测试;一旦确认 Hy2 能连通,MTU 与速率仍要回到本机网络上调。
服务端先查什么?
服务端先看基础资源,再看协议参数。若同一台机器上还有下载、转码或其它高吞吐任务,Hy2 的抖动会被放大;排障时最好留出空闲窗口,避免把机器负载误认为链路问题。
- CPU 没有被加密计算打满。
- UDP receive/send buffer 足够。
- 防火墙没有对目标端口做限速。
- 云厂商安全组允许 UDP 入站。
- Hy2 服务端版本与客户端内核不要相差太久。
客户端怎么改才不乱?
- MTU 从 1200-1250 开始。
- 速率填真实可用值,不填标称套餐值。
- sing-box 与 Mihomo 参数按各自文档写。
- 排障期间关闭其它占用 UDP 的应用。
- 每次只改一个参数并记录结果。
调 Hy2 不追求一个万能配置。能在你的网络、你的设备、你的时间段里持续顺滑,才算调完。
排查顺序怎么排?
先固定一个可复现样本,再改配置。比如同一台设备、同一个 Hy2 出站、同一个时间段,连续打开 3 个网页、播放 1 段视频、跑 1 次下载;样本不固定,MTU 和速率的变化就没有比较意义。
| 顺序 | 要确认什么 | 具体做法 |
|---|---|---|
| 1 | 服务端没有被打满 | 看 CPU、带宽、UDP 缓冲和防火墙计数 |
| 2 | MTU 是否过高 | 从 1200 开始,按 50 递增到卡顿复现 |
| 3 | Brutal 速率是否过高 | 写晚高峰实测带宽的 70%-80%,不要写套餐标称值 |
| 4 | 客户端参数是否混用 | Mihomo 与 sing-box 分别按官方字段写 |
什么时候停止继续试错?
同一链路连续试了 3 组 MTU 和 2 组速率仍无改善,就先停。把客户端日志、服务端日志、测试时间、MTU、上下行速率和系统 UDP 缓冲值放在一起,再决定换端口、换线路或回退旧配置;继续乱改只会把证据抹掉。
相关阅读
- Reality shortId publicKey — Reality 握手参数不匹配时排查
- Shadowsocks 2022 加密 — SS 2022 加密方式不一致时参考
- Trojan TLS 证书域名 — Trojan TLS 证书域名校验失败时排查