Frp原理分析
文章目录
1. Frp流程图
2. Frp请求流程
- 首先,frpc 启动之后,连接 frps,并且发送一个请求 login(),之后保持住这个长连接,如果断开了,就重试
- frps 收到请求之后,会建立一个 listener 监听来自公网的请求
- 当 frps 接受到请求之后,会在本地看是否有可用的连接( frp 可以设置连接池),如果没有,就下发一个 msg.StartWorkConn 并且 等待来自 frpc 的请求
- frpc 收到之后,对 frps 发起请求,请求的最开始会指名这个连接是去向哪个 proxy 的
- frps 收到来自 frpc 的连接之后,就把新建立的连接与来自公网的连接进行流量互转
- 如果请求断开了,那么就把另一端的请求也断开