Comments (1)
应该找到原因了
hysteria/core/internal/frag/frag.go
Line 44 in bb99579
这里的 Defragger 只有一个, 会要求被分片的包连续到达, 中间穿插了其他 PacketID 的包就会丢掉了
打上合适的日志可以看到
2024/02/04 17:23:54 frag.go:47: m.PacketID = 48970, m.FragID = 1, m.FragCount = 2, lenOfm.Data = 81
2024/02/04 17:23:54 frag.go:47: m.PacketID = 8662, m.FragID = 1, m.FragCount = 2, lenOfm.Data = 81
2024/02/04 17:23:54 frag.go:47: m.PacketID = 58833, m.FragID = 1, m.FragCount = 2, lenOfm.Data = 81
2024/02/04 17:23:54 frag.go:47: m.PacketID = 48970, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:23:54 frag.go:47: m.PacketID = 8662, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:23:54 frag.go:47: m.PacketID = 58833, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:23:54 frag.go:47: m.PacketID = 0, m.FragID = 0, m.FragCount = 1, lenOfm.Data = 141
2024/02/04 17:23:54 frag.go:47: m.PacketID = 0, m.FragID = 0, m.FragCount = 1, lenOfm.Data = 37
2024/02/04 17:23:54 frag.go:47: m.PacketID = 40212, m.FragID = 1, m.FragCount = 2, lenOfm.Data = 81
2024/02/04 17:23:54 frag.go:47: m.PacketID = 47561, m.FragID = 1, m.FragCount = 2, lenOfm.Data = 81
2024/02/04 17:23:54 frag.go:47: m.PacketID = 40212, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:23:54 frag.go:47: m.PacketID = 47561, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:23:55 frag.go:47: m.PacketID = 15313, m.FragID = 1, m.FragCount = 2, lenOfm.Data = 81
2024/02/04 17:23:55 frag.go:47: m.PacketID = 0, m.FragID = 0, m.FragCount = 1, lenOfm.Data = 1121
2024/02/04 17:23:55 frag.go:47: m.PacketID = 15313, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:23:55 frag.go:66: d.count = 2, d.frags = [1374392740144 1374392739952], m.PacketID = 15313, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:23:55 frag.go:47: m.PacketID = 0, m.FragID = 0, m.FragCount = 1, lenOfm.Data = 37
2024/02/04 17:23:55 frag.go:47: m.PacketID = 44812, m.FragID = 1, m.FragCount = 2, lenOfm.Data = 81
2024/02/04 17:23:55 frag.go:47: m.PacketID = 44812, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:23:55 frag.go:66: d.count = 2, d.frags = [1374391766448 1374391766352], m.PacketID = 44812, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:23:55 frag.go:47: m.PacketID = 27731, m.FragID = 1, m.FragCount = 2, lenOfm.Data = 81
2024/02/04 17:23:55 frag.go:47: m.PacketID = 27731, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:23:55 frag.go:66: d.count = 2, d.frags = [1374391766640 1374391766544], m.PacketID = 27731, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:23:55 frag.go:47: m.PacketID = 15733, m.FragID = 1, m.FragCount = 2, lenOfm.Data = 81
2024/02/04 17:23:55 frag.go:47: m.PacketID = 15733, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:23:55 frag.go:66: d.count = 2, d.frags = [1374393268416 1374393268320], m.PacketID = 15733, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:23:55 frag.go:47: m.PacketID = 0, m.FragID = 0, m.FragCount = 1, lenOfm.Data = 235
2024/02/04 17:23:55 frag.go:47: m.PacketID = 0, m.FragID = 0, m.FragCount = 1, lenOfm.Data = 25
2024/02/04 17:23:55 frag.go:47: m.PacketID = 0, m.FragID = 0, m.FragCount = 1, lenOfm.Data = 72
{"level":"debug","time":1707038635919.616,"msg":"SOCKS5 UDP closed","addr":"127.0.0.1:60362"}
PacketID 48970 8662 58833 这些包应该是被放弃了, 没有走到 all fragments received, assemble
, 所以 DOQ 有时候成功有时候失败有时候耗时特别久
修复的话我尝试把放在 map 里面, 日志会如下
2024/02/04 17:26:35 frag.go:47: m.PacketID = 62703, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:26:35 frag.go:47: m.PacketID = 35260, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:26:35 frag.go:47: m.PacketID = 10003, m.FragID = 0, m.FragCount = 2, lenOfm.Data = 1171
2024/02/04 17:26:35 frag.go:47: m.PacketID = 62703, m.FragID = 1, m.FragCount = 2, lenOfm.Data = 81
2024/02/04 17:26:35 frag.go:66: d.count = 2, d.frags = [1374393267696 1374393267984], m.PacketID = 62703, m.FragID = 1, m.FragCount = 2, lenOfm.Data = 81
2024/02/04 17:26:35 frag.go:47: m.PacketID = 35260, m.FragID = 1, m.FragCount = 2, lenOfm.Data = 81
2024/02/04 17:26:35 frag.go:66: d.count = 2, d.frags = [1374393267792 1374393268080], m.PacketID = 35260, m.FragID = 1, m.FragCount = 2, lenOfm.Data = 81
2024/02/04 17:26:35 frag.go:47: m.PacketID = 10003, m.FragID = 1, m.FragCount = 2, lenOfm.Data = 81
2024/02/04 17:26:35 frag.go:66: d.count = 2, d.frags = [1374393267888 1374393268176], m.PacketID = 10003, m.FragID = 1, m.FragCount = 2, lenOfm.Data = 81
2024/02/04 17:26:35 udp.go:77: frag 2
2024/02/04 17:26:35 udp.go:77: frag 1
2024/02/04 17:26:35 udp.go:77: frag 1
2024/02/04 17:26:35 frag.go:47: m.PacketID = 0, m.FragID = 0, m.FragCount = 1, lenOfm.Data = 137
2024/02/04 17:26:35 udp.go:77: frag 1
2024/02/04 17:26:35 udp.go:77: frag 1
2024/02/04 17:26:35 udp.go:77: frag 1
2024/02/04 17:26:35 frag.go:47: m.PacketID = 0, m.FragID = 0, m.FragCount = 1, lenOfm.Data = 240
2024/02/04 17:26:35 frag.go:47: m.PacketID = 0, m.FragID = 0, m.FragCount = 1, lenOfm.Data = 73
2024/02/04 17:26:35 udp.go:77: frag 1
{"level":"debug","time":1707038795163.9712,"msg":"SOCKS5 UDP closed","addr":"127.0.0.1:60533"}
DOQ 也就不会出现超时失败和耗时久了
from hysteria.
Related Issues (20)
- hysteria>failed to parse client config {"error": "1 error(s) decoding:\n\n* 'obfs' expected a map, got 'string'"} HOT 4
- 使用docker-compose部署后,并使用acme来更新证书,查看log后发现提示更新的请求过多,导致无法获取证书 HOT 3
- Hysteria 2 使用几天会出现failed, (code=killed, signal=KILL) 要使用systemctl start hysteria-server.service 会恢复正常,请问这是为什么啊 HOT 2
- 有关服务端伪装使用静态文件方式的问题 HOT 7
- Sites like https://www.ncbi.nlm.nih.gov/ are very slow or cannot open when using Hysteria proxy HOT 2
- 按照官网的脚本部署文档,部署之后,发现只有UDP端口开启,查看服务状态正常,这是什么情况呢? HOT 4
- connect error: http3: parsing frame failed: timeout: no recent network activity HOT 7
- 在验证tls证书时,是否可以允许客户端手动将自签名证书添加到信任列表。实现验证自签名证书 HOT 1
- Traffic was blocked HOT 5
- 建议增加一个name属性,用于后端区分不同的Hysteria节点 HOT 7
- 日志出现警告 Application error 0x101 (local): expected first frame to be a HEADERS frame,并且这时候无法正常上网,需要客户端断开重连才行 HOT 1
- QUIC无法连接 HOT 1
- 服务端outbounds中bindDevice使用wg创建的接口无法开机启动 HOT 2
- FFmpeg Error HOT 2
- DNS (Resolver) tag in server side config has no effect HOT 2
- 内存泄露,hysteria进程被Kill HOT 4
- 2024-06-05 通过hy2的连接无法访问hy2官网,但是其他连接协议可以。 HOT 2
- 在Hysteria 服务器里面同时启动一个Http Server 请问如何访问这个 Http Server HOT 4
- 在Hysteria 服务器里面同时启动一个Http Server 请问如何访问这个 Http Server HOT 1
- 2.4.5版本,无法访问部分网页,例如 https://v2.hysteria.network/zh/ HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hysteria.