当前位置: 首页 > news >正文

内网穿透、远程桌面、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的中转服务器,这样就不怕的数据被中转服务器窃取了。

相关文章:

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

最近在研究内网穿透的相关技术,然后回想起一些相关的技术,比如说要远程桌面公司的电脑,VPN连入内网等。然后想着在此处记录一下,各个的区别,这个纯粹是从技术层面的理解,此处不详细解释怎么去实现或者用什么…...

如何发布自己的npm包,详细流程

发布自己的npm包需要遵循以下具体流程: 创建npm账号:打开浏览器,访问npm官网,注册一个npm账号。 创建项目文件夹并进入:在本地创建一个项目文件夹,并使用终端进入该文件夹。 初始化包信息管理文件&#x…...

【书生·浦语大模型实战】“PDF阅读小助手”学习笔记

1 参考资料 《新版本Lmdeploy量化手册与评测》 2 项目资料 项目主页:【tcexeexe / pdf阅读小助手】 3 模型运行测试 在InternStudio平台中选择A100 (1/4)的配置,镜像选择Cuda11.7-conda,可以选择已有的开发机langchain; 3.1…...

用ChatGPT写申请文书写进常春藤联盟?

一年前,ChatGPT 的发布引发了教育工作者的恐慌。现在,各大学正值大学申请季,担心学生会利用人工智能工具伪造入学论文。但是,聊天机器人创作的论文足以骗过大学招生顾问吗? ChatGPT简介 ChatGPT,全称聊天生…...

uni-app导航栏自定义“返回按钮”多种方法设置原生返回

方法一、 导航栏返回按钮事件 onBackPress监听页面返回,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack表示来源是 uni.navigateBack;详见app、H5、支付宝小程序onBackPress() { this.back1(); …...

【kubernets】kubelet证书单独更新

前言说明 接上一篇文章https://blog.csdn.net/margu_168/article/details/132584109关于kubernets中的证书管理。本篇文章将单独说明一下kubelet的证书更新。在1.19.16版本中,默认情况下使用 kubeadm alpha certs renew all 不能更新kubelet的证书,其他…...

【STM32】STM32学习笔记-硬件SPI读写W25Q64(40)

00. 目录 文章目录 00. 目录01. SPI简介02. W25Q64简介03. SPI相关API3.1 SPI_Init3.2 SPI_Cmd3.3 SPI_I2S_SendData3.4 SPI_I2S_ReceiveData3.5 SPI_I2S_GetFlagStatus3.6 SPI_I2S_ClearFlag3.7 SPI_InitTypeDef 04. 硬件SPI读写W25Q64接线图05. 硬件SPI读写W25Q64示例06. 程序…...

防御保护---安全策略

文章目录 目录 一.安全策略概述 概述: 安全策略的作用: 安全策略与传统防火墙的区别 二.案例分析 练习 一.安全策略概述 概述: 防火墙安全策略的作用在于加强网络系统的安全性,保护网络免受恶意攻击、非法访问和数据泄露的威胁。…...

RustDesk私有化部署,自建远程桌面搭建教程

以linux操作系统为例: 解压安装 # 使用wget进行下载1.1.8-2版本(最新版本可以看上述发布地址) wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.8-2/rustdesk-server-linux-amd64.zip # 使用unzip解压 unzip rust…...

Flutter环境搭建【win10虚拟机】+夜神模拟器【主机】

Flutter环境搭建 0 Android Studio 与 VS Code 资源消耗对比1 系统配置要求2 Flutter SDK2.1 获取 Flutter SDK2.2 解压2.3 更新 path 环境变量Dart SDK 要兼容 Flutter SDK双击 flutter_console.bat 输入 flutter doctor 检测环境 3 VS code 与插件3.1 安装 VS code3.2 安装 f…...

【数据结构和算法】种花问题

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 ​​​​​方法一:贪心 2.2 贪心算法一般思路 三、代码 3.1 ​​​​​方法一&#xf…...

Vite+Electron快速构建一个VUE3桌面应用(一)

一. 简介 首先,介绍下vite和Electron。 Vite是一种新型前端构建工具,能够显著提升前端开发体验。Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入Chromium和Node.js到二进制的 Electron 允许您保持一个 JavaScript 代码代码…...

第二百八十九回

文章目录 1. 概念介绍2. 方法与细节2.1 实现方法2.2 具体细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何混合选择多个图片和视频文件"相关的内容,本章回中将介绍如何通过相机获取视频文件.闲话休提,让我们一起Talk Flutter吧。 1. …...

Likeshop多商户商城源码系统,支持二开

在电商行业高速发展的当下,拥有一套功能强大、易于操作的开源商城系统至关重要。Likeshop多商户商城系统正是这样一款集H5、小程序、独立APP于一体的开源电商解决方案,助力商家实现智能营销。 一、产品简介 Likeshop多商户商城系统为商家提供了丰富的营…...

Excel:将截面数据转换成面板数据

原始截面数据如下: 步骤:数据——自表格/区域 点击确定,出现下图: 然后,在这个界面选择:“转换”——“逆透视列”下选择逆透视其他列。会出现面板数据形式。 然后,点击“主页”——关闭并上载即…...

209.长度最小的子数组(力扣LeetCode)

文章目录 209.长度最小的子数组题目描述暴力滑动窗口 209.长度最小的子数组 题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度…...

Docker容器部署OpenCV,打造高效可移植的计算机视觉开发环境

推荐 海鲸AI-ChatGPT4.0国内站点:https://www.atalk-ai.com 前言 在计算机视觉领域,快速部署和测试算法是研究和开发的关键。OpenCV作为一个强大的开源计算机视觉库,广泛应用于各种图像处理和视频分析任务。然而,配置OpenCV环境可…...

【Linux】Linux系统编程——pwd命令

文章目录 1.命令概述2.命令格式3.常用选项4.相关描述5.参考示例 1.命令概述 pwd(Print Working Directory)命令用于显示用户当前工作目录的完整路径。这是一个常用的命令,帮助用户确定他们目前所在的目录位置。 2.命令格式 基本的 pwd 命令…...

暴力破解

暴力破解工具使用汇总 1.查看密码加密方式 在线网站:https://cmd5.com/ http://www.158566.com/ https://encode.chahuo.com/kali:hash-identifier2.hydra 用于各种服务的账号密码爆破:FTP/Mysql/SSH/RDP...常用参数 -l name 指定破解登录…...

VirtualBox安装Ubuntu22.04

目录 1、新建虚拟机 1.1、设置内存大小 1.2、创建虚拟硬盘 2、虚拟机设置 2.1、设置启动顺序​编辑 2.2、选择iso镜像文件 2.3、设置网络(桥接网卡) 3、启动 3.1、设置语言环境 3.2、系统更新安装(不更新) 3.3、选择键盘布局(默认即可) 3.4、选择安装类型 3.5、网…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

golang循环变量捕获问题​​

在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下: 问题背景 看这个代码片段: fo…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

【AI学习】三、AI算法中的向量

在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...

爬虫基础学习day2

# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...