Chat
Ask me anything
Ithy Logo

揭秘:如何让您的 Windows 电脑轻松远程控制 Ubuntu 桌面?

一步步教您配置 Ubuntu,实现通过 RDP 协议从 Windows 进行无缝远程桌面访问。

configure-ubuntu-rdp-windows-access-1ebuf46t

核心看点

  • 多种选择: 探索 Ubuntu 内置远程桌面与 xRDP 方案的优劣,选择最适合您需求的方法。
  • 轻松连接: 掌握从 Windows 远程桌面客户端连接 Ubuntu 的简明步骤,快速上手。
  • 疑难解答: 获取常见连接问题(如黑屏、认证失败、协议错误)的实用解决技巧。

开始之前:确保万事俱备

在开始配置远程桌面之前,请确保以下条件已满足:

  • 您的 Ubuntu 系统已成功安装并处于运行状态。
  • Ubuntu 机器和 Windows 机器都已连接到网络,并且相互之间可以通信(例如,在同一个局域网内,或者 Ubuntu 机器具有可从 Windows 访问的公网 IP 地址)。
  • 您拥有对 Ubuntu 系统的管理员权限(即可以使用 sudo 命令)。
  • 记下 Ubuntu 机器的 IP 地址。您可以在 Ubuntu 终端中使用 ip addr showhostname -I 命令来查找。

方法一:启用 Ubuntu 内置远程桌面功能 (推荐用于 Ubuntu 22.04 及更新版本)

探索 Ubuntu 的原生远程桌面共享

较新版本的 Ubuntu(特别是 Ubuntu 22.04 Jammy Jellyfish 及更高版本)内置了基于 RDP 协议的远程桌面共享功能。此功能集成在 GNOME 桌面环境中,设置相对简单。

启用步骤详解

  1. 在您的 Ubuntu 桌面上,打开“设置 (Settings)”。
  2. 在左侧导航栏中,找到并点击“共享 (Sharing)”。
  3. 在窗口的右上角,确保“共享 (Sharing)”的总开关是开启状态。如果它是关闭的,请点击将其开启。
  4. 在 Ubuntu 设置中激活共享功能

    在 Ubuntu 设置中激活共享功能

  5. 点击“远程桌面 (Remote Desktop)”或“桌面共享 (Screen Sharing)”选项(名称可能因 Ubuntu 版本略有不同)。
  6. 在弹出的对话框中,启用“远程桌面 (Remote Desktop)”或“远程控制 (Remote Control)”开关。
  7. 确保“RDP”协议被选中。您可能还会看到一个“启用旧版 VNC 协议 (Enable Legacy VNC protocol)”的选项,对于通过 Windows RDP 连接,请确保此项关闭或 RDP 选项被优先启用。
  8. 在“身份验证 (Authentication)”部分,您需要设置访问凭据。通常有两个选项:
    • 用户密码 (User Password): 远程连接时需要输入当前 Ubuntu 用户的登录密码。
    • 固定密码 (Fixed Password): 您可以设置一个专用于远程桌面访问的密码。
  9. 在 Ubuntu 22.04 中启用远程桌面控制

    在 Ubuntu 22.04 设置中启用并配置远程桌面共享

  10. 记下您的设备名称或 IP 地址,这将用于从 Windows 连接。

注意事项

  • 此功能在 Ubuntu 22.04 及更高版本中对 RDP 的支持得到了显著改进。
  • 在某些情况下,启用远程桌面后,您可能需要注销当前用户会话或重启计算机才能使设置生效。
  • 当有远程连接时,本地屏幕可能会被锁定或显示远程会话正在进行中。
  • Wayland 与 Xorg: 较新版本的 Ubuntu 默认使用 Wayland 显示服务器。虽然内置 RDP 对 Wayland 的支持有所改善,但如果您在连接时遇到问题(如黑屏、鼠标指针异常或性能不佳),可以尝试切换到 Xorg 显示服务器。方法是在登录屏幕选择您的用户名后,点击屏幕右下角或左下角的齿轮图标,然后选择 "Ubuntu on Xorg" 或类似选项再登录。

