请教一个关于内网穿透流程问题
資深大佬 : lqw3030 25
背景
- 一直有在使用 frp 非常方便。自身是 java 语言,因此试想尝试去实现基本功能,在过程中碰到些许问题,请教下朋友们
流程
## A 公网服务器端 ## B 内网应用端 ## C 任意访问者 需求:映射 B 的 80 端口至 A 的 7002 端口(即转发 A 的 7002 的端口的请求至 B 的 80 口) 当下流程: 1. B 客户端启动时会与 A 建立 tcp 连接( A 监听 7001 ),并保持心跳测活(中断重连)。 2. 当 C 访问 A 监听的映射端口( A 监听 7002 )时,A 会向已建立的 TCP 连接( A 监听 7001 所保持的连接)通知 B 向 A 建立一个新的 TCP 连接( A 监听 7003 ) 3. A 在确定新的 TCP 连接建立后转发 7002 端口所有消息转发到 7003 端口
问题
- 请问上述流程是否存在问题,这个流程方面知识处于空白
- 上述描述的流程虽说用编码实现了可以穿透,但每一个入站访问都得占用一个内网 B 到公网 A 的 TCP 连接,并且存在写入或读取过程中连接被重置
- 能否共用一个 tcp 连接(内网 B 端和公网 A 端仅建立一个连接,不同端口数据通过报文包含字段去路由)
麻烦有经验的朋友可以指导下或是留下联系方式我联系您,多谢!!!
大佬有話說 (0)