-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
Replace quic-go with uQuic #3550
base: main
Are you sure you want to change the base?
Conversation
这个uquic依赖会让二进制大小膨胀9%(约等于把本来史的quic-go复制一遍) 我加个acme多6%都嫌依赖重了 用acme的绝对比用splithttp的多(我都没见过拿这个当主力的) 感觉直接用quic-go就行了 |
个人意见:acme 是可有可无所以不倾向加 |
Maybe add flags when building?like sing box, *ray could have --with-acme or --with-uquic or somthing like this,since like u said not a lot of people will use them |
我们需要考虑降低项目复杂度 |
可以用 uquic 替代 quic-go,希望 uquic 库的维护活跃 @gaukas |
|
I would definitely love to! Currently we have been deliberating on the future development of uQUIC (as it is an important part of our research on TLS/QUIC fingerprint-ability). We have realized that uQUIC as a popular QUIC clients' parrot would definitely face the same amount of challenges, if not more, as uTLS did. It is important to note that the Initial Packet(s) containing a TLS Client Hello isn't the only fingerprint-able feature in QUIC. To be honest with you all, it would be overall challenging to keep up-to-date with all the tweaking being implemented on popular QUIC clients. For example, most-recent change on Chrome has enabled post-quantum The author of quic-go has expressed the unwillingness on taking fingerprint-ability into account (quic-go/quic-go#4007 (comment)), and I would ask for help from our good open source community, especially those who concern about anti-censorship. 我当然乐意! 目前,我们一直在讨论 uQUIC 的未来发展(因为它是我们 TLS/QUIC 可指纹性研究的重要组成部分)。我们意识到,uQUIC 作为流行的 QUIC 客户端鹦鹉,肯定会面临与 uTLS 相同甚至更多的挑战。 值得注意的是,包含 TLS Client Hello 的 Initial Packet(s) 并不是 QUIC 中唯一可被指纹识别的特性。说实话,要跟上流行 QUIC 客户端的所有调整,总体上是一项挑战。例如,Chrome 浏览器最近的一次改动启用了后量子签名算法 quic-go的作者已经表示不愿意将指纹识别能力考虑在内 (quic-go/quic-go#4007 (comment)) ,所以我希望向我们优秀的开源社区寻求帮助,尤其是那些在乎反审查的人们。 |
Most likely it will happen at some point after September. As I mentioned we will need major updates to mimic some new behaviors. 最有可能在 9 月之后的某个时间点进行。正如我提到的,我们需要进行主要更新以模仿一些新的行为。 |
所以现在指纹是只有 chrome 和 firefox 吗,transport/internet/splithttp/dialer.go 这个文件需要 fmt 一下 |
打算合并另外两个 PR 后再继续这个 PR,如果我们不想用去年的 v0.0.5,@gaukas 有推荐的 commit 吗? |
既然如此,我可以创建新的 tag v0.0.6 以供使用。不过请留意,当前版本仍然缺乏对部分已知特征的模仿。因此直至我们的初期工作完成我都并不鼓励大规模的应用 uQUIC。一旦我们认为 uQUIC 已经有足够的基础功能,我们将会释出 v0.1.0 作为首个生产版本。 If you say so, I can create a new tag v0.0.6 for you to use. Please be advised, the current build still lacks mimicry on certain known patterns. As a result, I do not encourage large-scaled application of uQUIC until our preliminary work is done. Once we determined that uQUIC has enough basic features we would release v0.1.0 as our first production-ready version. |
感谢
|
@mmmray 请修复这个 PR,使用 uquic v0.0.6,还有 #3550 (comment) |
|
没办法依赖路径里有( 不知道replace能不能编出来 |
I think the transport/quic test failure is way over my head. I don't recommend pushing this in 1.8.20 today unless it's obvious to somebody what's happening. |
Agree, we can study it later |
|
...I get this as test failure:
so I tried changing www.example.com in the test to localhost (like splithttp's QUIC test) -- didn't work |
|
鉴于现在还有这个 ALPN 问题没弄妥,打算先发个新版, |
我觉得这些平时GUI里都没有的参数应该是带 risk on your own 属性的 大多数人动这个的都是自建的是自己的也没害了服务端这个说法 再不行关掉fingerprint不是一样发 有不让人改 太奇怪了 之前删掉vision与空流控兼容我还理解因为这个参数在客户端可改而且因为那时候部分客户端不支持确实会有人去用 ↓ not me 我早觉得应该去掉了 因为配置文件格式(老的是单独的xtlssetting)不同很令人疑惑 |
都不是我们写的,我是觉得几乎没人用且我们不打算继续维护的东西都没必要留着,删了可以精简代码,Xray 已经删很多了
|
|
|
do you know which version of quic-go caused this? my guess is 0.44 after looking through their changelogs. |
also I want to note, uquic 0.0.6 is synced with quic-go 0.42: https://github.com/refraction-networking/uquic/releases/tag/v0.0.6 we are on quic-go 0.45 so if this PR is fixed, and we merge it, we still might encounter a performance regression, and it should be tested before release. I just didn't have the time to follow up on this PR.
|
既然如此,我觉得我们可以等两个月 uquic 更新后再用它替代 quic-go。GFW 对 CDN 的 IP 有更高的容忍度,目前也尚未观察到连接到 CDN 的 quic-go 被实时阻断, |
会有这样的 transport,就是删了 quic transport 新写支持 h3 的 streaming request,优势是它能用 Browser Dialer,Chrome 支持 |
|
|
|
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
how about moving to apernet/quic-go instead? it has hooks for congestion control, I believe BBRv3 can be achieved. on the other hand it will conflict with integration of uquic. |
@mmmray 是时候组建xquic了 |
So many forks (efforts) on quic-go, yet seems no one care about uQuic (fingerprints). Are those people (who work on quic protocols) serious about anti-censorship or just fooling around? |
我没有找到支持 bbr 的 quic-go ,当然 uQuic 好像也没有 bbr 。
没什么关系,只是顺便提一下而已