Conversation
|
有一个最大的问题是utls是go121的似乎 现在还不支持 遥遥落后了 |
Win7 编译也需要 go121,所以等 2025 再加这个吧,至少得 utls 支持,而且感觉无法通过本地 dns 拿到 echConfig 的话有点鸡肋 最大的问题还是 GFW 又会严控 DNS 了 |
这点我考虑过了 稍后可以加build tag绕过低版本go 就像隔壁一样 至于utls 等它支持了 核心改两行代码就能跟上了 目前这个实验性功能应该没有什么坏处
在配置里加一个可选的doh服务器用于获取解析? 或者尝试写死 观察一段时间 不知道CF这个ECH config是不是轮动的 如果不是的话写死也能接受 |
|
先写一下通过 dns 获取 echConfig,然后等 utls 支持了再合这个 pr 吧, |
有一个小问题是内置DNS服务器只能处理A和AAAA 这个要再加就得外置 |
|
好了 现在支持 |
|
好了已经通过测试 websocket可以设置doh sever然后通过ECH连接到cloudflare |
|
看了一下非常棒!建议及早合并 |
|
既然这个在 v2fly 和这里都开了并且不是 draft、没有进一步行动,那么:
for _, answer := range msg.Answer {
if https, ok := answer.(*dns.HTTPS); ok && https.Hdr.Name == dns.Fqdn(domain) {
for _, v := range https.Value {
if echConfig, ok := v.(*dns.SVCBECHConfig); ok {
return echConfig.ECH, answer.Header().Ttl, nil
}
}
}
}
建议重写或转 draft |
|
@dyhkwong 感谢指正 有的问题我也知道不过没打算合我也没动了 等会改一下 不过有必要ctx吗 log里用Background的原因是GetTLSConfig这个函数就没有ctx 至于内部管理 我想这么简单大概没有必要? |
|
|
208f801 to
db934f0
Compare
|
稍微更新了一下 以便可能有人需要 区别 rebase到最新的commit 理论上可以支持XHTTP(3) 删除win7不支持的警告 由于使用魔改go而不是旧版本所以可以正常使用 proto文件让位到20 避免跟目前在开发的mitm功能撞车 顺便mitm功能可以扩展到接管所有被墙的CF网站(通过ECH) |
|
稍微挂个简单点的测试 |
Whether your area blocks SNI cloudflare-ech.com or not |
|
@Fangliding 我发现这个没查到 ECH 的话会回退到明文 SNI,行为不符合预期 |
|
因为 GetTLSConfig 没有返回错误 只配报log( |
|
|
|
要改改下可能也可以 加个err返回就是了 不然用的DNS服务器是被阻断的可能都不知道 不过call这个函数的地方有点多 |
|
下个版本前改一下吧,Windows 上还能看到 log,但 Android 上没人去看, 要不就加个严格模式,如果没查到 ECH 参数的话就不给连接 还有可能有的地方无法访问分享链接中的 ECH 服务器,可以加个使用本地默认 DNS 查询的选项 |
|
我想过 但是破go没有 我提了issue 得等猴年马月 |
想过哪一条 |
|
rust版本 |
我打算先给 Xray-core 加上 Windows TUN 再搞 rust 版本的 VLESS 吧 |
why not to write xray core using rust ? |
pr welcome |
Xray-core 这么复杂的功能全用 rust 重写。。。等 AI 再发展个五年吧 目前的想法是 rust 版 VLESS 就是一个极简的客户端,暂不包含服务端功能 |
fair enough i just ... |
用系统DNS获取的那个 |
what about using dns crypt ? and other ways to resolve so there is no worry about unresolving dns query instead of doubt about it's not working or it's dns |
can't use host's inside dns section for this matter ? |
|
@Fangliding 至少加个严格模式吧,没查到 ECH 参数就不给连接,不知道其它代理软件的默认行为是怎么样的 |
|
这个函数25个调用 xhttp那一堆封装丢来丢去也不好弄 要不查失败丢个无效的config进去 应该会失败可以达到目的 |
XTLS#3813 (comment) (cherry picked from commit 7ddc4a2)
…ion id auth XTLS#3813 (comment) XTLS/REALITY#4 (comment) Reverts XTLS@65b467e (cherry picked from commit 09d84c4)
XTLS/Xray-docs-next@b9a72a4 --------- Co-authored-by: yuhan6665 <[email protected]> (cherry picked from commit fb7a9d8)
仅客户端
才发现go1.23官方已经支持了 之前写过的那堆复杂替换也不需要了 就正常写入就行了 ws和splithttp预计都能使用cloudflare的ECH
已经测试可以和singbox与cloudflare建立ECH连接
稍微挂个简单点的测试
curl http://crypto.cloudflare.com:443/cdn-cgi/trace --resolv crypto.cloudflare.com:443:127.0.0.1可以看到 sni=encrypted