就像其他远程桌面协议一样,VNC 和 RDP 用于连接到远程设备,无论是在工作中、在路上还是在家里。两种协议都可以实现以下功能:
• 提供对设备图形用户界面的远程访问,允许执行操作,就好像连接用户就在远程设备前面一样。
• 让支持人员远程操作客户的设备,从而促进故障排除。
• 使用直接点对点通信将两个设备连接在一起。
VNC 和 RDP 都需要服务器和客户端上的软件。服务器是要连接的设备,客户端是连接的设备。为了使客户端能够访问服务器,需要将服务器软件配置为远程访问。
VNC 服务器软件适用于所有操作系统。默认情况下,RDP 服务器软件安装在所有当前支持的 Windows Server 版本以及 Windows 10 Professional 及更高版本上。已经有适用于 Linux 和 macOS 的 RDP 服务器软件。VNC 和 RDP 客户端软件也广泛使用。
VNC 使用开放远程帧缓冲区 (RFB) 协议远程访问其他设备。RFB 工作在帧缓冲区级别,即视频卡用来显示计算机屏幕上显示的数据的 RAM 部分。帧缓冲区存在于所有窗口操作系统和应用程序中,包括 macOS、Windows 和 Unix/Linux 上流行的 X Window 系统。
典型的 VNC 会话从客户端连接到服务器上的端口 5900 开始。建立连接后,服务器上的屏幕将逐像素发送回客户端。击键和鼠标点击也在客户端和服务器之间共享。
RDP 是Microsoft基于 ITU-T T.128 应用程序共享协议的专有协议。具有 RDP 服务器的 Windows 设备可以通过传输控制协议 (TCP) 端口 3389 或用户数据报协议 (UDP) 端口 3389 接收来自具有 RDP 客户端的设备的远程连接请求。
RDP 代替帧缓冲区,向客户端传输用于生成服务器屏幕的指令集。一旦指令发送完毕,服务器的屏幕就会出现在客户端上。
Windows NT 4.0 是第一个安装有 RDP 服务器的 Windows 版本。虽然 Microsoft 在后续 Windows 版本中改进了 RDP 服务器,但只有在早期 Windows 版本中的 RDP 也更新的情况下,这些服务器才能向后兼容。RDP 服务器现在也可在其他操作系统上使用。
Windows XP 有第一个 RDP 客户端,当时称为终端服务客户端。所有后续的 Windows 版本都附带了自己的客户端软件。当前的 Microsoft RDP 客户端称为远程桌面连接。RDP 客户端也可用于其他操作系统。
VNC 和 RDP 之间有几个主要区别:
• VNC设备上的管理员和用户都可以同时看到用户的屏幕。这使得 VNC 成为远程客户支持和教育演示等手持会话的理想选择。
• RDP 速度更快,非常适合虚拟化。与通过 VNC 传输的像素相比,RDP 中的指令集更小、网络效率更高并且使用的带宽更少。虽然无法在 RDP 中共享屏幕,但通过为用户分配不同的配置文件,您可以使用 RDP 共享服务器上可用的任何资源。这使得 RDP 成为虚拟化的理想选择。
• VNC 是平台无关的, RDP 是 Windows 原创版本,预装在所有 Windows 计算机上。它也仅适用于服务器端基于 Windows 的设备。但是,您可以使用在各种系统(包括 Linux、Mac、iOS 和 Android)上启用 RDP 的客户端程序。VNC跨平台兼容且独立于平台。有适用于多种操作系统的 VNC 应用程序,并且使用它们连接到运行多个操作系统的各种平台上的各种计算机没有任何限制。
• RDP 可能比 VNC 更安全。RDP 支持安全套接字层/传输层安全性 (SSL/TLS),并通过每次更新获得安全性改进。虽然旧版本容易受到中间人攻击,但其中一些安全漏洞(如果不是全部)已在后续版本中得到解决。虽然某些 VNC 软件实现了 Secure Shell (SSH),但并非所有软件都实现了。VNC 中的另一个潜在安全问题是它为连接到远程设备的用户提供完全访问权限。
• VNC 和 RDP 都有其局限性。由于它在帧缓冲区级别上运行,VNC 比 RDP 慢。另一方面,RDP 的局限性包括繁琐的设置和维护以及缺乏对移动设备的支持等。
• 将一台计算机的资源远程共享给一个或多个其他用户;
• 无需共享屏幕即可远程访问计算机;
• 当您需要支持多个显示器时。
• 服务器计算机上的用户仍然需要访问计算机;
• 屏幕共享是必要的,例如演示或教育课程;
• 每当服务器在 Windows 以外的平台上运行时。
RDP 和 VNC 是众所周知的出色系统,具有不同的具体用例,并且都为其特定目的提供了出色的解决方案。RDP更适合远程资源共享,而VNC则专门用于远程屏幕共享。本文主要关注 VNC 与 RDP 的比较,希望能够指导您正确选择最佳的远程访问技术,但这完全取决于您远程访问的具体需求。