-
Notifications
You must be signed in to change notification settings - Fork 4.5k
REALITY: Add rate limiting to fallback handling via token bucket #4553
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
然后面板脚本们随便往里填个或高或低默认参数 很多reality就有了一个限速特征 如果是中间人的人话还可以顺便观察到别人可以长时间得到高于主动探测的速度 |
探测想要触发到限速,是需要时间和带宽成本的 然后还可以加rate随机抖动 刚才随机找了几个可以偷的站,体积小的2mb,图片很多的也不过30mb 至于中间人那就跟限速无关了 |
这个功能我打算在 REALITY 抗量子更新之后合并,因为现在支持抗量子的服务端 CF 占最多?Nginx 用的 OpenSSL 才刚合并它 至于会引入限速特征,虽然会标明,但即使不标明,这太明显了,任何人都应该能自己想到吧,所以说这是个风险自负的问题 |
我感觉特征这块还好,因为:
实在不行下个PR加个参数随机浮动 |
反正要偷 CDN 就是个风险自负的问题,不偷 CDN 的话也用不上这个限速,确实得说明一下以防面版脚本们无差别设默认值 |
看了一眼好长的选项 感觉加个下行限速够了 |
after和brust是为了规避探测,因此要3个 nginx也是六个参数限速,当前行为也和nginx一模一样 |
6d2b816
to
4cde0ed
Compare
4cde0ed
to
99118bc
Compare
这个功能不要仅限于reality吧,其它入站协议也需要 |
没合是因为现在还无法合并 XTLS/REALITY#12 ,因为它 base 的 XTLS/REALITY@e26ae23 似乎有问题,@yuhan6665 目前 REALITY 这块的代码只能等跟进 Go 1.24 的改动后再合入新的代码 |
Line 23 in a608c5a
比如说 Xray-core 用的 REALITY 都不是 XTLS/REALITY@e26ae23 ,此前 @yuhan6665 好像升级到了该版本然后回退了 给 REALITY 加抗量子更新没啥难度,麻烦的是同步 Go 1.24,又是 boring 又是 internal 的,Golang 这 TLS 库写得真的很烦人,也不知道从哪学的,我都想要不 fork uTLS 搞 REALITY 算了,但是 VLESS 加密要抗量子的话似乎得暴露 internal?还有待研究 |
当时好像是 v2rayng 用不了新版 go 现在应该没问题了 |
@yuhan6665 有时间同步下 Go 1.24 吗, |
好吧 我有空尝试更新 reality 到最新 |
99118bc
to
0ff1466
Compare
|
0ff1466
to
4f2d3ec
Compare
XTLS/REALITY 的测试挂了,仅macos跑不通 我试了剥离此PR,REALITY和core都用latest得到一样结果 See: https://github.com/Meo597/Xray-core/actions/runs/15030945205/job/42243080029
|
09d84c4 修了,rebase 即可 |
4f2d3ec
to
14af429
Compare
14af429
to
68c3ee6
Compare
6af1a61
to
461526a
Compare
把上面几个问题改一下应该就行了 |
我把这个 PR 的链接放 release notes 了,你更新一下“技术细节”和“示例配置”吧 |
ok |
@Meo597 你新示例配置中 limitFallbackUpload 的 bytesPerSec 是 0,与描述不符 |
@Meo597 应该是你想把 65536 填入 bytesPerSec,结果填入 afterBytes 了 |
Xray-core releases 每月都有几十万下载量,那 docker 镜像一个月就几千拉取, 你示例配置的单位还是不对,Byte 和 bit 是有区别的,要么写 kB,要么乘以 10 大概换算成 kb,多 2 是带上了 TCP 头等一些损耗 |
ok |
话说我一直想问 docker 内用非 root 有什么必要性吗,还有那个 -usa 是啥玩意儿 |
还有这 docker 历史镜像太乱了,有没有一个脚本能把 v25.6.8 以外的全清了 |
不是所有用户都把docker引擎配为rootless和uid remap,如果docker爆0day有可能逃逸危害宿主 很多云原生的项目在最后一层都from distroless、chainguard等“无发行版” 然后-usa那个是为了支持老旧架构搞得玩意,不必在意它 它出现的原因是distroless默认不支持一些老旧的架构 删历史镜像得写个脚本,没有现成的
|
帮忙写个脚本删掉 v25.6.8 以外的吧
|
https://docs.github.com/zh/packages/learn-github-packages/deleting-and-restoring-a-package
好的我这两天写
|
如果是并入 latest 了就别把 -usa push 上去了吧 |
|
因为用的是 github actions,build 后会自动 push 我想办法优化一下docker.yml |
我看了有接近一万个version,api速率限制要删到天荒地老了,不如提交个工单直接删整个包吧 |
…S#4553) XTLS/REALITY#12 (cherry picked from commit 18ab291)
English: https://xtls.github.io/en/config/transport.html#streamsettingsobject
Русский: https://xtls.github.io/ru/config/transport.html#streamsettingsobject
这下
小学生论坛的mjj 们再也不用担心 REALITY 偷 CF 导致小鸡成为别人优选节点被偷流量了!警告
对于 REALITY 最佳实践始终是偷同 ASN 的证书,那么你大概率用不到此功能;只有当你迫不得已偷了 Cloudflare 这种
赛博大善人免费 CDN 的证书时,为避免你服务器成为别人加速节点时可考虑开启此功能。回落限速是一种特征,不建议启用,如果您是面板/一键脚本开发者,务必让这些参数随机化。
技术细节
原理:针对每个未通过验证的回落连接,当传输了 afterBytes 字节后开启限速算法。
限速采用令牌桶算法,桶的容量是 burstBytesPerSec,每传输一个字节用掉一个令牌,初始 burstBytesPerSec 是满的。
每秒以 bytesPerSec 个令牌填充桶,直到容量满。
建议配置
过大的
afterBytes
和burstBytesPerSec
将起不到限速效果,过小的bytesPerSec
和burstBytesPerSec
则十分容易被探测。应结合被偷网站的资源大小合理设置参数,如果不允许突发,可以把
burstBytesPerSec
设为 0。示例配置
限制用户下载:前 10MB + 2MB 不限速,然后 256KB/s
如果暂停了一会儿再继续下载,又能突发到 2MB/s,然后恢复到 256KB/s
限制用户上传:64KB/s