This repository has been archived by the owner on Mar 17, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 106
[Bug] VLESSs fallback到vless时连不上目标地址 #215
Labels
bug
Something isn't working
Comments
收到。我测了一遍,实锤了,真没想到会有这种怪问题啊! 好像和unix无关,普通的tcp回落也不成!不知道是哪里改错了 从日志上看不出什么异常,但是就是无法正常访问网页 |
经排查,问题出在vless的usertcpconn的 ReadBuffers 函数,注释掉就能用了。正在分析原因 |
测出来了。这是一个非常诡异的readv的问题,因为以前测的时候没用回落,所以就没出现问题。 我一会儿详细解释一下。 马上修复。 |
e1732a364fed
added a commit
that referenced
this issue
Dec 25, 2022
首先,为啥trojan没这个问题呢?因为在trojan恰好没有实现ReadBuffers。可能是当时遗漏,也可能是因为我更倾向于把vless当作代码试验田,做一些研发。 其次,readv的代码写了一个bug,在buffer还没有使用完时就放入pool了。 但是为什么正常情况没有问题,而回落时才发现错误呢,因为要想触发问题,恰好需要 vless回落到vless这种情况,如果是vless回落到 外部web服务,都不会出错 这又是为什么呢,因为只有在vless回落到vless时,才会重复使用readv,而且是同一时间使用readv,只有这时,才会遇到在pool中又提取到刚放入的 buffer的情况 |
最新代码应该解决了。 |
e1732a364fed
changed the title
[Bug] VLESS TCP fallback存在问题
[Bug] VLESSs fallback到vless时连不上目标地址
Dec 25, 2022
另外,你可以先用 -readv=f 命令行参数来绕过该问题 |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Describe the bug【描述 bug】
当VLESS TCP经过fallback后,无法通过代理访问网络。
经测试,使用trojan时不存在此问题。
To Reproduce【如何复现该bug】
按给定的配置文件运行服务端与客户端,然后使用代理访问网络。
下方提供的日志是运行
curl https://google.com --proxy socks5://127.0.0.1:1080
得到的。Expected behavior【预期的行为】
应该能够使用代理正常访问
Envs (please complete the following information):【系统环境】
客户端:Windows 10 专业版 22H2 19045.2311, verysimple v1.2.5-beta.2
服务端:Clear Linux 37860, verysimple v1.2.5-beta.2
Config file 【配置文件,客户端服务端配置都提供】
client.toml
server.toml
Debug Log 【Debug日志, 客户端 和 服务端 的 日志 都提供】
客户端
服务端
Other 【其他】
出现在配置文件和日志中的IP 199.xx.xxx.xxx为服务器IP
【注意,配置文件和客户端服务端配置 太长的话,前后加上三个 `, 如 ```】
The text was updated successfully, but these errors were encountered: