ShadowsocksMulti 多用户UDP 解密失败
操作系统
macOS
系统版本
14.2.1 (23C71)
安装类型
其他
如果您使用图形客户端程序,请提供该程序版本。
https://github.com/SagerNet/sing-shadowsocks/blob/v0.2.6/shadowaead/service_multi.go
版本
https://github.com/SagerNet/sing-shadowsocks/blob/v0.2.6/shadowaead/service_multi.go
描述
多用户的情况下 配置中的第一个用户解密正常 之后的用户 shadowsocks udp 解密失败
怀疑是buffer 在上一次尝试解密后没有被重置 导致后面的密码全部解密失败###
重现方式
shadowsocks 添加多个user
连接第二个用户或者第三个用户 发起udp请求
日志
No response
支持我们
- [ ] 我已经 赞助
完整性要求
- [X] 我保证阅读了文档,了解所有我编写的配置文件项的含义,而不是大量堆砌看似有用的选项或默认值。
- [X] 我保证提供了可以在本地重现该问题的服务器、客户端配置文件与流程,而不是一个脱敏的复杂客户端配置文件。
- [X] 我保证提供了可用于重现我报告的错误的最简配置,而不是依赖远程服务器、TUN、图形界面客户端或者其他闭源软件。
- [X] 我保证提供了完整的配置文件与日志,而不是出于对自身智力的自信而仅提供了部分认为有用的部分。
tcp请求解密无异常 只有udp时出现这个问题 我尝试在github.com/sagernet/sing/common/buf中 增加 如下方式 然后解密时每次使用Copy的新Buffer 解密正常 因此怀疑是 每次解密Buffer并没有重置导致的解密失败
func (b *Buffer) Copy() *Buffer { newBuffer := &Buffer{ data: make([]byte, len(b.data)), start: b.start, end: b.end, capacity: b.capacity, managed: b.managed, } copy(newBuffer.data, b.data) return newBuffer }
try https://github.com/SagerNet/sing-shadowsocks/pull/6?