Linux/服务器

远程桌面连接指南

2022-07-15  本文已影响0人  QiShare

概念

从远程连接您的家用/办公计算机或与他人共享您的屏幕,对远程机器进行的操控类似本地机一样。
可以完成多项功能包括:

产品

Chrome 远程桌面

Chrome 远程桌面是由谷歌开发的远程桌面软件工具,它允许用户通过同样由谷歌开发的专有协议(内部称为Chromoting )远程控制另一台计算机的桌面。该协议将键盘和鼠标事件从客户端传输到服务器,通过计算机网络将图形屏幕更新转发回另一个方向。因此,此功能由主机的服务器组件和客户端组成访问远程服务器的计算机上的组件构成。该协议使用 VP8 视频编码,通过低带宽连接以高性能的方式向用户显示远程计算机的桌面(来源不可靠)说明文档

远程访问

  1. 您可以设置对您的 Mac、Windows 或 Linux 计算机的远程访问权限。
  2. 在计算机上打开 Chrome。
  3. 在地址栏中输入 remotedesktop.google.com/access
  4. 在“设置远程访问”下,点击“下载”图标 下载网页。
  5. 按照屏幕上的说明下载并安装 Chrome 远程桌面。
  6. 您可能必须输入计算机密码才能授予 Chrome 远程桌面访问权限。系统也可能会提示您在“偏好设置”中更改安全设置。

远程支持

您可以授权他人远程访问您的计算机。他们将拥有对您的应用、文件、电子邮件、文档和历史记录的完全访问权限。

  1. 在计算机上打开 Chrome。
  2. 在屏幕顶部的地址栏中输入remotedesktop.google.com/support ,然后按 Enter 键。
  3. 在“获取支持”下,点击“下载”图标 下载网页。
  4. 按照屏幕上的说明下载并安装 Chrome 远程桌面。
  5. 在“获取支持”下,选择生成代码。
  6. 复制此代码,然后将它发送给您希望与其共用计算机的人员。
  7. 当对方在网站上输入您提供的访问代码时,您会看到一个包含其电子邮件地址的对话框。选择共享即可向对方授予对您的计算机的完全访问权限。
  8. 要想结束共享会话,请点击停止共享。

访问代码只能使用 1 次。当您与他人共用您的计算机时,系统会每 30 分钟就让您确认是否要继续共用计算机。


Chromoting

它是如何工作的

通信是使用 Google 的 Jingle 协议完成的,该协议基于 XMPP,并已在 Google 的 IM 和视频聊天客户端中使用。

WebRTC

WebRTC ( Web Real-Time Communication ) 是一个免费的开源项目,通过应用程序编程接口(API)为Web 浏览器和移动应用程序提供实时通信(RTC )。通过允许直接的点对点通信,它允许音频和视频通信在网页内工作,无需安装插件或下载本机应用程序

Microsoft

windows系统自带了远程桌面的功能,使用的底层协议是RDP(Remote Desktop Protocol)


连接步骤

  1. 打开要连接电脑的远程桌面设置
  2. 在另一台电脑打开远程桌面连接程序
  3. 输入ip、用户名、密码

实际操作可能会有些连接不上的问题,在网上搜索解决即可

RDP

远程桌面协议( RDP ) 是Microsoft开发的专有协议,它为用户提供图形界面以通过网络连接连接到另一台计算机。用户用于远程连接的计算机需要安装 RDP 客户端软件,而另一台被连接计算机必须运行 RDP 服务器软件。
作为 Microsoft 的私有协议,RDP 仅适用于 Windows 系统,尽管该客户端适用于几乎所有操作系统,大多数版本的Microsoft Windows(包括Windows Mobile)、Linux、Unix、macOS、iOS、Android和其他操作系统都存在客户端。
RDP 服务器内置于 Windows 操作系统中,在设置中打开远程连接开关后会自动开启此服务,可以到计算机->管理->服务下查看服务是否启动。默认情况下,服务器侦听TCP 端口3389 和UDP端口 3389。


