注意:

在 Oracle Linux 上配置 Gnome 远程桌面

简介

Gnome Desktop 环境提供了多种远程访问的方法,具体取决于您是具有物理访问还是正在无头运行。当物理访问可用且已连接监视器时,您可以利用 Gnome Desktop 环境设置应用程序中内置的现有应用程序。

对于远程无头系统(例如在 Oracle Cloud Infrastructure 中运行的系统),您需要使用 FreeRDP。FreeRDP 是远程桌面协议 (Remote Desktop Protocol,RDP) 的开源实施,允许用户通过网络连接和控制远程计算机系统。这些会话允许单用户或多用户配置,并且需要设置 TLS 密钥和 TLS 证书才能使服务运行。

目标

在本教程中,您将学习:

先决条件

部署 Oracle Linux

注:如果在您自己的租户中运行,请在部署实验环境之前阅读 linux-virt-labs GitHub 项目 README.md 并完成先决条件。

  1. 在 Luna Desktop 上打开一个终端。

  2. 克隆 linux-virt-labs GitHub 项目。

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. 转到工作目录。

    cd linux-virt-labs/ol
    
  4. 安装所需集合。

    ansible-galaxy collection install -r requirements.yml
    
  5. 部署实验室环境。

    ansible-playbook create_instance.yml -e localhost_python_interpreter="/usr/bin/python3.6" -e os_version="10"
    

    对于 localhost,免费实验室环境需要额外的变量 ansible_python_interpreter,因为它为 Oracle Cloud Infrastructure SDK for Python 安装 RPM 软件包。根据您的 Oracle Linux 版本,此软件包的安装位置位于系统的默认 Python 模块下面。使用清单变量可避免影响在本地主机以外的主机上运行的播放。

    默认部署配置使用 AMD CPU。您可以通过在命令行上传递新的配置变量定义来更改实例的配置。

    例如:-e instance_shape="VM.Standard3.Flex"

    同样,Oracle Linux 映像的缺省版本使用在 `default_vars.yml file' 中定义的变量 os_version。可以通过在命令行上传递 Oracle Linux 主版本来修改此值。

    例如:-e os_version="9"

    重要提示:等待手册成功运行并到达暂停任务。在手册的这一阶段,Oracle Linux 安装已完成,实例已准备就绪。请注意上一个播放,其中输出其部署的节点的公共和专用 IP 地址。

安装图形桌面环境和 FreeRDP

  1. 打开终端并使用 SSH 连接到 ol-node-01 实例。

    ssh oracle@<ip_address_of_instance>
    
  2. 将系统上的软件包升级到最新发行版。

    sudo dnf upgrade -y
    
  3. 安装 GNOME 桌面环境及其所有依赖项。

    sudo dnf group install -y GNOME Fonts
    
  4. 安装 FreeRDP 软件包

    sudo dnf install -y freerdp
    
  5. 检查是否需要重新引导。

    sudo dnf needs-restarting -r
    

    如果需要,请使用 sudo reboot 重新引导系统,然后重新连接。

配置多个用户 RDP 服务

  1. 为自签名 TLS 证书创建目录。

    sudo -u gnome-remote-desktop mkdir -p ~gnome-remote-desktop/.local/share/gnome-remote-desktop
    
  2. 生成自签名 TLS 证书。

    sudo -u gnome-remote-desktop winpr-makecert -silent -rdp -path ~gnome-remote-desktop/.local/share/gnome-remote-desktop rdp-tls
    
  3. 设置远程桌面的 TLS 密钥。

    sudo grdctl --system rdp set-tls-key ~gnome-remote-desktop/.local/share/gnome-remote-desktop/rdp-tls.key
    

    --system 选项配置远程桌面系统守护进程,这是多个用户访问所必需的。运行 grdctl --help 可使用其他命令和选项。

  4. 设置 TLS 证书。

    sudo grdctl --system rdp set-tls-cert ~gnome-remote-desktop/.local/share/gnome-remote-desktop/rdp-tls.crt
    
  5. 设置 RPD 凭证。

    sudo grdctl --system rdp set-credentials oracle 12345678
    

    您可以按所示在命令行上传递这些凭证,也可以不传递凭证,系统会提示您输入用户名和密码。这些凭证仅允许访问显示 Gnome Desktop 登录的远程 RDP 会话。要访问远程桌面会话,用户仍需要在计算机上拥有实际的 Linux 帐户并使用这些凭证登录。

  6. 验证 TLS 设置和 RDP 凭证。

    sudo grdctl --system status --show-credentials
    

    检查 TLS 证书和 TLS 密钥是否是匹配的集。使用 winpr-makecert 生成 TLS 证书时,会在同一文件夹中创建具有相同名称的 .key.crt 文件。status 命令的 --show-credentials 标志将取消隐藏用户名和口令,允许您读取它们并验证是否正确键入了它们。

  7. 启用 RDP 服务。

    sudo grdctl --system rdp enable
    
  8. 验证是否已启用该服务并处于活动状态。

    sudo grdctl --system status
    
  9. 启用 GDM 服务。

    sudo systemctl enable --now gdm
    
  10. 启用系统级远程登录服务。

    sudo systemctl enable --now gnome-remote-desktop.service
    
  11. 将远程桌面服务设置为重新引导后的缺省桌面服务。

    sudo systemctl set-default graphical.target
    
  12. 验证该服务正在运行。

    sudo systemctl status gnome-remote-desktop.service
    

    您还可以通过运行 sudo ss -lnpAinet | grep -e gnome-remote 检查服务是否正在监听端口 3389 来验证服务是否正在运行。

打开 RDP 客户端并测试您的部署

您可以使用多个客户机连接到 RDP;但是,并非所有客户机都能正常工作。已知工作的是 Linux 上的 Remmina 和 Connections,以及 macOS 上的 xfreerdp。这些说明将重点介绍 Remmina,因为它适用于所有版本的 Oracle Linux,而 Connections 仅在 Gnome 47 和更高版本中可用,这是 Oracle Linux 10 的一部分。如果在免费实验室环境中运行,则 Remmina 软件已安装在 Luna Desktop 上。

  1. 打开新终端并通过 SSH 连接到 ol-node-01 实例。

    -L 选项启用本地转发,这将打开通过 SSH 隧道连接到远程 RDP 服务器的本地端口。

    ssh -L 13389:localhost:3389 oracle@<ip_address_of_instance>
    

    默认 RDP 端口为 3389,因此我们将使用 13389 的可用端口作为 SSH 隧道上的本地端口。

  2. 通过依次单击 Applications(应用程序)菜单、 InternetRemmina 打开 Remmina。

    rdp- 菜单

  3. 名称字段中输入 RDP 连接的名称,然后在协议值列表中选择 RDP - Remote Desktop Protocol

  4. 登录到已部署服务器的 GUI 环境。

    输入以下值,然后按 Connect 按钮。

    • 服务器:localhost:13389
    • 用户名:oracle
    • 口令:12345678

    RDP 登录

    您也可以通过使用 remmina -c rdp://oracle@localhost:13389 从终端运行 Remmina 来连接

  5. 此时将显示 Gnome Desktop Manager,为您呈现 Gnome 登录会话。

  6. 使用您用户的 Linux 凭证登录。

    免费实验室环境中的凭证包括:

    • 用户名:oracle
    • 密码:oracle
  7. 您现在已远程登录到系统。

    Oracle Linux 10:

    此时将显示“欢迎”对话框。

    吉欢迎

    Skip 按钮(或按 Enter),然后 "Welcome"(欢迎)对话框将消失。

    开始使用 -ol

    如果您遇到连接问题,请通过 SSH 隧道连接连接到远程服务器来排除这些问题。

    如果您要连接到 Oracle Cloud Infrastructure 实例,可能需要执行其他步骤。有关详细信息,请参阅 Oracle Cloud Infrastructure 文档中的 Connecting to an Instance

    如果您尝试连接到由 Oracle VM VirtualBox 托管的虚拟机,则需要配置其他端口转发以进行远程访问。您可以在用户指南中找到有关为安装的 Oracle VM VirtualBox 版本配置虚拟网络的说明。

(可选)配置防火墙规则

在安全专用网络上运行时,您可以打开 RDP 服务的防火墙端口,该服务使用默认端口 3389。

   sudo firewall-cmd --permanent --add-port=3389/tcp
   sudo firewall-cmd --reload

注:当 RDP 使用 TLS 对协议进行加密时,您不应打开到此端口的防火墙并通过不受保护的网络直接连接到 RDP 服务器。虽然将此步骤列为可选步骤,但我们不建议使用它。相反,您应考虑使用 SSH 隧道或其他机制来保护连接,如非可选步骤所示。

后续步骤

现在,您应该有一个功能强大的远程桌面环境来运行图形应用程序。查看 Oracle Linux Training Station 上的其他内容。

更多学习资源

通过 docs.oracle.com/learn 浏览其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心