所有托管服务节省 15%

测试技能,享折扣

使用代码: Skills 开始使用
China
Linux 安全 窗口

如何使用RDP从Windows连接到Ubuntu(2024完整指南)

远程桌面协议(RDP)是通过网络访问和控制远程计算机最可靠、使用最广泛的技术之一。虽然 Windows 计算机原生支持 RDP,但 Ubuntu Linux 并未内置 RDP 服务器——不过这一限制很容易克服。通过安装 xrdp(一款适用于 Linux 的开源 RDP 实现),您可以将任何 Ubuntu 计算机转变为功能完整的远程桌面服务器,Windows 客户端可使用内置的远程桌面连接工具进行连接。

无论您是在管理 VPS 托管环境、管理远程工作站,还是只需偶尔从 Windows 桌面以图形方式访问 Linux 计算机,本指南将引导您完成每个步骤:安装、防火墙配置、从 Windows 连接、排查常见问题以及安全加固。

什么是 xrdp,为什么要使用它?

xrdp 是微软远程桌面协议在类 Unix 操作系统上的免费开源实现。它在 Linux 上充当 RDP 服务器,接受来自任何标准 RDP 客户端的传入连接——包括每个 Windows 版本内置的原生远程桌面连接mstsc.exe)。

xrdp 的主要优势包括:

  • Windows 上无需第三方客户端——使用内置的 mstsc 工具即可
  • 完整的图形桌面访问——远程与完整的 Linux GUI 进行交互
  • 跨平台兼容性——适用于 Windows、macOS 和移动端 RDP 客户端
  • 持续开发与社区支持
  • 轻量级且易于配置

这使得 xrdp 成为系统管理员在无需复杂软件栈的情况下桥接 Windows 与 Linux 环境的首选解决方案。

前提条件

开始之前,请确保您具备以下条件:

  • 一台 Ubuntu 计算机(推荐 20.04、22.04 或 24.04 LTS),具有 sudo 权限
  • 您的 Ubuntu 计算机的 IP 地址
  • 一台可使用远程桌面连接的 Windows PC(所有 Windows 版本均已内置)
  • 两台计算机之间稳定的网络连接
  • 对 Linux 终端的基本熟悉程度

> 提示:如果您在云服务器或独立服务器上运行 Ubuntu,请确保您的托管服务商的网络防火墙(不仅仅是 UFW)也允许端口 3389 上的流量。

第一步:在 Ubuntu 上安装 xrdp RDP 服务器

Ubuntu 默认不包含 RDP 服务器,因此第一步是从官方 Ubuntu 软件源安装 xrdp。

1.1 — 打开终端

Ctrl + Alt + T 在您的 Ubuntu 计算机上打开终端窗口,或者如果您在无头服务器上操作,则通过 SSH 连接。

1.2 — 更新软件包列表

在安装新软件之前,始终更新软件包索引,以确保获取最新可用版本:

sudo apt update && sudo apt upgrade -y

1.3 — 安装 xrdp

sudo apt install xrdp -y

安装过程将自动拉取所有必需的依赖项。

1.4 — 启用并启动 xrdp 服务

安装完成后,启用 xrdp 以在启动时自动运行,然后立即启动它:

sudo systemctl enable xrdp
sudo systemctl start xrdp

1.5 — 验证 xrdp 是否正在运行

确认服务处于活动状态且运行无误:

sudo systemctl status xrdp

您应该看到类似以下的输出:

● xrdp.service - xrdp daemon
     Loaded: loaded (/lib/systemd/system/xrdp.service; enabled)
     Active: active (running) since ...

如果服务处于活动状态并已启用,您的 Ubuntu 计算机现在已准备好接受传入的 RDP 连接。

第二步:配置 UFW 防火墙以允许 RDP

默认情况下,Ubuntu 的简单防火墙(UFW)可能会阻止端口 3389 上的传入连接,而 3389 是标准的 RDP 端口。您必须明确允许此流量。

2.1 — 通过 UFW 允许端口 3389

sudo ufw allow 3389/tcp

2.2 — 启用 UFW(如果尚未激活)

如果您的系统上尚未启用 UFW,请使用以下命令激活它:

sudo ufw enable

> 警告:如果您通过 SSH 连接,请确保在启用 UFW 之前先允许 SSH 流量(sudo ufw allow OpenSSH),以避免将自己锁定在外。

2.3 — 验证防火墙规则

sudo ufw status

输出应将端口 3389/tcp 列为 ALLOW

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
3389/tcp                   ALLOW       Anywhere

您的 Ubuntu 计算机现在已配置为通过防火墙接受 RDP 连接。

