跳至主要内容
五折优惠 全部方案,限时优惠。起价 $2.48/mo
13 min left
远程访问与办公

什么是 RDP:远程桌面协议与 RDP 服务器

Rexa Cyrus 作者 Rexa Cyrus 13 分钟阅读 更新者 Jonas 3d ago
What Is RDP? title card contrasting Remote Desktop Protocol with an RDP server: a laptop running a remote Windows desktop session linked to a hosted Windows server stack

问 RDP 是什么,你会得到两个答案,两个都对。一个是从 Windows NT 时代就随 Windows 一起出厂的功能。另一个是按月出租的 Windows 机器,人们把它叫作「一台 RDP」。

如果雇主或客户让你「用 RDP」,他几乎肯定指的是第一个。你大概已经有了。如果你是在某家供应商页面上看到 RDP、旁边还标着价格,那你看的是第二个。

RDP 有两个不同的意思

Decision chart: if you already have a Windows machine to connect to, such as an office PC, Windows Server or existing VPS, you only need the RDP protocol and a client; if you do not, you rent a hosted Windows VPS with RDP enabled, so you need the machine plus RDP

RDP 是 Remote Desktop Protocol 的缩写,即远程桌面协议。它是微软用来通过网络从一台计算机控制另一台的协议,并且内建于 Windows。同样这三个字母也会出现在主机商的产品页上。在那个语境里,「RDP 服务器」通常指一台托管的 Windows 机器,往往是一台 VPS,上面已经启用了远程桌面。你通过协议连到它。

那么:在你的情形里 RDP 是什么?这取决于你在哪里看到这个词。安装说明通常指协议;主机方案的列表往往指一台启用了 RDP 的出租 Windows 机器。

微软在 1998 年开发了 RDP。它首次随 Windows NT Terminal Server 的第一个版本一起发布。在一台 Windows 电脑上,客户端那一半已经装好、也已经付过钱了。它叫「远程桌面连接」,你在开始菜单的搜索框里输入这个名字就能找到。微软也发布了更新的客户端,包括 Windows App。它们在 Windows 之外的 许多不同类型的设备上 都能用。

如果你需要连的那台机器已经存在,而且运行的版本能够承载远程桌面,那么通常并不需要另外买一个 RDP 产品。这涵盖了一台办公电脑、一台由你的团队运维的服务器,或者你已经有的一台 VPS。开启访问权限,让主机可达,然后打开客户端、输入地址并登录。

远程桌面协议如何运作

任何 RDP 连接成功之前必须满足三个条件,而失败几乎总是出在其中之一。远程桌面必须在主机上打开。主机必须能从你所在的位置连到,也就是同一个办公网络,或者一条穿过互联网的开放路径。而且你必须有一个主机认可的账户或凭据,并具备远程登录的权限。输入 IP 地址只是三者中的最后一步。

这些条件到位后,一次会话分三个阶段进行:

  1. 设置。 管理员在主机上开启远程桌面,并决定谁可以连接。此时 加固一台 RDP 主机 的成本最低,因为还没有任何东西暴露出去。
  2. 连接。 客户端发送主机地址和你的凭据。如果被接受,主机就为你的账户开启一个会话。 从 Windows 连接 的步骤是一样的,无论主机就在你旁边还是在另一个国家。
  3. 通信。 主机把桌面图像发给你;你的键盘和鼠标输入则往回传。你的应用程序运行在主机上,而不是你自己的机器上。

在底层,RDP 把不同种类的会话数据分到逻辑虚拟通道里,再把这些通道复用到同一条连接上。屏幕更新、输入、打印和设备重定向可以分别处理、分别排定优先级,尽管它们仍然共用同一条网络路径。会话流量在传输过程中是加密的。微软自己的架构文档把管理这些通道的组件归入 ITU 的 T.120 系列。T.122 定义多点服务;T.125 定义数据传输协议。

需要记住的数字是 3389。远程桌面 默认监听 3389 端口,而且 TCP 和 UDP 都监听。这个端口可以通过注册表修改。两者之中 UDP 更新一些。它随 RDP 8.0 更新到来,让管理员可以 同时使用 TCP 和 UDP。这样在丢包的网络上,会话降级会更平缓。当有人请你「为 RDP 打开防火墙」时,指的就是 3389。

RDP 能做什么

开启打印机重定向后,你桌上的打印机可以出现在远程会话里,就像它接在那边一样。这个叫作重定向的手法,构成了 RDP 与一个单纯的屏幕查看器之间大部分的差别。

属性它做什么为什么它很重要
智能卡身份验证接受带内嵌芯片的物理安全令牌比单独一个密码更牢靠
带宽降低对桌面更新进行编码和压缩,而不是发送未处理的全屏视频在慢速连接上仍然可用的会话
多显示器使用在一个会话中驱动不止一台显示器远程桌面与你的实际显示器布局相符
GPU 支持在受支持且已启用的场合,可以使用主机的 GPU 加速和硬件 H.264/AVC 编码图形负担重的应用程序仍然看得下去
音频重定向通过你本地的扬声器播放远端声音视频和通话在会话内可以正常工作
文件系统重定向把你的本地磁盘暴露给远程会话复制文件不需要第三方工具
打印机重定向把你的本地打印机暴露给远程会话不必为了在你这一端打印而先导出文档
端口重定向在配置好的情况下支持串行/COM 重定向和部分 USB 重定向兼容的外围设备可以在远程继续可用

GPU 那一行带着一个值得知道的保留条件。旧的 RemoteFX vGPU 组件已经没有了。微软把 RemoteFX 3D 显示适配器 列在已移除的 Windows Server 功能里,并转而指向 Discrete Device Assignment。该组件还带有一个远程代码执行漏洞, CVE-2020-1036。现代 Hyper-V 主机可以通过 Discrete Device Assignment 或 GPU 分区来提供 GPU 资源,而不再用 RemoteFX vGPU。这也是 远程游戏配置 对主机硬件如此挑剔的原因。

能否同时有多人登录,是主机的属性,而不是协议的属性。单独一个 Windows 桌面通常只服务一个交互式会话。在一台 Windows Server 上承载许多相互隔离的会话,是远程桌面服务的活儿,不是单纯 RDP 的活儿。在常规的 Windows Server RDS 部署中,每个用户或设备还需要相应的 RDS CAL 许可。在向一个团队承诺一台共享机器之前,请把会话模型和许可两件事都核对清楚。

RDP 不足的地方

RDP 是个好协议,但带着四项具体的代价。其中三项要靠你自己管。第四项决定 RDP 到底是不是合适的工具。

开放互联网上的 3389 端口

Exposed versus protected RDP: a public port 3389 invites internet scanning, credential guessing and direct exposure, while a protected host puts a VPN or RD Gateway, access controls, source IP restrictions and MFA in front of port 3389

不要把 RDP 直接放到公网上。一个朝向互联网的 3389 是常见的初始入侵通道,而且历史有据可查。 CVE-2019-0708,也就是人们所说的 BlueKeep,允许未经身份验证的攻击者在目标上执行代码。连上去并发送特制请求就足够了。

BlueKeep 和 DejaBlue 都在 2019 年被公开并修补。但它们利用的那种暴露模式并没有消失。针对一个开放端口猜测凭据,从一开始就不需要什么漏洞。

缓解措施都很平常。把主机放到 VPN 或远程桌面网关后面,这样端口就不会从任意地址可达。限制哪些源地址可以连接。在你的架构支持的地方,为访问层加上多因素认证,例如一套 RD Gateway 部署。按你能坚持的节奏安装 Windows 更新。如果这台机器必须能从任何地方连到,那么 对失败登录做速率限制 也属于那份清单。

连接就是体验本身

你看到的每一帧都穿过了一段网络。在稳定的链路上,RDP 感觉接近本地。在拥塞或高延迟的链路上,每一次按键都迟到,而延迟会在一句话里累积起来。大文件操作比屏幕重绘更糟。移动网络会放大这一切。 在 Android 设备上用 RDP 时,先降低会话分辨率再去怪服务器会更有帮助。

会话的代价由主机承担

