内网穿透、远程桌面、VPN的理解

        最近在研究内网穿透的相关技术,然后回想起一些相关的技术,比如说要远程桌面公司的电脑,VPN连入内网等。然后想着在此处记录一下,各个的区别,这个纯粹是从技术层面的理解,此处不详细解释怎么去实现或者用什么工具去实现,此处只是从技术实现层面去记录我对这些功能的理解,希望通过简答白话文的方式记录,让没有多少技术知识的同学也能看明白这个技术到底是个什么东西,然后再去找相关的具体实现的资料,这样你具体动手起来做起来之前心里就会有一个整体宏观大致概念,这样就不会让你知其然不知其所以然。

1、内网穿透

        首选是内网穿透,内网穿透是什么意思呢,用技术性的语言说叫做反向代理技术,它允许你从任何位置访问一台复杂的网路环境中的机器。最简单的场景就是你在外面通过手机或者电脑可以连接到你家里的一台电脑上,这个就可以使用内网穿透技术来实现。目前内网穿透技术的原理是利用一个固定的公网IP的主机作为跳板机,让两个客户端建立起P2P连接,如果成功,就通过跳板机中转,将所有流量代理到内网中的主机上。大概意思就是你要实现内网穿透,需要要在你手中的设备和你要访问的设备上都要装一个东西,然后通过这个东西连接到外面一个固定的公网IP的服务器上去,然后你访问内网的那个设备的时候,就是通过外网的服务器转发到内网去。有点绕,我下面手工画个图,便于理解。

        从图中可以看出手机设备想要连接到家庭设备,交互逻辑是手机设备先连接到公网服务器,家庭设备也要连接到公网服务器,然后公网服务器会给这个两个设备在分配一个虚拟IP,然后手机设备想要访问家庭设备的话,他们通过各自的虚拟IP进行P2P连接,因为他们分配的虚拟IP已经处于一个局域网里面了。

        目前内网穿透的的解决方案有很多,目前比较多的的就是frp、Cloudflare Tunnel和ZeroTier。frp允许你将内网中的主机的端口号映射到公网的主机上,使用起来比较直接,但是其缺点就是主机和端口都需要单独配置,如果许多台设备组网会比较繁琐;此外这些端口都会暴露在公网上,安全性较差;另一个Cloudflare Tunnel,可以使用Cloudflare的节点进行中转,但是缺点和frp类似,在多台设备的时候比较麻烦;最后就是ZeroTier,这个是上面的逻辑图介绍的,目前用的比较多,而且是免费的,将所有的设备加入到同一个局域网里面即可。

2、远程桌面

        其实应该称之为跨网络的远程桌面,因为如果在同一局域网的话,通过对方的IP使用用户名和密码就可以进行远程桌面,但是大家都明白,一般的远程桌面有这么几个缺点

  • 需要对方电脑的账户名和密码
  • 需要对方电脑开启远程桌面连接设置和一些安全设置
  • 需要通过这个电脑的IP地址进行连接,跨网路就没办法了

目前市面上为了解决上面的这几个缺点,有一些产品可以直接解决这些问题,比如向日葵和teamview这种远程桌面工具,这种工具是不受用户电脑账户密码限制,也不需要去开启远程桌面设置,也不需要对方电脑的ip,只需要装个软件,用设备ID和验证码就可以轻松连接。这种方式的技术实现和内网穿透有点点类似,我没有详细的研究过这两款远程桌面的技术实现,但是大致核心还是需要一个公网的IP服务来进行访问的中转,被访问的设备方向代理到那个公网的IP服务上去。

3、VPN

        VPN已经出来了很多年了,其作用也是为了让两个不在同一局域网的网路能够联通,VPN不像上面两种,VPN是需要在目的设备网路的入网处建立一个VPN的服务器,然后我们在远程连接到这个目的网路的VPN服务器上,连接后,你的设备就在这个目的网路的局域网里面了,仿佛你本身已经在这个目的设备的地方操作了,平时在这个网路里面能连接的设备都可以连了。简单的流程图如下,方便理解:

上面的图可以看到,手机或者电脑,在公司外面通过VPN服务连接到公司内部网路,这个需要公司网路对外的公网IP,还需要暴露VPN对应的端口号。

