教程:在 AL2023 上配置 TigerVNC 服务器 - Amazon Linux 2023

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

教程:在 AL2023 上配置 TigerVNC 服务器

以下步骤帮助您在 AL2023 实例上设置 VNC 服务器。VNC 允许您通过安全的网络连接远程访问图形桌面环境并与之交互。

前提条件

  • 本教程假设您已在 AL2023 实例上安装了 GNOME 桌面环境。有关更多信息,请参阅教程:在 AL2023 上安装 GNOME 桌面环境页面。

  • 本教程使用 SSH 端口转发来访问 VNC 服务器。有关设置密钥对的更多信息,请参阅《Amazon EC2 用户指南》中的使用 SSH 连接到您的 Linux 实例

  • 以下步骤不指导您安装 VNC 客户端的过程。您必须在本地计算机上安装 VNC 客户端,才能连接至桌面环境并与之交互。

步骤 1:安装

  1. 连接到您的实例。有关更多信息,请参阅 正在连接到 AL2 023 个实例

  2. 为 AL2023 安装 TigerVNC 服务器程序包。

    -y 选项将在不要求确认的情况下安装程序包。如果您希望在安装前检查程序包,可以省略此选项。

    [ec2-user ~]$ sudo dnf install -y tigervnc-server

步骤 2:配置

  1. 确保用户已配置 VNC 密码。

    [ec2-user ~]$ vncpasswd
  2. 为用户分配一个显示编号。

    [ec2-user ~]$ sudo vi /etc/tigervnc/vncserver.users

    添加以下配置:

    :1=ec2-user
    注意

    您可以为用户分配任意显示编号。在此示例中,我们使用显示编号 :1

  3. 编辑 VNC 服务器配置文件。

    [ec2-user ~]$ sudo vi /etc/tigervnc/vncserver-config-defaults

    添加以下配置:

    session=gnome securitytypes=vncauth,tlsvnc geometry=1920x1080 localhost alwaysshared
    注意

    您可以使用 geometry 参数更改显示分辨率。在此示例中,我们使用 1920x1080

  4. 启动 VNC 服务器。每次重启实例后都需要重复此过程。如果您希望自动化启动此服务的过程,请参阅下面的可选部分。

    [ec2-user ~]$ sudo systemctl start vncserver@:1
    重要

    启动 vncserver 服务时, @ 后面的部分必须与在 /etc/tigervnc/vncserver.users 文件中为用户设置的显示编号匹配。

    执行此步骤后,您可以从本地计算机创建 SSH 隧道,并使用 VNC 客户端进行连接。

步骤 3:使用 VNC 客户端连接

VNC 服务器公开一个 TCP 套接字供客户端连接。虽然您可以直接通过安全组公开 VNC 端口,但本教程演示了使用 SSH 隧道作为一种更安全的方法,通过加密本地计算机与 EC2 实例之间的连接来实现。通过隧道连接后,您将使用上一步中配置的密码向 VNC 服务器进行身份验证。有关安全组的更多信息,请参阅《Amazon EC2 用户指南》中的更改 Amazon EC2 实例的安全组

  1. 从本地计算机创建 SSH 隧道。

    $ ssh -i <keypair> -L 5901:localhost:5901 ec2-user@<address>
    注意

    <keypair> 替换为您的 SSH 密钥路径,并将 <address> 替换为您实例的公共 IP 或 DNS 名称。端口号根据用于启动 vncserver 的显示编号而变化。例如,显示编号 :1 使用端口 5901,显示编号 :2 使用端口 5902,依此类推。

  2. 使用您的 VNC 客户端连接到 localhost:5901 127.0.0.1:5901,并使用先前设置的 VNC 密码。

    重要

    使用 VNC 时请保持 SSH 隧道处于打开状态。如果 SSH 隧道未打开,您将无法使用 VNC 客户端查看桌面环境并与之交互。

(可选)启动时启动服务

如果您计划定期使用 VNC,可能需要配置 VNC 服务器在实例启动时自动启动。这消除了每次重启实例后手动启动 VNC 服务器的需要。此配置确保您的图形桌面环境在实例完成启动过程后立即可用并可访问。

  • 配置服务在启动时启动。

    [ec2-user ~]$ sudo systemctl enable vncserver@:1
    重要

    启用 vncserver 服务时, @ 后面的部分必须与在 /etc/tigervnc/vncserver.users 文件中为用户设置的显示编号匹配。此外,您可以在 enable 之后传递 --now 参数以立即启动服务。

    执行此步骤后,您将不再需要在每次重启实例时启动 vncserver

(可选)禁用空闲锁屏

  • 将空闲延迟设置为零,以便在用户长时间不活动时禁用锁屏。

    [ec2-user ~]$ gsettings set org.gnome.desktop.session idle-delay 0

相关主题

有关图形桌面环境的更多信息,请参阅以下文档: