注意:
- Oracle 提供的免费实验室环境中提供了此教程。
- 它使用 Oracle Cloud Infrastructure 身份证明、租户和区间的示例值。完成实验室时,请将这些值替换为特定于云环境的值。
在 Oracle Linux 上配置 Gnome 远程桌面
简介
Gnome Desktop 环境提供了多种远程访问的方法,具体取决于您是具有物理访问还是正在无头运行。当物理访问可用且已连接监视器时,您可以利用 Gnome Desktop 环境设置应用程序中内置的现有应用程序。
- 用于连接到当前登录的 Linux 用户会话的桌面共享
- 用于允许远程客户机打开 Gnome 登录屏幕的远程登录
对于远程无头系统(例如在 Oracle Cloud Infrastructure 中运行的系统),您需要使用 FreeRDP。FreeRDP 是远程桌面协议 (Remote Desktop Protocol,RDP) 的开源实施,允许用户通过网络连接和控制远程计算机系统。这些会话允许单用户或多用户配置,并且需要设置 TLS 密钥和 TLS 证书才能使服务运行。
目标
在本教程中,您将学习:
- 与 FreeRDP 一起安装图形桌面环境
- 配置多用户无头服务器
- 启动和启用 RDP 服务
- 直接使用 SSH 隧道从远程客户机访问 RDP 服务器
- (可选)创建防火墙规则以允许直接 RDP 访问
先决条件
- 安装了最新 Oracle Linux 10 的任何系统
- 安装了 Gnome Connections 、 Remmina 或 xfreerdp 等软件的客户机系统
部署 Oracle Linux
注:如果在您自己的租户中运行,请在部署实验环境之前阅读 linux-virt-labs GitHub 项目 README.md 并完成先决条件。
-
在 Luna Desktop 上打开一个终端。
-
克隆
linux-virt-labsGitHub 项目。git clone https://github.com/oracle-devrel/linux-virt-labs.git -
转到工作目录。
cd linux-virt-labs/ol -
安装所需集合。
ansible-galaxy collection install -r requirements.yml -
部署实验室环境。
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
-
打开终端并使用 SSH 连接到 ol-node-01 实例。
ssh oracle@<ip_address_of_instance> -
将系统上的软件包升级到最新发行版。
sudo dnf upgrade -y -
安装 GNOME 桌面环境及其所有依赖项。
sudo dnf group install -y GNOME Fonts -
安装 FreeRDP 软件包
sudo dnf install -y freerdp -
检查是否需要重新引导。
sudo dnf needs-restarting -r如果需要,请使用
sudo reboot重新引导系统,然后重新连接。
配置多个用户 RDP 服务
-
为自签名 TLS 证书创建目录。
sudo -u gnome-remote-desktop mkdir -p ~gnome-remote-desktop/.local/share/gnome-remote-desktop -
生成自签名 TLS 证书。
sudo -u gnome-remote-desktop winpr-makecert -silent -rdp -path ~gnome-remote-desktop/.local/share/gnome-remote-desktop rdp-tls -
设置远程桌面的 TLS 密钥。
sudo grdctl --system rdp set-tls-key ~gnome-remote-desktop/.local/share/gnome-remote-desktop/rdp-tls.key--system选项配置远程桌面系统守护进程,这是多个用户访问所必需的。运行grdctl --help可使用其他命令和选项。 -
设置 TLS 证书。
sudo grdctl --system rdp set-tls-cert ~gnome-remote-desktop/.local/share/gnome-remote-desktop/rdp-tls.crt -
设置 RPD 凭证。
sudo grdctl --system rdp set-credentials oracle 12345678您可以按所示在命令行上传递这些凭证,也可以不传递凭证,系统会提示您输入用户名和密码。这些凭证仅允许访问显示 Gnome Desktop 登录的远程 RDP 会话。要访问远程桌面会话,用户仍需要在计算机上拥有实际的 Linux 帐户并使用这些凭证登录。
-
验证 TLS 设置和 RDP 凭证。
sudo grdctl --system status --show-credentials检查 TLS 证书和 TLS 密钥是否是匹配的集。使用
winpr-makecert生成 TLS 证书时,会在同一文件夹中创建具有相同名称的.key和.crt文件。status命令的--show-credentials标志将取消隐藏用户名和口令,允许您读取它们并验证是否正确键入了它们。 -
启用 RDP 服务。
sudo grdctl --system rdp enable -
验证是否已启用该服务并处于活动状态。
sudo grdctl --system status -
启用 GDM 服务。
sudo systemctl enable --now gdm -
启用系统级远程登录服务。
sudo systemctl enable --now gnome-remote-desktop.service -
将远程桌面服务设置为重新引导后的缺省桌面服务。
sudo systemctl set-default graphical.target -
验证该服务正在运行。
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 上。
-
打开新终端并通过 SSH 连接到 ol-node-01 实例。
-L选项启用本地转发,这将打开通过 SSH 隧道连接到远程 RDP 服务器的本地端口。ssh -L 13389:localhost:3389 oracle@<ip_address_of_instance>默认 RDP 端口为 3389,因此我们将使用 13389 的可用端口作为 SSH 隧道上的本地端口。
-
通过依次单击 Applications(应用程序)菜单、 Internet 和 Remmina 打开 Remmina。

-
在名称字段中输入 RDP 连接的名称,然后在协议值列表中选择
RDP - Remote Desktop Protocol。 -
登录到已部署服务器的 GUI 环境。
输入以下值,然后按 Connect 按钮。
- 服务器:
localhost:13389 - 用户名:
oracle - 口令:
12345678

您也可以通过使用
remmina -c rdp://oracle@localhost:13389从终端运行 Remmina 来连接 - 服务器:
-
此时将显示 Gnome Desktop Manager,为您呈现 Gnome 登录会话。
-
使用您用户的 Linux 凭证登录。
免费实验室环境中的凭证包括:
- 用户名:
oracle - 密码:
oracle
- 用户名:
-
您现在已远程登录到系统。
Oracle Linux 10:
此时将显示“欢迎”对话框。

按 Skip 按钮(或按
Enter),然后 "Welcome"(欢迎)对话框将消失。
如果您遇到连接问题,请通过 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 帮助中心。