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

19、【Ubuntu】【远程开发】技术方案分析:远程桌面

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

上篇 blog
【Ubuntu】【远程开发】技术方案分析:私网ip掩码
局域网 IP 中掩码的相关概念,下面继续

远程开发

之前 blog 【Ubuntu】【远程开发】技术方案分析:公私网ip 说了,想要远程连接办公,得有个公网 IP,相当于寄快递时,快递上得有收货的街道地址,基于这个点,下面来对比一些技术方案:远程桌面,VPN,内网穿透

远程桌面

一种应用层协议(如 Windows 的远程桌面,开源的 VNC、向日葵,RustDesk 等),允许在一个设备上直接操作另一台设备的图形化桌面,就像坐在那台电脑前一样

远程桌面的操作一般如下

  • 目标电脑先开启远程桌面服务,或者远程控制软件需要先点击接受远程之类的设置选项
    在这里插入图片描述

  • 控制端通过 IP + 端口连接(对于 Windows 的远程桌面)
    在这里插入图片描述
    或者对于一些远程控制软件,点击发起远程之类的设置选项
    在这里插入图片描述

  • 然后就可以使用了,传输的直接是屏幕画面,用的是鼠标键盘指令,就像在家里操作电脑一样

前提是目标电脑必须有公网 IP(共享的也行,不需要独立 IP,只要能上网就行) 或在同一局域网内,否则无法直接连接,核心目的是远程操作电脑的桌面

下面说下这类工具的基本原理,这类工具的连接过程大致可以分为下面三个步骤

一、被控端(目标电脑)主动连接中继服务器

  • 当在目标电脑上打开远程桌面控制软件并登录账号时(点击发起远程),软件会主动向远程服务提供商的公网服务器发起一个出站连接
  • 这个连接从内网到外网,不受网络地址转换 NAT 限制(内网设备访问外网服务器是允许的)
  • 连接建立后,远程服务器就知道,用户 A 的设备(比如 ID: ABC123)已上线,可通过这个连接与其通信
    在这里插入图片描述

这里的关键点在于连接是由内网设备主动发起的,绕过了外网无法访问内网的限制

二、控制端也连接同一中继服务器
当在外地用电脑打开同样的远程桌面软件,点击远程连接 ABC123时,电脑也会连接到同一个远程中继服务器,这里服务器就知道用户 A 想要控制设备 ABC123,而且 ABC123 也已经在线
在这里插入图片描述

三、中继服务器牵线搭桥
远程中继服务器不会直接发送操作指令设备 ABC123,而是处理中继转发,将远端的控制请求通过已建立的连接转发给内网的被控端,被控端收到指令后执行操作,并将屏幕画面压缩后,通过同一个连接发回给中继服务器,服务器再将画面数据转发回本地电脑

一些高级工具,比如 RustDesk,会尝试进行 P2P 打洞直连,这种方式需要 NAT 类型允许,双方设备会协商出一个直接通信的路径,绕过中继服务器,获得更低延迟的连接,如果打洞失败(比如在对称型 NAT 下),则退回到中继模式

可以看到,在公网环境下,远程桌面采用的是类似内网穿透的技术

内网穿透的几个核心要素:

  • 内网设备无法被外网直接访问
  • 需要一个公网服务器作为中介
  • 内网设备主动连接公网服务器
  • 外部用户通过服务器间接访问内网
  • 实现外网对内网服务的访问

远程桌面这里是:

  • 目标电脑在 NAT 后,共享公网 IP,ping 不通,端口无法被扫描
  • 远程桌面的中继服务器,有固定公网 IP
  • 被控端开机后可以远程连接中继服务器,建立长连接隧道
  • 控制端通过中继服务器找到并连接被控端,数据经服务器中继
  • 最终实现从外网远程操作内网电脑的桌面

内网穿透是一种技术类别或目标:让外网能访问内网服务,SSH 反向隧道,frp,向日葵、RustDesk、远程桌面等都是实现内网穿透的具体工具或方案,区别在于:

  • 使用的协议(SSH、自定义 TCP/UDP、WebRTC 等)
  • 是否支持 P2P 直连
  • 是否开源,是否免费
  • 用户体验,是图形化,还是命令行

其底层思想基本一致:内网主动连接,借助公网跳板,实现反向访问

ok,先到这里,下篇 blog 继续

http://www.dtcms.com/a/569999.html

相关文章:

  • 从零到一:我的开源AI商业化实战之路
  • 景县网站建设在线培训平台
  • 第21课:前端界面开发:用Gradio构建RAG应用UI
  • 网站原型图是什么做网站的数据从哪里来
  • 网站文件权限设置金融投资网站源码
  • 织梦手机网站怎么修改密码html网站设计模板下载
  • 哪种网站开发最简单家庭宽带做网站稳定吗
  • 浅谈Linux内核kswapd的内存域(zone)扫描机制
  • 什么是北斗短报文终端?与卫星电话有什么区别?
  • Maven基础(一)
  • MAC-SQL:黄金标准错误
  • 怎样创建基本的网站电子商务网站建设的试卷
  • 网站加盟代理wordpress 本地调试
  • 如何使用AI快速编程实现标注ROS2中sensor_msgs/msg/Image图像色彩webots2025a
  • 专业定制网站开发公司做纺织的用什么网站
  • 20251104让AIO-3576Q38开发板跑Rockchip的原厂Android14进行性能测试【使用天启的DTS】
  • 【案例】三维扫描实现
  • 无人设备遥控器之天线技术分析
  • 宁波市建设工程监理协会网站工程公司年会发言稿
  • 广州旅游团购网站建设中山seo
  • mlir 编译器学习笔记之四 -- 调度
  • 网站建设实施步骤网站源代码上传
  • 2025年 汽车零部件行业MES厂商分析
  • 学校网站制作公司公司企业邮箱怎么填写
  • 网站改版 目的网络建设公司前景
  • Milvus:索引概述(十二)
  • 【25真题】C9之一,质量极高!
  • GitPuk零基础学习,如何进行标签管理
  • Git多分支开发规范与操作指南
  • 国外网站app网址提交大全