4、三者对比

下面主要是针对通过外部网路直接访问目的网络里面的设备的功能的对比。

是否需要固定外网IP是否需要额外中转服务器是否需要安装客户端是否需要账户和密码
内网穿透不需要需要需要不需要
跨网远程桌面不需要需要需要不需要
局域网远程桌面需要不需要不需要需要
VPN需要不需要不需要需要

5、总结

        针对不同的场景可能咱们可以选择不同的方法,局域网远程桌面这种其实也不是很常用,为什么呢,因为如果就在局域网的话,那么你本人直接过去操作就可以了,不需要远程桌面,而且远程桌面还需要给你的登录账户和密码,这些都是隐私的东西,一般最好不对外泄露。VPN其实是比较适合在家远程办公的场景的,电脑带回家,然后连接VPN,就可以实现办公了,但是也有一些问题,就是公司必须要一个固定的IP,还必须要配一个VPN服务器,固定IP这个是越来越少了,很多宽带都不是固定外网IP了。特别是现在家庭网路一般都是变动的IP,不是固定的IP。如果是家里有装有智能设备或者有数据备份的设备,如NAS、FTP等,在外面就没办操作和访问,所以内网穿透这个是比较适合家庭场景下面的使用的,就像ZeroTier,可以使用免费的中转服务器实现内网穿透,如果你不放心你的数据会经过中转服务器。那你就自己买个云服务,自己搭建一个ZeroTier的中转服务器,这样就不怕的数据被中转服务器窃取了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/244999.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】stack、queue的使用及模拟实现

目录 一、stack1.1 stack的使用1.2 stack的模拟实现 二、queue2.1 queue的使用2.2 queue的模拟实现 一、stack 1.1 stack的使用 stack是一种容器适配器,它的特点是后进先出,只能在容器的一端进行插入和删除操作。 stack的使用很简单,主要有…

在IDEA中创建SpringBoot项目

概述 SpringBoot是由Pivotal团队提供的全新的框架,其设计的目的是用来简化Spring应用的初始搭建以及开发过程。 传统方式构建Spring应用程序 导入依赖繁琐 依赖冲突 项目配置繁琐 SpringBoot特性 1、起步依赖 本质上就行一个Maven坐标,整合了完成一…

Java 集合List相关面试题

📕作者简介: 过去日记,致力于Java、GoLang,Rust等多种编程语言,热爱技术,喜欢游戏的博主。 📗本文收录于java面试题系列,大家有兴趣的可以看一看 📘相关专栏Rust初阶教程、go语言基…

dataGrip连接数据库mysql和intersystems的iris

文章目录 前言创建新项目选择对应的数据库产品类型新建数据库资源连接sql命令窗体手动配置本地驱动 前言 intersystems公司的产品iris是cache的升级版本,目前绝大多数数据库工具都没法连接这个数据库 datagrip下载地址 https://download-cdn.jetbrains.com.cn/da…

eBay在人工智能道路上的成败得失:衡量标准是关键

我是2006年加入eBay的。2009年,这家公司的运营状况非常糟糕,其股价创历史新低(远低于近24美元的历史高位),还出现削减各项成本、负增长、市场占有率降低、技术团队缺乏创新能力等情况。 简而言之,eBay公司…

CentOS7自动备份数据库到git

虽然数据库没什么数据,但是有就是珍贵的啦,为了服务器什么的无了,所以还是要自动备份一下比较好。 Open备忘第一页 步骤 在Gitee(github)上创建一个私有仓库Gitee(github)配置好服务器的ssh在服…

Oracle BIEE 示例(一)数据透视表2

1 背景 版本:BIEE 12C 视图:数据透视表 实现内容(顺序与具体内容不一致): 2 空列显示(方法一) 2.1 问题 列为空时,标题栏不显示信息。 2.2 期望 即使数据为空,也要显示列名。 2.3 官方资料 2.3.1 操作步骤 2.3.1.1 要在分析级别关闭空值隐藏,请执行以下操作…

MySQL与PostgreSQL对比

