- Switched ACL to a new engine based on expr
- Rules are now expressions, set with
acl.rulesoracl.rulesFile. Besides the destination and protocol, they can match on the client's authentication ID and address, e.g. to route each user through a different outbound - Added
hysteria acl testto check which rule and outbound a request would use - The legacy syntax (
acl.fileandacl.inline) still works. Legacy rules can be mixed intoacl.rules, or converted withhysteria acl translate - Fixed legacy port ranges starting at 0 (e.g.
udp/0-100) matching every port
- Rules are now expressions, set with
- Improved UDP forwarding performance by reducing per-packet overhead (about 30% more packets per second for small-packet upload)
- Updated quic-go to v0.65.0
- ACL 改用基于 expr 的全新引擎
- 规则现在以表达式的形式编写,通过
acl.rules或acl.rulesFile设置。除目标地址和协议外,还可以根据客户端的验证 ID 和地址进行匹配,例如让不同用户走不同出站 - 新增
hysteria acl test,用于测试某个请求会使用哪条规则和哪个出站 - 旧版语法(
acl.file和acl.inline)仍然可以使用。旧版规则可以混用在acl.rules中,也可以用hysteria acl translate转换 - 修复旧版语法中从 0 开始的端口范围(例如
udp/0-100)会匹配所有端口的 bug
- 规则现在以表达式的形式编写,通过
- 优化 UDP 转发的处理开销,提升性能(小包上传提升约 30%)
- quic-go 更新至 v0.65.0