方法二:安装和配置 xRDP 服务器 (通用性更强)

深入了解 xRDP:一个强大的开源选择

xRDP 是一个开源的远程桌面协议 (RDP) 服务器,它允许非 Windows 操作系统(如 Linux 发行版 Ubuntu)接受来自 Windows 远程桌面客户端 (mstsc.exe) 以及其他 RDP 客户端的连接。xRDP 对于所有 Ubuntu 版本都是一个可靠的选择,尤其是在内置方案不适用或需要更高级配置时。

安装 xRDP

  1. 首先,打开终端(Ctrl+Alt+T)并更新您的软件包列表,以确保获取最新的软件版本信息:

    sudo apt update
  2. 然后,安装 xRDP 软件包。-y 参数会自动确认安装提示:

    sudo apt install xrdp -y
  3. 安装完成后,xRDP 服务通常会自动启动并设置为开机自启。您可以使用以下命令检查其状态:

    sudo systemctl status xrdp

    如果服务正在运行,您会看到 "active (running)" 的字样。如果未运行,您可以手动启动并设置为开机自启:

    sudo systemctl start xrdp
    sudo systemctl enable xrdp

配置防火墙

如果您的 Ubuntu 系统启用了 UFW (Uncomplicated Firewall) 防火墙,您需要允许 RDP 协议的默认端口 3389/tcp 通过防火墙:

sudo ufw allow 3389/tcp
sudo ufw reload

如果您更改了 xRDP 的监听端口,请确保在这里允许新的端口号。

配置桌面环境与会话

xRDP 需要知道在用户连接时应该启动哪个桌面环境。默认情况下,它可能尝试启动 Ubuntu 的标准桌面 (GNOME),但这有时会导致问题,如著名的“黑屏”问题。为了获得更稳定和流畅的体验,通常推荐以下几种做法:

  • 使用轻量级桌面环境 (如 XFCE): XFCE 是一个轻量级的桌面环境,与 xRDP 兼容性良好,并且资源消耗较低,非常适合远程桌面场景。
    1. 安装 XFCE 及相关组件:

      sudo apt install xfce4 xfce4-goodies -y
    2. 配置 xRDP 使用 XFCE 作为默认会话。创建一个名为 .xsession 的文件在您的用户主目录下,并写入启动 XFCE 的命令:

      echo "xfce4-session" > ~/.xsession
    3. 或者,您可以修改全局的 xRDP 启动脚本 /etc/xrdp/startwm.sh。注释掉文件末尾原有的测试和执行 Xsession 的行,并添加启动 XFCE 的命令。但更推荐使用用户级别的 ~/.xsession 配置。

  • 针对标准 GNOME 桌面的配置 (可能更复杂):

    如果您坚持使用 GNOME 桌面,可能需要进行额外的配置。确保您已从本地的 GNOME 会话中注销,因为 xRDP 通常无法很好地处理与活动本地会话的并发(特别是同一用户)。

    有时需要修改 /etc/xrdp/startwm.sh 文件,在文件末尾的 test -x /etc/X11/Xsession && exec /etc/X11/Xsession 之前,添加一些环境变量设置来帮助 GNOME 正确启动,例如:

    unset DBUS_SESSION_BUS_ADDRESS
    unset XDG_RUNTIME_DIR
    export GNOME_SHELL_SESSION_MODE=ubuntu
    export XDG_CURRENT_DESKTOP=ubuntu:GNOME
    export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg

    重要提示:这些针对 GNOME 的配置可能因 Ubuntu 版本和具体更新而异,并且有时不够稳定。使用 XFCE 通常是更可靠的选择。

xRDP 会话选择

连接 xRDP 时,可能会看到一个登录界面,您可以在此输入用户名和密码,有时还可以选择会话类型。

解决“黑屏”或“登录后立即断开”问题