对比 许可证 License MySQL 社区版采用 GPL 许可证。Postgres 发布在 PostgreSQL 许可下,是一种类似于 BSD 或 MIT 的自由开源许可。 即便 MySQL 采用了 GPL,仍有人担心 MySQL 归 Oracle 所有,这也是为什么 MariaDB 从 MySQL 分叉出来。 …

mac安装部署gitbook教程

mac安装部署gitbook教程 前言一、安装准备二、GitBook安装三、项目初始化 前言 一些自己实际操作的记录。 一、安装准备 Node.js gitbook基于Node.js,所以需要提前安装。 下载地址:https://nodejs.org/en/,可以下载比较新的版本。(但我的建议…

[已解决]504 Gateway Time-out 网关超时

文章目录 问题:504 Gateway Time-out 504 Gateway Time-out 网关超时思路解决 问题:504 Gateway Time-out 504 Gateway Time-out 网关超时 思路 网上的常规思路是修改nginx配置文件,增加请求执行时间,试过没有用 keepalive_timeout 600; fastcgi_con…

vue3-深入组件-组件注册和props更多细节

组件注册 定义好的组件需要注册才能被使用。 注册方式有两种 全局注册 局部注册 全局注册 .component() 方法,让组件在当前 Vue 应用中全局可用。 在 main.ts 中 import ./assets/main.cssimport { createApp } from vue import { createPinia } from pinia i…

基于springboot+vue的网上租赁系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 研究背景…

碳排放预测 | Matlab实现LSTM多输入单输出未来碳排放预测,预测新数据

碳排放预测 | Matlab实现LSTM多输入单输出未来碳排放预测,预测新数据 目录 碳排放预测 | Matlab实现LSTM多输入单输出未来碳排放预测,预测新数据预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现LSTM长短期记忆神经网络多输入单输出未来…

架构师之路(十六)计算机网络(传输层)

前置知识(了解):计算机基础。 作为架构师,我们所设计的系统很少为单机系统,因此有必要了解计算机和计算机之间是怎么联系的。局域网的集群和混合云的网络有啥区别。系统交互的时候网络会存在什么瓶颈。 既然网络层已经…

C# Bitmap类学习1

Bitmap对象封装了GDI中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义的图像的对象。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using …

mybatis----小细节

1、起别名 在MyBatis中&#xff0c;<typeAliases>元素用于定义类型别名&#xff0c;它可以将Java类名映射为一个更简短的别名&#xff0c;这样在映射文件中可以直接使用别名而不需要完整的类名。 下面是一个示例&#xff1a; 在mybatis核心配置文件中配置typeAliases标…

第21课 在Android Native开发中架起java与c++互通的桥梁

在开始本节课&#xff0c;我尝试把项目拷贝到另一台电脑上以便继续工作&#xff0c;但出现了大量的“could not be resolved”问题&#xff0c;尝试包含新的include路径也无法解决该问题&#xff0c;最后删除了项目的Native Support&#xff0c;然后重新添加Native Support才解…

百科同名就不能重建一个百科吗,代创建百科公司是如何做到的

发现自己的名字在百度上已经有百科词条并不出奇&#xff0c;因为同名同姓的人非常多&#xff0c;但是是不是百科已经有同名词条了就不能重建一个百科&#xff0c;很多朋友在自己做百度百科不通过时往往会发出这样的疑问。 实际上百度百科同名也是可以再重新创建的&#xff0c;…

【K8S】Service使用NodePort对外暴露应用

一、背景介绍 Pod是有生命周期的&#xff0c;当一个工作节点(node)销毁时&#xff0c;节点上运行的pods也会被销毁。ReplicationController会动态地在其他节点上创建Pod来保持应用程序的运行&#xff0c;每一个Pod都有一个独立的IP地址&#xff0c;甚至是同一个节点上的Pod。可…

菜鸟导入导出assetbundle

因为菜鸟不会用unity c#什么的&#xff0c;所以最后参考贴吧的方法用的是UABE(Unity Assets Bundle Extractor)和UABEA(Unity Assets Bundle Extractor Avalonia) 可以去github上下载 对于txt、xml什么的可以直接改&#xff0c;但是byte文件里还是会有一些类似乱码的东西&…