Closed 0990 closed 9 months ago
Hello!
这个问题之前也有人提过,但我一直没空去解决,很高兴你愿意贡献修改。
我觉得目前的代码处理方式不够优雅,有进一步优化修改的空间。你可以参考这个 issue https://github.com/xjasonlyu/tun2socks/issues/83 然后在这里有讨论怎么在握手前处理发送RST等 https://github.com/xjasonlyu/tun2socks/discussions/222
我个人认为这部分处理逻辑应该在core
模块里解决,并提供是否需要开启这个功能的选项。
另外,麻烦你把 issue 和 PR 的标题改成英文的,谢谢 :-P
我目前使用的是透明代理(TPROXY),ipt2socks等将普通流量转成socks流量,由于工作应用层,无法控制握手流程,而想解决我遇到的问题#234,tun2socks是“有能力”解决的,也应该这样去做,你的提议我再看看代码,看怎么处理严谨些,主要是sock proxy返回RepNetworkUnreachable(0x03)RepHostUnreachable(0x04)RepConnectionRefused(0x05)的处理方式
是的,tun2socks在网络层是可以直接响应这些问题。
不过我现在的想法是,把所有RST这类逻辑放在core里做掉,tunnel照样还是处理TCPConn
这种。
Did some testing with this, and it seems to fix the issues for handling connections properly with scanning as well
Feature:#234 目前粗略处理,只要dial sock5代理失败,就返回客户端握手失败RST,由于对gvisor还不熟悉,这部分代码您参考用