我们在上一篇文章内网穿透神器frp——实现在家远程办公_mac,rdp,windows_黄腾霄的博客-CSDN博客中介绍了如何使用frp的tcp模式,在公网暴露内网设备的tcp服务。还根据此技术实现了对内网设备的远程桌面服务访问。今天我们来分析下这种方式存在的问题,以及可以参考的解决方案。
Frp的TCP模式问题
这里主要存在2个问题。
第一个是安全问题:
试想一下,frp的tcp模式相当于你的设备直接向公网暴露了一个tcp端口。任何设备都可以尝试连接这个端口。这里就会有很大的安全风险。
第二个问题是网络问题:
我的所有请求都需要进行frp的服务器进行中转,这里势必会造成比较大的网络延时。(尤其是我们大部分的vps是部署在国外)这对我们的服务响应速度会造成较大影响。
解决安全问题(stcp)模式
对于安全问题,frp的思路是,既然这些服务有可能被坏人攻击,那我们只要限制特定设备能够使用这个端口就好了。
那么问题来了,我怎么知道哪些设备是允许使用的呢?
服务端配置?那就又陷入了内网穿透的问题。
最简单的方法是使用密钥验证。这就是frp的Secret TCP(stcp)模式的思路。
如下图所示,frp客户端1需要暴露一个tcp端口。于是他在向服务端注册时,额外传了一个密钥。
所有其他设备期望访问这个端口,必须要先验证这个密钥。
这样一来,我们就需要在发起请求的设备上也配置一个frp客户端ÿ