如果有连接不上情况也可以到此页面排查,查看服务是否“正在运行”状态,没有需要关闭禁用,并运行服务
RDP 的基本功能是将监视器(输出设备)从远程服务器传输到客户端,并将键盘和/或鼠标(输入设备)从客户端传输到远程服务器。 RDP 连接期间的数据传输将非常不对称,因为大部分数据将从服务器传输到客户端。
在我们了解 RDP 连接的实际工作原理之前,先看下RDP 所依赖的协议/标准。 RDP 协议栈如下所示:


通过 RDP 栈发送和接收数据本质上与 7 层 OSI 模型进行通信相同。传输的数据被分段、定向到一个通道、加密、打包、成帧和分包,然后通过线路传输到另一方,然后反向执行相同的过程。了解更多

外网访问

当你使用远程桌面客户端连接到你的电脑时,将创建对等连接。 这意味着你需要直接访问电脑(有时称为“主机”)。 如果需要从运行电脑所在的网络外部连接到电脑,则需要启用该访问。 你有两种选择:使用端口转移或设置 VPN


MAC

您可以使用屏幕共享在离开时访问您的 Mac,在其他人的 Mac 上解决问题,或者就网站或演示文稿等项目与其他人展开协作。
如果在 Mac 上启用了屏幕共享,则可以从网络上的其他 Mac 查看您的 Mac 桌面。共享屏幕后,其他 Mac 的用户就可以查看您屏幕上的内容,可以打开、移动和关闭文件和窗口,打开 App,甚至重新启动 Mac。参考链接

打开屏幕共享

1、点击“系统偏好设置”,然后点按“共享”


image.png

2、选中Screen Sharing
3、在另一台电脑浏览器输入vnc://xxx.xxx.xx.x
4、输入登录用户名密码登陆

VNC

VNC(Virtual Network Computing)虚拟网络计算是一种图形桌面共享系统,它使用远程帧缓冲协议 (RFB)来远程控制另一台计算机。它将键盘和鼠标输入从一台计算机传输到另一台计算机,通过网络传递图形屏幕更新。
使用它可用控制远程计算机,同时,远程用户也可以观看和交互,它是基于像素的,这意味着它比 RDP 更灵活。 VNC 是平台无关的,这意味着它可以很容易地跨 Mac、Windows、Linux、Raspberry Pi 和其他平台使用,在不同的计算机之间共享一个桌面,并且使用 VNC 应用程序连接到不同计算机上的不同计算机没有限制平台,多个客户端可以同时连接到 VNC 服务器。该技术的流行用途包括远程技术支持和从家庭计算机访问工作计算机上的文件,反之亦然。
VNC各平台下载链接

VNC和RDP对比相似

那么,从表面上看,这两种方法听起来非常相似。但它们之间的差异是惊人的。虽然他们的目标是为计算机或设备提供远程桌面功能,但不同之处在于实现目标的方式

VNC和RDP对比不同

Linux

Linux下远程登陆场景,常见为后端服务器登陆,可以借助XShell、FinalShell等远程连接工具。

连接步骤

  1. 指定远程登陆服务器ip、端口(默认22)
  2. 指定登陆用户名、密码

SSH

Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为Linux系统的标准配置
SSH 是一种协议,可用于许多平台上的许多应用程序,包括大多数Unix变体(Linux、BSD ,包括Apple 的 macOS和Solaris)以及Microsoft Windows

TeamViewer

TeamViewer是一个全面的远程访问、远程控制和远程支持解决方案,适用于几乎所有桌面和移动平台,包括 Windows、macOS、Android 和 iOS。TeamViewer 可让您远程访问位于世界任何地方的计算机或移动设备,并像身临其境一样使用它们

连接步骤

  1. 在您要开始连接的设备上下载并安装 TeamViewer ,例如台式机或移动设备。
  2. 在您要访问的目标设备上安装 TeamViewer 。这可能是另一个桌面或移动设备,甚至是销售点系统、信息亭或物联网设备。
  3. 在传出设备上输入连接伙伴的 ID 和密码,实时连接,控制目标设备,犹如身临其境。

三方服务器