这是 xRDP 用户常遇到的问题,通常与会话管理、权限或桌面环境配置不当有关。

  • 注销本地会话: 在尝试 xRDP 连接之前,请确保您已从 Ubuntu 机器上的图形会话中注销。xRDP 通常为远程用户创建新的会话。
  • 检查 Polkit 规则: 有时,GNOME (以及基于它的桌面) 需要特定的 Polkit 权限来允许非活动会话中的用户创建颜色管理配置文件。创建一个文件 /etc/polkit-1/rules.d/02-allow-colord.rules (文件名可自定义,但需以 .rules 结尾) 并添加以下内容:
    polkit.addRule(function(action, subject) {
        if ((action.id == "org.freedesktop.color-manager.create-device" ||
             action.id == "org.freedesktop.color-manager.create-profile" ||
             action.id == "org.freedesktop.color-manager.delete-device" ||
             action.id == "org.freedesktop.color-manager.delete-profile" ||
             action.id == "org.freedesktop.color-manager.modify-device" ||
             action.id == "org.freedesktop.color-manager.modify-profile") &&
            subject.isInGroup("{users}")) { // 使用 {users} 适用于所有普通用户,或特定用户组如 "sudo"
            return polkit.Result.YES;
        }
    });
    然后重启 Polkit 服务和 xRDP 服务:
    sudo systemctl restart polkit
    sudo systemctl restart xrdp
  • 检查日志文件: /var/log/xrdp.log/var/log/xrdp-sesman.log (或者在 ~/.xorgxrdp.log) 包含了详细的错误信息,可以帮助诊断问题。
  • 重新安装 xRDP: 在某些情况下,完全卸载后重新安装 xRDP 和您选择的桌面环境可能会解决一些棘手的配置问题。

快速对比:内置 RDP 与 xRDP

一览两大主流方案

为了帮助您快速决策,下表总结了 Ubuntu 内置 RDP (GNOME 共享) 和 xRDP 服务器的主要特点和适用场景。

特性 Ubuntu 内置 RDP (GNOME 共享) xRDP 服务器
主要适用版本 Ubuntu 22.04 及更新版本 (原生 RDP 支持更佳) 所有 Ubuntu 版本,通用性强
安装配置 简单,通过系统设置启用 需要手动安装软件包,可能涉及命令行配置
桌面环境兼容性 主要为 GNOME 设计,对 Wayland 支持较好 可配合多种桌面环境 (XFCE, MATE, GNOME 等),Xorg 下更稳定
会话类型 通常为屏幕共享 (控制当前活动会话) 可创建独立的虚拟会话,支持多用户并发
性能 依赖 GNOME 性能,可能较重 配合轻量级桌面 (如 XFCE) 时性能较好
灵活性与定制 选项相对较少 配置选项丰富,灵活性高
常见用途 快速、临时的个人桌面访问 需要稳定、多用户或特定桌面环境的远程访问

选择哪种方法取决于您的具体需求,例如 Ubuntu 版本、期望的易用性、性能要求以及是否需要多用户支持等。对于 Ubuntu 22.04+ 的用户,可以首先尝试内置的 RDP 功能;如果遇到问题或需要更高级的配置,xRDP 始终是一个可靠的选择。


连接对比:内置 RDP vs. xRDP

功能特性雷达图

为了帮助您更好地理解 Ubuntu 内置 RDP 功能和 xRDP 之间的差异,以下雷达图比较了它们在几个关键方面的表现。请注意,这些评估是基于一般用户体验和常见反馈,具体表现可能因您的系统配置和网络环境而异。

