Open huyz-git opened 2 years ago
必须当上游建立连接成功,并开始传输数据之后,下游才能建立连接,当上游建立连接 失败,下游则不建立连接
我没有理解,上游建立连接成功,并开始传输数据之后,下游才能建立连接
,但没有下游的数据那这个数据是哪里来的?
现在的 tun2socks 的机制是,下游发起连接之后,tun2socks 就立即和下游建立连接,然后才去连接上游,当上游建立连接失败,下游建立的连接就关闭。此时,由于下游的连接是已经正常建立并关闭的,浏览器就不会再去 fallback 到别的地址。
嗯对,这应该是个问题,所以这好像更像是个issue?
这个问题还没解决吧?
Is your feature request related to a problem? 目前 tun2socks 支持 双栈 ip 地址,但却不支持 双栈 ip fallback,具体表现为,当配置 双栈 ip 之后,如果本地路由配置是 ipv6 优先,但某个网站的 ipv6 地址无法连接(上游不支持 ipv6 ,或者网站本身 ipv6 坏了),这个网站就无法开启,浏览器不会 fallback 到 ipv4 。
复现可以使用 https://ipv6-test.com/ 网站,用 direct:// 作为上游即可。
看右边的 Default 和 Fallback 项。 这个网站测试 Fallback 使用的域名是 http://fallback-v6.ipv6-test.com 和 http://fallback-v4.ipv6-test.com ,这两个域名都有双栈解析,但其中一栈对应的 ip 的 80 端口是个黑洞,浏览器必须能够 fallback 到另一栈才能正常访问。
Describe the solution you'd like 不太确定这个功能技术上能否实现。 想要实现这个功能,需要改变建立连接的机制,必须当上游建立连接成功,并开始传输数据之后,下游才能建立连接,当上游建立连接 失败,下游则不建立连接。此时,浏览器会 fallback 到别的地址。 现在的 tun2socks 的机制是,下游发起连接之后,tun2socks 就立即和下游建立连接,然后才去连接上游,当上游建立连接失败,下游建立的连接就关闭。此时,由于下游的连接是已经正常建立并关闭的,浏览器就不会再去 fallback 到别的地址。
Describe alternatives you've considered 无
Additional context