TeamViewer、LogMeIn 和任何其他允许零配置远程桌面会话的程序都使用第三方服务器。
例如,LogMeIn 是一个类似于 TeamViewer 的程序,您可以在其中远程登录到您当前所在网络之外的计算机。您会注意到这种类型的远程会话不需要外部配置。这是因为您安装在远程计算机(LogMeIn 客户端)上的软件会向 LogMeIn 服务器发起传出请求。由于此客户端发起了请求,因此不需要防火墙上的端口转发。
在您的计算机上,在 LogMeIn 计算机的网络之外,可以通过 LogMeIn 的网站远程访问这台计算机。该网站接受来自远程计算机的发起请求,并保持连接活动以侦听远程会话请求。
当您运行 TeamViewer 时,您会在其代理服务器上分配一个 ID。您与 Teamviewer ID 建立连接,TeamViewer 通过 TeamViewer 客户端建立的隧道将连接向下传递到目的地,然后提示您输入密码,然后建立连接

Guacamole

Apache Guacamole是一个无客户端远程桌面网关。它支持标准协议,如 VNC、RDP 和 SSH。
我们称其为无客户端(clientless),因为不需要插件或客户端软件。
有了 HTML5支持,只要在服务器上安装了 Guacamole,您只需一个网络浏览器即可访问您的桌面。
作为一个开源项目,整体包含了三部分:apache/guacamole-serverapache/guacamole-clientapache/guacamole-website

连接步骤

  1. 服务器搭建guacamole,有两种可选方式:
    • 下载guacamole-server源码编译,启动guacd
    • docker命令安装(参考oznu/guacamole)
docker run \
-p 8080:8080 \
-v </path/to/config>:/config \
  oznu/guacamole

启动后浏览器查看http://localhost:8080,可以看到guacamole管理页面,默认登录用户名,密码都为: guacadmin

  1. guacamole管理后台添加远程机器配置:
    • 选择VNC、RDP、SSH协议
    • 输入ip、port(VNC默认端口5900、RDP:3389、SSH:22)
    • 登陆用户名、密码

详细文档可参考guacamole手册

保存,回到首页,点击新添加的链接即可在浏览器完成登录远程
guacamole的优点是,只要完成一次服务器的搭建和远程机器连接配置之后,后续想要再往别的机器上远程登录就无需下载各个协议对应的客户端,只要有浏览器可以访问到guacamole服务器即可,即使是手机也可以,非常方便。

架构实现

Guacamole 不是一个独立的 Web 应用程序,它由许多部分组成。 Web 应用程序实际上旨在简单和最小化,大部分繁琐的工作由较低级别的组件执行。


image.png

用户使用他们的网络浏览器连接到Guacamole服务器。 Guacamole 客户端由 JavaScript 编写,通过Guacamole 服务器中的一个webserver为用户提供服务。加载后,此客户端使用 Guacamole 协议通过 HTTP 连接回服务器。
部署到 Guacamole 服务器的 Web 应用程序读取 Guacamole 协议并将其转发到 guacd,即本机 Guacamole 代理。这个代理实际上解释了 Guacamole 协议的内容,代表用户连接到任意数量的远程桌面服务器。
Guacamole 协议与 guacd 相结合提供了下层协议屏蔽:无论是 Guacamole 客户端还是 Web 应用程序都不需要知道实际使用的是什么远程桌面协议

总结

本文我们主要了解了几种常见的远程操作桌面的方式及其简单原理分析,认识了VNC、RDP、SSH等远程桌面协议,以及guacamole作为无客户端、跨协议实现的底层原理
总体来说,每种类型方式都有对应的使用场景,其中guacamole在有大量远程设备需要控制时,可以类似一个网关,并提供类似后台管理页面,点击即可连接非常方便,并且又是开源项目,前端可自定义样式。但是由于底层还是基于点对点的标准协议,仍然需要在同一网段才能访问,并且需要登录凭证的特点,对于远程登录客户电脑提供协助的情景并不是非常适用

参考

https://guacamole.apache.org/
https://guacamole.apache.org/doc/gug/introduction.html
https://www.realvnc.com/en/blog/vnc-vs-rdp-which-remote-desktop-tool-is-best/
https://www.cyberark.com/resources/threat-research-blog/explain-like-i-m-5-remote-desktop-protocol-rdp
https://www.miniorange.com/google-chromoting-remote-desktop-management
https://remotedesktop.google.com/

上一篇 下一篇

猜你喜欢

热点阅读