图表解读:

  • 易用性 (原生): Ubuntu 内置 RDP 因其集成在系统设置中,通常对初学者更友好。xRDP 则需要一些命令行操作和手动配置。
  • 兼容性 (Wayland): Ubuntu 22.04+ 的内置 RDP 对 Wayland 显示服务器的支持更好。xRDP 在 Wayland 环境下可能会遇到较多问题,通常推荐配合 Xorg 或像 XFCE 这样的轻量级桌面环境使用。
  • 性能 (轻量级): 当 xRDP 配合 XFCE 等轻量级桌面环境时,通常能提供更流畅的性能,尤其是在硬件资源有限或网络带宽较低的情况下。
  • 功能丰富度: xRDP 提供了更多的配置选项和灵活性,例如更细致的会话管理和编码设置。内置 RDP 的功能相对基础。
  • 社区支持: xRDP 作为一个成熟的开源项目,拥有广泛的社区和丰富的在线文档及故障排除资源。Ubuntu 内置 RDP 的支持主要依赖于 GNOME 社区和 Ubuntu 官方文档。
  • 安全性 (默认配置): 两者都依赖于 RDP 协议本身。安全性更多地取决于用户如何配置密码、防火墙以及是否采用 VPN 或 SSH 隧道等额外安全措施。
  • 多用户支持: xRDP 天生支持为每个连接用户创建独立的会话,非常适合多用户同时远程访问。Ubuntu 内置 RDP 更侧重于单用户的屏幕共享。

从 Windows 连接到 Ubuntu

Windows 客户端操作指南

一旦您在 Ubuntu 上成功配置了 RDP 服务(无论是内置功能还是 xRDP),就可以从 Windows 机器上连接了。步骤如下:

  1. 在您的 Windows 电脑上,打开“远程桌面连接 (Remote Desktop Connection)”应用程序。您可以通过以下方式找到它:
    • 在开始菜单的搜索框中输入 "mstsc" 并按 Enter。
    • 或者搜索“远程桌面连接”。
  2. 在“远程桌面连接”窗口中,找到“计算机 (Computer)”输入框。在这里输入您的 Ubuntu 机器的 IP 地址或主机名。 Windows 远程桌面连接客户端

    Windows 远程桌面连接对话框,输入 Ubuntu IP 地址

  3. (可选)点击“显示选项 (Show Options)”可以配置更多连接设置,如显示分辨率、颜色深度、本地资源共享(如剪贴板、打印机)等。对于初次连接,使用默认设置即可。
  4. 点击“连接 (Connect)”。
  5. 您可能会看到一个关于服务器身份验证的安全警告,提示无法验证远程计算机的身份。如果您在受信任的局域网内连接,通常可以安全地点击“是 (Yes)”或“连接 (Connect)”继续。
  6. 接下来,系统会提示您输入凭据:
    • 对于 Ubuntu 内置 RDP: 通常会直接提示您输入 Ubuntu 用户的用户名和密码(或者是您在共享设置中指定的固定密码)。
    • 对于 xRDP: 您通常会看到一个 xRDP 登录窗口。在这里,选择会话类型(例如,如果配置了 XFCE,可能会有 "Xorg" 或 "Xvnc" 选项,通常选择 "Xorg" 或默认)。然后输入您的 Ubuntu 用户名和密码。
  7. 如果凭据正确无误,并且服务器端配置正确,您应该很快就能看到 Ubuntu 的桌面环境出现在您的 Windows 远程桌面窗口中。

远程桌面配置流程概览

思维导图助您一臂之力

下面的思维导图清晰地展示了从 Ubuntu 端配置到 Windows 端连接的整个流程,帮助您更好地理解各个环节及其相互关系。

