RPRX

Results 745 comments of RPRX

https://github.com/apernet/OpenGFW/issues/77#issuecomment-1970761117 **简而言之,浏览器们近期的版本为了支持 ECH、X25519Kyber768 等特性增大了 Client Hello,该项目尚未更新以匹配这些变化** Trojan-killer 这个项目只是一个证明可行性的 PoC,我们暂时没有时间去持续更新、优化它,~~unlike GFW~~ 不过,你可以使用 WireShark 观察 Client Hello 的长度并修改代码,~~然后发一个 PR~~

幸好看了下,600 秒太短了,而且这样改有点影响性能 服务端设了密码时,**sync.Map** 存一下来源 ip 就行了,**无 timeout** 服务端没设密码时,**绕过这个新增的机制**,不影响绝大多数场景下(本地、内网 socks5)的性能

~~GKD,这个和 https://github.com/XTLS/Xray-core/issues/3323 弄完后又可以发个小版本~~

~~说到“刷新过期时间”,现在这个好像只有 Add 没有 Update,效果是每 600 秒 UDP 都会断一次,所以说太短了~~ ~~但是加上 Update 的话开销更大了,虽然 *ray 里这种东西已经不少了~~ 反正 *ray 的实现都不标准,简单加一个 IP 无 timeout,确保大聪明们开在公网的 socks5 不会轻易被人扫去转发 UDP 就行 ~~然后 Xray 发个小版本,大聪明们无意间升级一下,免费 UDP 转发器数量骤减~~

> 好了 改成sync.Map了( https://github.com/XTLS/Xray-core/pull/3295#issuecomment-2078528751

~~学一下我的代码风格,不要学 *ray 的,风扇看到我的简化后会~~ 还有,公网上 UDP 乱飞的,AtError() 会造成大量无用日志,改成最次要的 AtDebug() 了

~~顺便看了下 shadowsocks 的 server.go,不小心把它的代码复制上去了~~ UDPFilter 无 timeout,有个小问题是有心者可以用大量 IPv6 地址非正常地不断 Add,~~但这样的话可以封他号,所以不是大问题~~

> 道理上把检查移到handleUDPPayload读完socks5的请求头再检查就行了() ~~现在来源不明的 UDP 直接扔了也挺好~~

> [Xray-core v1.8.13](https://github.com/XTLS/Xray-core/releases/tag/v1.8.13) **安全更新:Socks5 入站有密码时,丢弃未认证过的来源 IP 的 UDP 请求 https://github.com/XTLS/Xray-core/pull/3371 @Fangliding @RPRX** ~~总算把这句话改到位了~~,我觉得 Socks5 UDP 固定端口时,这是个比较恰当的解决方案,Clash.Meta 也更新一下吧 @H1JK

还想到一件事,Socks5 的标准 [UDP Associate](https://github.com/v2fly/v2fly-github-io/issues/104#issuecomment-774635538) 是客户端开 TCP 告知自己这边要用的 UDP IP 和端口,那么我们这里的实现是可以在这个 IP 不为空时把这个 IP 加进白名单,但我觉得没有必要,因为实践中会留空(未知公网的 IP 和端口),而且客户端那个 IP 能发 UDP 就应当能发 TCP 来认证,否则有点异常,并且我们不希望客户端甚至不需要大量 IP 就可以乱塞白名单,~~虽然可以封他号~~