渲染桌面、编码桌面以及运行你的应用程序,全都发生在主机上。一台运行后台服务毫不吃力的机器,可能在有人开始交互式使用它的那一刻就吃紧起来。每多一个会话就更糟一些。给主机定规格时,按你打算在里面做的工作来定,而不是按它今天做的工作来定。

主机上是 Windows,客户端上几乎什么都行

这就是决定工具选择的那道界线。客户端一侧受到的约束少得多。主机一侧则不然。微软的文档点明了 能够承载会话的版本:Professional、Enterprise、Education 和 Windows Server。家庭版不行。

正是这一点把微软内建的 RDP 承载能力限制在 Windows 上。macOS 并不原生提供 RDP 主机,所以要控制一台 Mac,你会被引向另一种远程访问工具。Linux 是值得知道的例外。开源的 xrdp 实现可以在完全不用微软任何东西的情况下响应 RDP 连接,而 在 Ubuntu 上使用 xRDP 是通常的起点。

主机商说的「RDP 服务器」是什么意思

你买下一台,供应商给你连接信息:通常是一个 IP 地址、一个用户名和一个密码。没有实体机箱,也没有本地安装程序。视供应商而定,你可以在开通时选择 Windows 版本;服务器本身在数据中心里运行,在你连接之前远程桌面就已经启用。

在主机方案的列表里,这个产品通常是一台启用了 RDP 的 Windows VPS。这台 VPS 在共享的物理基础设施上运行自己的 Windows 环境,而你租用的是虚拟机,并不拥有硬件。供应商会预先配置好协议那一半,所以在你第一次连接之前,主机已经启用、可达并且在运行。

各档方案之间的主要变量,是这台机器只属于你还是共享的。这决定了你可以安装什么,以及当邻居忙起来时会发生什么。界线就在这里: 共享 RDP 与管理员 RDP 方案.

用一台托管的 RDP 服务器你会得到什么

第一次会话是这样的。打开远程桌面连接,粘贴地址,然后输入发给你的用户名和密码。一个 Windows 桌面出现了。从那一刻起,它的表现就和任何其他 Windows 机器一样。你安装软件、上网、运行应用程序,并在关掉窗口后让这些东西继续运行。

你付钱买的是底下那一层。硬件、网络和物理安全归供应商所有。在你自己的笔记本没开机时,也是它让机器保持通电。请把界线弄清楚。在非托管方案里,Windows 内部发生的一切仍然归你。更新、用户账户和防火墙规则都是你的工作。一台托管服务器把硬件问题从你桌上搬走了;它并没有把打补丁的问题搬走。

实践中还有两个属性重要。资源通常是弹性的,所以规格不足的机器可以在不重建的情况下加 CPU 或内存。而位置是一个你只选一次、却每天都感受得到的决定,因为距离设定了会话响应速度的下限。供应商在这两点上、以及在他们愿意碰多少层技术栈上,各有不同。值得权衡的三个点就在这里: 挑选 RDP 供应商.

谁在用 RDP 服务器

下面这四种情形需要的是同一样东西:一台保持通电、保持可达、并且不会装进包里到处跑的 Windows 机器。

远程与分布式团队

一台托管桌面让每个团队成员拿到同样的工具和同样的文件,不管他面前是什么硬件。只要剪贴板、磁盘和其他重定向策略配置得当,它可以把工作数据留在公司掌控的机器上,而不是存在本地。

开发与测试环境

构建和测试需要的硬件大部分时间都是闲着的。按月租用就不必为峰值去买硬件。一台被搞坏的测试机可以重建,而不会有人丢掉自己的工作站。

培训与实验环境

把一台一模一样的预配置桌面交给每个学员,意味着每个学员都从同样的状态开始。没人会把第一堂课花在装软件或排查某一台笔记本的驱动问题上。

合同工与自由职业工作

客户可以给承包方一个独立的工作环境,而不必让对方直接访问公司的工作站。只要剪贴板、磁盘和其他重定向通路受到限制,数据就可以留在托管机器上。项目结束时,账户或机器都可以移除。

值得知道的 RDP 替代方案

