ffay / lanproxy

lanproxy是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,支持tcp流量转发,可支持任何tcp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面、http代理、https代理、socks5代理...)。技术交流QQ群 736294209
https://nat.nioee.com
5.66k stars 1.53k forks source link

支持mux协议吗? #49

Open hijk1234 opened 6 years ago

hijk1234 commented 6 years ago

加了heatbeat心跳机制后 , 还需要加mux协议, 这样才能彻底解决 , 感知tcp健康状态,的问题 ,保持长时间连接建议使用“多路复用” https://github.com/xtaci/smux

ffay commented 6 years ago

谢谢建议,多路复用存在网络环境不是太好的情况下不能充分利用带宽的问题,暂时还是保持连接池的方式保证连接复用

hijk1234 commented 6 years ago

连接池的方式适合大量短连接, 不适合长时间连接, 比如连续连接12个小时那种, 希望能加上多路复用, 希望加个开关, 供客户选择

hijk1234 commented 6 years ago

大佬smux加上了吗? 建议看下这2个开源软件: https://github.com/fatedier/frp https://github.com/snail007/goproxy 都加了smux协议

内网穿透,分为两个版本,“多链接版本”和“多路复用版本”,一般像web服务这种不是长时间连接的服务建议用“多链接版本”,如果是要保持长时间连接建议使用“多路复用版本”。

从 v0.10.0 版本开始,客户端和服务器端之间的连接支持多路复用,不再需要为每一个用户请求创建一个连接,使连接建立的延迟降低,并且避免了大量文件描述符的占用,使 frp 可以承载更高的并发数。

ffay commented 6 years ago

@hijk1234 暂时没有太多的时间增加smux(也觉得没有必要,目前主要专注于易用性以及稳定性),lanproxy的定位是用于测试以及小规模应用(单台服务器可以支持2-3W长连接),如果有更大规模的应用完全有理由不使用内网穿透。 如果服务器在国外,可以在服务器和客户端中间加个kcptun 最后,如果有兴趣,可以将lanproxy与其他功能丰富的内网穿透工具做个性能测试对比