最近在研究内网穿透的相关技术,然后回想起一些相关的技术,比如说要远程桌面公司的电脑,VPN连入内网等。然后想着在此处记录一下,各个的区别,这个纯粹是从技术层面的理解,此处不详细解释怎么去实现或者用什么工具去实现,此处只是从技术实现层面去记录我对这些功能的理解,希望通过简答白话文的方式记录,让没有多少技术知识的同学也能看明白这个技术到底是个什么东西,然后再去找相关的具体实现的资料,这样你具体动手起来做起来之前心里就会有一个整体宏观大致概念,这样就不会让你知其然不知其所以然。
1、内网穿透
首选是内网穿透,内网穿透是什么意思呢,用技术性的语言说叫做反向代理技术,它允许你从任何位置访问一台复杂的网路环境中的机器。最简单的场景就是你在外面通过手机或者电脑可以连接到你家里的一台电脑上,这个就可以使用内网穿透技术来实现。目前内网穿透技术的原理是利用一个固定的公网IP的主机作为跳板机,让两个客户端建立起P2P连接,如果成功,就通过跳板机中转,将所有流量代理到内网中的主机上。大概意思就是你要实现内网穿透,需要要在你手中的设备和你要访问的设备上都要装一个东西,然后通过这个东西连接到外面一个固定的公网IP的服务器上去,然后你访问内网的那个设备的时候,就是通过外网的服务器转发到内网去。有点绕,我下面手工画个图,便于理解。
从图中可以看出手机设备想要连接到家庭设备,交互逻辑是手机设备先连接到公网服务器,家庭设备也要连接到公网服务器,然后公网服务器会给这个两个设备在分配一个虚拟IP,然后手机设备想要访问家庭设备的话,他们通过各自的虚拟IP进行P2P连接,因为他们分配的虚拟IP已经处于一个局域网里面了。
目前内网穿透的的解决方案有很多,目前比较多的的就是frp、Cloudflare Tunnel和ZeroTier。frp允许你将内网中的主机的端口号映射到公网的主机上,使用起来比较直接,但是其缺点就是主机和端口都需要单独配置,如果许多台设备组网会比较繁琐;此外这些端口都会暴露在公网上,安全性较差;另一个Cloudflare Tunnel,可以使用Cloudflare的节点进行中转,但是缺点和frp类似,在多台设备的时候比较麻烦;最后就是ZeroTier,这个是上面的逻辑图介绍的,目前用的比较多,而且是免费的,将所有的设备加入到同一个局域网里面即可。
2、远程桌面
其实应该称之为跨网络的远程桌面,因为如果在同一局域网的话,通过对方的IP使用用户名和密码就可以进行远程桌面,但是大家都明白,一般的远程桌面有这么几个缺点