下面三个替代方案里有两个能控制 Mac。这一类工具正是围绕这条轴线展开的。检验标准不是哪个工具功能更多,而是目标机器运行什么,以及你能不能连到它。

工具支持的目标平台你如何连到它
远程桌面协议Windows主机自己的地址,默认走 TCP 或 UDP 3389 端口
Chrome 远程桌面Mac、Windows 或 Linux通过浏览器,连接时输入一个 PIN
TeamViewerWindows、macOS、Linux 以及受支持的 Android 设备;在 iOS/iPadOS 和 ChromeOS 上仅限屏幕共享远端设备上装 TeamViewer 软件;连接一方用桌面客户端或网页客户端
UltraVNCWindows一个 Windows 查看器,或者从 Linux、macOS 及其他系统使用的 Java 查看器

谷歌自己的文档讲到了 设置 Chrome 远程桌面 以远程访问一台 Mac、Windows 或 Linux 计算机,而这恰恰是 RDP 无法覆盖的情形。它是这里最容易跑起来的选项。它同时也是把最多第三方基础设施放进连接路径的那一个,而 它的安全权衡就在那里.

TeamViewer 在这里覆盖的平台范围最广,但对每个目标的支持并不一致。它的 当前支持矩阵 包含 Windows、macOS、Linux、Android、iOS/iPadOS 和 ChromeOS;其中 iOS/iPadOS 和 ChromeOS 属于屏幕共享,而不是完整的远程控制。

VNC 家族是技术上最近的亲戚,实践中却最不一样。 UltraVNC 自己的文档 描述了一个仅限 Windows 的服务端,以及给其他平台用的基于 Java 的查看器。它还把加密当作插件而不是默认设置,这是在不可信网络上运行它之前最需要知道的一点。在 Windows 主机上, 在 RDP 与 VNC 之间的选择 通常就归结于这一点。

什么时候租一台 Windows 机器才是正确答案

RDP 的主机那一侧可以归结成一份简短的规格:一台保持通电且可达、有足够 CPU 和内存做交互式工作、并且会打补丁的机器。如果你已经有这台机器,而且它能够承载远程桌面,那就没有另外要买的 RDP 服务。启用远程桌面,让主机可达,然后用客户端连上去。

如果你没有,那份规格正是一台托管 RDP 服务器所填补的。在 Cloudzy,我们的 Windows RDP 服务器 出厂即预装 Windows Server 并已启用远程桌面,带 99.95% 的正常运行时间 SLA。它们运行在北美、欧洲、中东和亚太的数据中心,所以你可以把机器放在使用它的人附近。如果延迟比你期望的更差,有 14 天退款保证。

常见问题

RDP 是免费的吗?

RDP 协议本身和 Windows 内建的客户端都不单独收费。如果你已经拥有或运维一台受支持的主机,就可以连上去,而不必购买什么「RDP」产品。花钱的是另一端那台机器。以月费宣传「一台 RDP」的供应商,租给你的是一台托管的 Windows 服务器,不是协议。

我能在 Mac 或 Linux 上用 RDP 吗?

从两者都可以连接。微软为 macOS 和另外几个平台提供了 Windows App 和远程桌面客户端;在 Linux 上,你需要一个第三方 RDP 客户端。承载则是反方向的事。Linux 可以通过 xrdp 响应 RDP,而 macOS 并不原生提供 RDP 主机。

远程桌面协议和 VPN 是一回事吗?

不是。RDP 给你的是某一台特定机器的屏幕和键盘。VPN 把你的设备放进一个网络,让你能触达网络里的东西,但它不会交给你一个桌面。两者常常一起使用:VPN 提供私有通路,RDP 在其上运行会话。

我该改掉默认的 RDP 端口吗?

那能减少噪音,减不了风险。无目标的扫描会查一下 3389 就走开,所以换一个端口能让那类流量不再出现在你的日志里。但它不是访问控制:一次针对你地址的扫描照样会找到这个服务。把它当作收拾屋子,绝不要当作限制访问的替代品。

分享

博客更多内容

继续阅读。

准备好部署了吗? 起价 $2.48/月。

独立云厂商,自 2008 年起。AMD EPYC、NVMe、40 Gbps。14 天退款保证。