第三步:查找您的 Ubuntu 计算机的 IP 地址

在从 Windows 连接之前,您需要知道 Ubuntu 计算机的 IP 地址。

在终端中运行以下命令:

hostname -I

或者获取更详细的网络信息:

ip addr show

记下 IPv4 地址(例如,本地网络为 192.168.1.105,或通过互联网连接时使用公网 IP)。如果您连接的是基于云的 VPS,可以在您的托管控制面板中找到公网 IP 地址。

第四步:使用远程桌面从 Windows 连接到 Ubuntu

xrdp 运行后且防火墙已配置完成,您现在可以从 Windows 计算机建立 RDP 连接。

4.1 — 打开远程桌面连接

在您的 Windows 计算机上,按 Windows + R 打开运行对话框,输入 mstsc,然后按 Enter

或者,在开始菜单中搜索 “远程桌面连接”

4.2 — 输入 Ubuntu 计算机的 IP 地址

在远程桌面连接窗口中,在计算机字段中输入您的 Ubuntu 计算机的 IP 地址:

192.168.1.105

如果您更改了 RDP 端口(在第六步中介绍),请附加端口号:

192.168.1.105:3390

4.3 — 发起连接

点击连接。您可能会收到证书警告——这对于自签名证书来说是正常的。点击继续。

4.4 — 登录 Ubuntu

xrdp 登录界面将会出现。输入您的 Ubuntu 用户名密码,然后点击 OK

片刻之后,您的 Ubuntu 桌面将在远程桌面窗口中加载。您现在可以像坐在计算机前一样与其进行交互。

第五步:排查常见 RDP 问题

即使设置正确,您也可能遇到一些常见问题。以下是解决方法。

问题 1:登录后出现黑屏

登录后立即出现黑屏是 xrdp 最常见的问题。这通常是因为默认的 GNOME 桌面环境与 xrdp 会话不能无缝配合。

解决方案:安装并配置 Xfce 桌面环境,它轻量级且与 xrdp 完全兼容。

安装 Xfce:

sudo apt install xfce4 xfce4-goodies -y

配置 xrdp 使用 Xfce:

echo xfce4-session > ~/.xsession

重启 xrdp:

sudo systemctl restart xrdp

从 Windows 重新连接——黑屏问题应该消失,您将看到 Xfce 桌面。

> Ubuntu 22.04+ 的替代方案:您也可以通过编辑 /etc/xrdp/startwm.sh 来配置 xrdp 使用默认的 GNOME 会话,但 Xfce 仍然是远程桌面会话最可靠的选择。

问题 2:防火墙阻止连接

如果连接超时或被拒绝,请验证您的防火墙规则:

sudo ufw status verbose

如果端口 3389 未列出,请重新添加规则:

sudo ufw allow 3389/tcp
sudo ufw reload

还要检查您的云服务商或路由器是否有单独的防火墙或安全组可能正在阻止端口 3389——这在使用托管服务器时是一个常见的疏漏。

问题 3:远程桌面性能缓慢或卡顿

如果连接感觉迟缓,请尝试以下方法:

  • 降低显示质量:在远程桌面连接窗口中,点击显示选项 → 显示,降低色彩深度和分辨率。
  • 降低屏幕分辨率:将远程会话设置为 1280×720 而非全高清。
  • 检查网络带宽:运行速度测试以排除网络瓶颈。
  • 尽可能使用有线连接而非 Wi-Fi。

问题 4:身份验证错误

如果尽管凭据正确但登录仍然失败:

  • 确保用户账户存在于 Ubuntu 计算机上并已设置密码
  • 查看 xrdp 日志以获取详细信息:sudo journalctl -u xrdp -n 50
  • 验证 xrdp SSL 证书是否正确安装:ls /etc/xrdp/cert.pem

问题 5:xrdp 服务无法启动

如果 xrdp 无法启动,请检查配置错误:

sudo xrdp --nodaemon

这将在前台运行 xrdp 并将错误直接打印到终端,使诊断问题更加容易。

第六步:加固 RDP 连接的安全性

将 RDP 默认端口 3389 暴露在公共互联网上是一个重大安全风险。自动化机器人不断扫描开放的 RDP 端口并尝试暴力破解攻击。请遵循以下最佳实践来保护您的系统。

6.1 — 更改默认 RDP 端口

将端口从 3389 更改为非标准端口可以显著减少自动化攻击的暴露。

打开 xrdp 配置文件:

sudo nano /etc/xrdp/xrdp.ini

找到以下行:

port=3389

将其更改为自定义端口(例如 13389 或 1024 以上任何未使用的端口):