mindmap root["Windows 远程连接 Ubuntu (RDP)"] id1["Ubuntu 端准备与配置"] id1_1["前提条件"] id1_1_1["Ubuntu 运行正常"] id1_1_2["网络连接"] id1_1_3["管理员权限 (sudo)"] id1_2["获取 Ubuntu IP 地址"] id1_2_1["命令: ip addrhostname -I"] id1_3["选择 RDP 实现方案"] id1_3_1["内置 RDP (GNOME 共享)"] id1_3_1_1["适用: Ubuntu 22.04+"] id1_3_1_2["操作: 设置 -> 共享 -> 远程桌面"] id1_3_1_3["配置: 启用, 设置凭据"] id1_3_1_4["注意: Wayland/Xorg 切换可能需要"] id1_3_2["xRDP 服务器"] id1_3_2_1["适用: 所有 Ubuntu 版本, 通用性强"] id1_3_2_2["安装: sudo apt install xrdp"] id1_3_2_3["服务: sudo systemctl start/enable xrdp"] id1_3_2_4["防火墙: sudo ufw allow 3389/tcp"] id1_3_2_5["桌面环境配置"] id1_3_2_5_1["推荐: 安装 XFCE (sudo apt install xfce4)"] id1_3_2_5_2["配置会话: echo 'xfce4-session' > ~/.xsession"] id1_3_2_5_3["可选: GNOME (配置较复杂, 可能需改 startwm.sh)"] id1_3_2_6["故障排除: 黑屏, Polkit 规则"] id2["Windows 端连接操作"] id2_1["打开“远程桌面连接” (mstsc.exe)"] id2_2["输入 Ubuntu IP 地址/主机名"] id2_3["点击“连接”"] id2_4["处理安全警告 (如有)"] id2_5["身份验证"] id2_5_1["输入 Ubuntu 用户名和密码"] id2_5_2["xRDP 可能有会话选择界面"] id2_6["成功连接 -> 显示 Ubuntu 桌面"] id3["关键考量因素"] id3_1["网络连通性与稳定性"] id3_2["防火墙规则正确配置"] id3_3["用户凭据准确无误"] id3_4["安全性增强"] id3_4_1["强密码策略"] id3_4_2["系统及时更新"] id3_4_3["考虑 VPN 或 SSH 隧道"] id3_5["会话管理 (尤其 xRDP)"] id3_5_1["注销本地会话避免冲突"]

此思维导图总结了配置 Ubuntu 以便通过 RDP 从 Windows进行远程访问的关键步骤和考虑因素。它涵盖了从初始准备、选择和配置 Ubuntu 上的 RDP 服务(内置或 xRDP),到最终从 Windows 客户端发起连接的整个过程。同时,它也强调了网络、防火墙、凭据和安全性的重要性。


实用视频教程:一步步指导

观看实际操作演示

理论结合实践是学习的最佳途径。下面的视频教程详细演示了如何在 Ubuntu 20.04 上安装和配置 xRDP 以便从 Windows 10 进行远程桌面访问。尽管视频中的 Ubuntu 版本是 20.04,但其核心概念和许多步骤对于较新版本的 Ubuntu(如 22.04 或 24.04)在选择使用 xRDP 方案时仍然具有很高的参考价值。

该视频《Ubuntu 20.04 Remote Desktop Access from Windows 10 with xRDP》逐步展示了:

  • 如何在 Ubuntu 20.04 上通过命令行安装 xRDP 服务。
  • 进行 xRDP 的基础配置,包括允许 RDP 端口通过防火墙。
  • 如何配置 xRDP 以配合桌面环境(视频中可能演示了与特定桌面环境的配合,如 GNOME 或推荐安装 XFCE)。
  • 从 Windows 10 系统使用内置的“远程桌面连接”工具连接到配置好的 Ubuntu 桌面。
  • 视频可能还会提及一些常见的故障排除技巧和注意事项。

观看此视频可以帮助您更直观地理解 xRDP 的安装和配置过程,特别是命令行的实际操作和可能遇到的界面,从而补充本文档中的文字说明,使整个学习过程更加生动和易于理解。


性能与安全优化

提升体验与保障安全

成功建立远程桌面连接后,您可能希望进一步优化性能并增强连接的安全性。

提升 RDP 性能

  • 调整颜色深度和显示设置:在 Windows 远程桌面连接客户端的“显示 (Display)”选项卡中,尝试降低颜色深度(例如,从“最高质量 (32 位)”调整为“增强色 (16 位)”或“真彩色 (24 位)”)。较小的颜色深度会减少传输的数据量,从而在带宽有限时提高响应速度。同时,可以调整分辨率以匹配您的需求。
  • 优化 xRDP 配置 (xrdp.ini):如果您使用的是 xRDP,可以编辑其主配置文件 /etc/xrdp/xrdp.ini
    • 调整 max_bpp (maximum bits per pixel):将其值从默认的 32 降低到 24 或 16,可以减少带宽消耗。例如:max_bpp=24
    • 尝试不同的 crypt_level (加密级别):low, medium, high。较低的加密级别可能会略微提高性能,但会降低安全性。通常建议保持 highmedium
    • 试验 use_compression 和相关压缩设置。
    修改后,务必重启 xRDP 服务:sudo systemctl restart xrdp
  • 选择轻量级桌面环境:如前所述,在 xRDP 中使用 XFCE 或 MATE 等轻量级桌面环境,而不是资源密集型的 GNOME,可以显著改善远程桌面的流畅度和响应速度。
  • 禁用不必要的视觉效果:在 Ubuntu 远程会话中,关闭或减少桌面特效、窗口动画、透明效果和动态壁纸等,可以减轻图形渲染的负担,从而提升性能。
  • 网络质量:确保 Ubuntu 服务器和 Windows 客户端之间的网络连接稳定且延迟较低。有线连接通常优于无线连接。

