背景

研究p2p的原理,以及看是否可以通过p2p提升远程桌面速度,毕竟自己的服务器是小水管。

p2p的话就不需要使用服务器的带宽,取决于本地的上下行情况。
需要明确的是p2p的两台主机都是内网主机,所以需要通过服务端建立联系。

frp 传输逻辑

frps增加日志、印证思路
在frp的init配置文件中设置log_level = trace 即可。
关联代码:
client/proxy/proxy.go:294
client/visitor.go:203

  1. visitor为了访问远程内网主机,需要绑定本地端口8080、然后与服务端交互获取远程内网的 外网 ip:port.
  2. server在接收到请求后会与proxy建立连接,发送需要连接的visitor信息,此时proxy和visitor发消息,并不是建立连接,因为nat原因,建立不了。
  3. 此时visitor再与proxy建立tcp连接,此时是可以的,因为proxy给它发过消息了。
  4. 此时再通过一遍遍代理,形成 本地8080 => 外部内网主机的联系了。

关联资料

https://blog.csdn.net/deng_xj/article/details/89187944