

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

# 教程：在上配置 TigerVNC 服务器 AL2023
<a name="vnc-configuration-al2023"></a>

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

**Topics**
+ [

## 前提条件
](#installing-vnc-prereqs-2023)
+ [

## 步骤 1：安装
](#install-vnc-server-2023)
+ [

## 步骤 2：配置
](#start-vnc-server-2023)
+ [

## 步骤 3：使用 VNC 客户端连接
](#connect-vnc-server-2023)
+ [

## （可选）启动时启动服务
](#optional-services-vnc-2023)
+ [

## （可选）禁用空闲锁屏
](#optional-lockscreen-vnc-2023)
+ [

## 相关主题
](#vnc-more-info-2023)

## 前提条件
<a name="installing-vnc-prereqs-2023"></a>
+ 本教程假设您已经在 AL2023 实例上安装了 GNOME 桌面环境。有关更多信息，请参阅[教程：在上安装 GNOME 桌面环境 AL2023](installing-gnome-al2023.md)页面。
+ 本教程使用 SSH 端口转发来访问 VNC 服务器。有关设置密钥对的更多信息，请参阅*《Amazon EC2 用户指南》*中的[使用 SSH 连接到您的 Linux 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html)。
+  以下步骤不指导您安装 VNC 客户端的过程。您必须在本地计算机上安装 VNC 客户端，才能连接至桌面环境并与之交互。

## 步骤 1：安装
<a name="install-vnc-server-2023"></a>

1. 连接到您的实例。有关更多信息，请参阅 [连接到 AL2023 实例](connecting-to-instances.md)。

1. 安装适用的 TigerVNC 服务器软件包。 AL2023

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

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

## 步骤 2：配置
<a name="start-vnc-server-2023"></a>

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

   ```
   [ec2-user ~]$ vncpasswd
   ```

1. 为用户分配一个显示编号。

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

   添加以下配置：

   ```
   :1=ec2-user
   ```
**注意**  
您可以为用户分配任意显示编号。在此示例中，我们使用显示编号 ` :1`。

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

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

   添加以下配置：

   ```
   session=gnome
   securitytypes=vncauth,tlsvnc
   geometry=1920x1080
   localhost
   alwaysshared
   ```
**注意**  
您可以使用 `geometry` 参数更改显示分辨率。在此示例中，我们使用 `1920x1080`。

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

   ```
   [ec2-user ~]$ sudo systemctl start vncserver@:1
   ```
**重要**  
启动 `vncserver` 服务时，` @` 后面的部分必须与在 ` /etc/tigervnc/vncserver.users` 文件中为用户设置的显示编号匹配。

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

## 步骤 3：使用 VNC 客户端连接
<a name="connect-vnc-server-2023"></a>

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

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

   ```
   $ ssh -i <keypair> -L 5901:localhost:5901 ec2-user@<address>
   ```
**注意**  
将 `<keypair>` 替换为您的 SSH 密钥路径，并将 ` <address>` 替换为您实例的公共 IP 或 DNS 名称。端口号根据用于启动 ` vncserver` 的显示编号而变化。例如，显示编号 `:1` 使用端口 `5901`，显示编号 `:2` 使用端口 `5902`，依此类推。

1. 使用您的 VNC 客户端连接到 `localhost:5901` 或 ` 127.0.0.1:5901`，并使用先前设置的 VNC 密码。
**重要**  
 使用 VNC 时请保持 SSH 隧道处于打开状态。如果 SSH 隧道未打开，您将无法使用 VNC 客户端查看桌面环境并与之交互。

## （可选）启动时启动服务
<a name="optional-services-vnc-2023"></a>

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

  ```
  [ec2-user ~]$ sudo systemctl enable vncserver@:1
  ```
**重要**  
启用 `vncserver` 服务时，` @` 后面的部分必须与在 ` /etc/tigervnc/vncserver.users` 文件中为用户设置的显示编号匹配。此外，您可以在 `enable` 之后传递 ` --now` 参数以立即启动服务。

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

## （可选）禁用空闲锁屏
<a name="optional-lockscreen-vnc-2023"></a>
+ 将空闲延迟设置为零，以便在用户长时间不活动时禁用锁屏。

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

## 相关主题
<a name="vnc-more-info-2023"></a>

有关图形桌面环境的更多信息，请参阅以下文档：
+  [教程：在上安装 GNOME 桌面环境 AL2023](installing-gnome-al2023.md) 
+ *《Amazon DCV 管理员指南》*中的[什么是 Amazon DCV？](https://docs.aws.amazon.com/dcv/latest/adminguide/what-is-dcv.html)