port=13389

保存并退出(Ctrl + X,然后 Y,再按 Enter),然后重启 xrdp:

sudo systemctl restart xrdp

更新防火墙以允许新端口并删除旧规则:

sudo ufw allow 13389/tcp
sudo ufw delete allow 3389/tcp

6.2 — 按 IP 地址限制访问

如果您始终从已知的 IP 地址连接,请将 RDP 访问限制为仅该 IP:

sudo ufw allow from 203.0.113.50 to any port 3389 proto tcp

203.0.113.50 替换为您的实际 IP 地址。这将大幅减少您的攻击面。

6.3 — 使用 VPN 进行加密隧道传输

最安全的方法是完全不将 RDP 暴露在公共互联网上。而是先连接到 VPN,然后通过加密的 VPN 隧道使用 RDP。这使端口 3389 完全对互联网隐藏,同时仍允许授权用户连接。

与 Ubuntu 兼容的流行 VPN 解决方案包括 WireGuardOpenVPN

6.4 — 使用强密码并启用双因素身份验证

  • 为每个可以通过 RDP 登录的用户账户设置强且唯一的密码
  • 考虑使用 Google Authenticator 与 PAM(可插拔身份验证模块)实现双因素身份验证(2FA)
  • 禁用未使用的用户账户以最小化攻击面

6.5 — 保持 xrdp 和 Ubuntu 更新

定期更新您的系统以修补已知漏洞:

sudo apt update && sudo apt upgrade -y

6.6 — 监控登录尝试

使用 Fail2Ban 自动封锁反复验证失败的 IP 地址:

sudo apt install fail2ban -y

Fail2Ban 可以配置为监控 xrdp 日志,并在定义数量的失败尝试后封锁违规 IP。

替代方案:通过 SSH 隧道实现安全 RDP

为了在不设置完整 VPN 的情况下实现最高安全性,您可以通过 SSH 隧道传输您的 RDP 连接。这将加密 RDP 流量并避免公开暴露端口 3389。

在 Windows 上,使用 PuTTY 或内置的 OpenSSH 客户端创建本地端口转发:

ssh -L 3389:localhost:3389 username@your-ubuntu-ip

然后将远程桌面连接连接到 localhost:3389——流量将通过 SSH 安全隧道传输。

为远程桌面选择合适的托管环境

您的 RDP 会话的性能和可靠性在很大程度上取决于底层基础设施。以下是基于使用场景的一些建议:

使用场景推荐解决方案
个人远程访问 / 测试带 SSH 的共享虚拟主机,或入门级 VPS
开发者工作站 / 小型团队配备 2–4 vCPU 和 4–8 GB RAM 的 VPS 托管
高性能远程桌面提供完整资源隔离的独立服务器
带 GUI 的 AI/ML 工作负载用于 GPU 加速远程会话的 GPU 托管

对于偏好托管控制面板界面的团队,带 cPanel 的 VPS 在远程桌面访问的基础上提供了直观的基于 Web 的管理层。

快速参考:完整设置清单

使用此清单确认每个步骤均已正确完成:

  • [ ] sudo apt update && sudo apt upgrade -y
  • [ ] sudo apt install xrdp -y
  • [ ] sudo systemctl enable xrdp && sudo systemctl start xrdp
  • [ ] sudo ufw allow 3389/tcp(或自定义端口)
  • [ ] 已记录 Ubuntu 计算机的 IP 地址(hostname -I
  • [ ] 如出现黑屏则已安装 Xfce(sudo apt install xfce4 -y
  • [ ] 已为 Xfce 配置 ~/.xsessionecho xfce4-session > ~/.xsession
  • [ ] 已使用 mstsc 从 Windows 连接
  • [ ] 已更改默认 RDP 端口以提高安全性
  • [ ] 已启用 Fail2Ban 或 IP 限制

结论

使用 xrdp 设置从 Windows 到 Ubuntu 的 RDP 连接是远程 Linux 桌面访问的一种实用、高效且经济的解决方案。通过安装 xrdp、选择与之兼容的桌面环境(如 Xfce)、配置防火墙并应用安全加固措施,您可以在 15 分钟内建立稳定且安全的远程桌面会话。

无论您是在管理本地 Ubuntu 工作站、基于云的 VPS,还是独立服务器,xrdp 都无需第三方远程访问工具,并充分利用了大多数管理员已经熟悉的 Windows 远程桌面客户端。结合 VPN 隧道、自定义端口、IP 限制和 Fail2Ban 等最佳实践,您的远程桌面环境既可以高度可访问,又可以得到强有力的安全保障。