增强 RDP 安全

  • 使用强密码:为您的 Ubuntu 用户账户设置复杂且唯一的密码,这是最基本的安全措施。
  • 保持系统和软件更新:定期更新您的 Ubuntu 系统以及 xRDP(如果使用)和其他相关软件包,以获取最新的安全补丁。
    sudo apt update && sudo apt full-upgrade -y
  • 限制网络访问 (防火墙):严格配置防火墙 (UFW) 规则,仅允许来自可信 IP 地址或网络的 RDP 连接(端口 3389)。例如,仅允许特定 IP 地址 192.168.1.100 访问:
    sudo ufw allow from 192.168.1.100 to any port 3389 proto tcp
    如果可能,避免将 RDP 端口直接暴露在公共互联网上。
  • 更改默认 RDP 端口:虽然这本身不是一个强大的安全措施(端口扫描器很容易找到非标准端口),但更改默认的 3389 端口可以减少受到自动扫描和攻击的几率。
    • 对于 xRDP,编辑 /etc/xrdp/xrdp.ini 文件,修改 port=3389 为其他未被使用的端口号(例如 port=3390)。
    • 对于 Ubuntu 内置 RDP,更改监听端口可能不直接支持或较为复杂。
    如果更改了端口,记得更新防火墙规则,并在 Windows RDP 客户端连接时指定新端口 (格式:IP_ADDRESS:NEW_PORT)。
  • 使用 VPN (虚拟专用网络):强烈建议通过 VPN 连接到您的局域网,然后再进行 RDP 连接。这样可以确保所有 RDP 流量都在加密的 VPN 通道内传输,极大地提高了安全性,尤其是在通过不受信任的网络(如公共 Wi-Fi)连接时。
  • 使用 SSH 隧道:作为 VPN 的替代方案,您可以设置一个 SSH 隧道,将 RDP 流量通过加密的 SSH 连接进行转发。
    1. 在 Windows 客户端上(例如使用 PuTTY 或 Windows PowerShell 中的 OpenSSH 客户端),建立一个到 Ubuntu 服务器的 SSH 连接,并设置本地端口转发。例如,将本地端口 33890 转发到 Ubuntu 服务器的 127.0.0.1:3389
      ssh -L 33890:127.0.0.1:3389 your_ubuntu_user@your_ubuntu_ip
    2. 然后,在 Windows RDP 客户端中,连接到 localhost:33890127.0.0.1:33890
  • 禁用不必要的账户或服务:确保系统中没有不必要的活动用户账户或网络服务。
  • 监控日志:定期检查系统日志和 xRDP 日志(如 /var/log/auth.log, /var/log/xrdp.log)以发现任何可疑活动。

常见问题与解答 (FAQ)

Q1: 连接 xRDP 后出现黑屏或空白屏幕怎么办?
Q2: Ubuntu 内置的远程桌面 (GNOME Sharing) 连接不上,提示“协议错误”或类似信息?
Q3: 如何找到我的 Ubuntu 机器的 IP 地址?
Q4: 是否可以同时有多名用户通过 RDP 连接到同一台 Ubuntu 机器?
Q5: 连接 RDP 时,Ubuntu 本地屏幕会发生什么?

深入探索:相关查询推荐


参考资料


Last updated May 13, 2025
Ask Ithy AI
Download Article
Delete Article