跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Desktop 文档 / 管理指南 / 常用任务 / 使用 VNC 的远程图形会话
适用范围 SUSE Linux Enterprise Desktop 15 SP6

14 使用 VNC 的远程图形会话

利用虚拟网络计算 (VNC) 可以通过图形桌面来访问远程计算机,并运行远程图形应用程序。VNC 与平台无关,可以从任何操作系统访问远程计算机。本章介绍如何使用桌面客户端 vncviewer 和 Remmina 连接到 VNC 服务器,以及如何操作 VNC 服务器。

SUSE Linux Enterprise Desktop 支持两种不同类型的 VNC 会话:一次性会话,在客户端 VNC 连接持续期间处于活跃状态;永久会话,在被明确终止前始终处于活跃状态。

VNC 服务器可在不同端口上同时提供两种会话,但打开的会话不能从一种类型转换为另一种类型。

14.1 vncviewer 客户端

要连接到服务器提供的 VNC 服务,需要使用客户端。SUSE Linux Enterprise Desktop 中的默认客户端是 tigervnc 软件包提供的 vncviewer

14.1.1 使用 vncviewer CLI 进行连接

要启动 VNC 查看器并发起与服务器的会话,请使用以下命令:

> vncviewer jupiter.example.com:1

若不使用 VNC 显示器编号,您也可以指定带两个冒号的端口号:

> vncviewer jupiter.example.com::5901
注意
注意:显示号和端口号

您在 VNC 客户端中指定的实际显示号或端口号必须与您在目标计算机上配置 VNC 服务器时选择的显示号或端口号相同。有关更多信息,请参见第 14.4 节 “配置永久 VNC 服务器会话”

14.1.2 使用 vncviewer GUI 进行连接

如果在不指定 --listen 或要连接的主机的情况下运行 vncviewer,它会显示一个窗口,要求您输入连接细节。按第 14.1.1 节 “使用 vncviewer CLI 进行连接”中所述在 VNC 服务器字段中输入主机,然后单击连接

vncviewer 要求输入连接细节
图 14.1︰ vncviewer

14.1.3 未加密连接通知

VNC 协议支持不同类型的加密连接,请不要将这些连接与口令身份验证相混淆。如果某个连接未使用 TLS,VNC 查看器的窗口标题中可能会出现(连接未加密!)文本。

14.2 Remmina:远程桌面客户端

Remmina 是功能丰富的新式远程桌面客户端。它支持多种访问方法,例如 VNC、SSH、RDP 和 Spice。

14.2.1 安装

要使用 Remmina,请校验系统上是否安装了 remmina 软件包,如未安装,请加以安装。记得还要安装适用于 Remmina 的 VNC 插件:

# zypper in remmina remmina-plugin-vnc

14.2.2 主窗口

通过输入 remmina 命令运行 Remmina。

Remmina 的主窗口
图 14.2︰ Remmina 的主窗口

该应用程序主窗口显示存储的远程会话列表。在这里,您可以添加和保存新远程会话、快速启动新会话而不保存、启动以前保存的会话,或设置 Remmina 的全局首选项。

14.2.3 添加远程会话

要添加和保存新远程会话,请单击主窗口左上方的 Add new session远程桌面首选项窗口即会打开。

远程桌面首选项
图 14.3︰ 远程桌面首选项

在用于指定新添加的远程会话配置文件的字段中填写信息。最重要的技术包括:

名称

配置文件的名称,将列于主窗口中。

协议

连接远程会话时要使用的协议,例如 VNC。

服务器

远程服务器的 IP 或 DNS 地址和显示号。

用户名、口令

要用于进行远程身份验证的身份凭证。保留为空表示不进行身份验证。

色深、质量

根据连接速度和质量选择最佳选项。

选择高级选项卡可输入更具体的设置。

提示
提示:禁用加密

如果客户端与远程服务器之间的通讯不加密,请激活禁用加密,否则连接会失败。

选择 SSH 选项卡可显示高级 SSH 隧道通讯进程和身份验证选项。

单击保存进行确认。新配置文件现在即会列在主窗口中。

14.2.4 启动远程会话

您可以启动以前保存的会话,也可以快速启动一个远程会话而不保存连接细节。

14.2.4.1 快速启动远程会话

要快速启动远程会话而不添加并保存连接细节,请使用主窗口顶部的下拉框和文本框。

快速启动
图 14.4︰ 快速启动

从下拉列表中选择通讯协议(例如 VNC),然后输入 VNC 服务器 DNS 或 IP 地址,后跟一个冒号和显示号,然后按 Enter 确认。

14.2.4.2 打开保存的远程会话

要打开特定的远程会话,请从会话列表中双击该会话。

14.2.4.3 远程会话窗口

远程会话会在新窗口的标签中打开。每个标签托管一个会话。窗口左侧的工具栏可用来管理窗口/会话。例如,切换全屏模式、调整窗口大小以适应会话的显示大小、将特定按键发送到会话、对会话进行屏幕截图,或设置图像质量。

正在查看远程会话的 Remmina
图 14.5︰ 正在查看远程会话的 Remmina

14.2.5 编辑、复制和删除保存的会话

编辑保存的某个远程会话,请在 Remmina 的主窗口中右键单击其名称,然后选择编辑。有关相关字段的说明,请参见第 14.2.3 节 “添加远程会话”

复制保存的某个远程会话,请在 Remmina 的主窗口中右键单击其名称,然后选择复制。在远程桌面首选项窗口中,更改配置文件的名称,(可选)调整相关选项,然后单击保存确认。

删除保存的某个远程会话,请在 Remmina 的主窗口中右键单击其名称,然后选择删除。在下一个对话框中,单击确认。

14.2.6 从命令行运行远程会话

如果您需要从命令行或使用批处理文件打开远程会话,而不先打开应用程序主窗口,请使用以下语法:

 > remmina -c profile_name.remmina

Remmina 的配置文件存储在您主目录下的 .local/share/remmina/ 目录中。要确定哪个配置文件属于您要打开的会话,请运行 Remmina,在主窗口中单击会话名称,然后在窗口底部的状态行中查看配置文件的路径。

读取配置文件的路径
图 14.6︰ 读取配置文件的路径

如果 Remmina 未在运行,您可以将配置文件重命名为更合理的文件名,例如 sle15.remmina。您甚至可以将配置文件复制到自定义目录,并从该目录中使用 remmina -c 命令来运行它。

14.3 在 VNC 服务器上配置一次性会话

一次性会话由远程客户端启动。它在服务器上启动图形登录屏幕。这样您可以选择启动会话的用户,并且如果登录管理器支持,还可以选择桌面环境。取消与此类 VNC 会话的客户端连接时,此会话中启动的所有应用程序也会终止。一次性 VNC 会话不能共享,但可以在一台主机上同时存在多个会话。

过程 14.1︰ 启用一次性 VNC 会话
  1. 启动 YaST ›  网络服务 ›  远程管理 (VNC)

  2. 选中允许远程管理(不含会话管理)

  3. 如果您打算在 Web 浏览器窗口中访问 VNC 会话,请激活允许使用 Web 浏览器访问

  4. 如果需要,还可以选中打开防火墙中的端口(例如,当网络接口配置为在外部区域中时)。如果有多个网络接口,请通过防火墙细节将打开防火墙端口限制为特定的接口。

  5. 单击下一步确认您的设置。

  6. 如果不是所有需要的软件包都可使用,则需要批准安装缺少的软件包。

    提示
    提示:重启动显示管理器

    YaST 对显示管理器设置进行了更改。您需要注销当前图形会话并重启动显示管理器,以使更改生效。

远程管理
图 14.7︰ 远程管理

14.3.1 可用配置

SUSE Linux Enterprise Desktop 上的默认配置以 1024x768 像素(颜色深度 16 位)显示会话。在端口 5901(针对普通VNC 查看器,等同于 VNC 显示器 1)和端口 5801(针对 Web 浏览器)上可以使用会话。

其他配置可在不同端口上使用。如果需要修改配置,请咨询您的系统管理员了解细节。

VNC 显示器编号和 X 显示器编号是独立于一次性会话的。VNC 显示器编号手动指派给服务器支持的每个配置(如上例中的 :1)。只要 VNC 会话启动时带任一配置,就会自动获取可用 X 显示器编号。

默认情况下,VNC 客户端与服务器将尝试通过安装后生成的自我签名 SSL 证书安全通讯。您可以使用默认的证书,也可以将它替换为您自己的证书。使用自我签名证书时,需要在首次连接之前,在 VNC 查看器和 Web 浏览器中确认证书的签名。

提示
提示

某些 VNC 客户端拒绝通过默认的自我签名证书建立安全连接。例如,Vinagre 客户端会对照 GnuTLS 全局可信证书存储区验证证书,如果证书是自我签名证书,则不会建立连接。在这种情况下,请使用 x509 以外的加密方法,或者为 VNC 服务器生成正确签名的证书,并将其导入到客户端的系统可信证书存储区。

14.3.2 启动一次性 VNC 会话

要连接一次性 VNC 会话,必须安装 VNC 查看器,另请参见第 14.1 节 “vncviewer 客户端”。或者,可在支持 JavaScript 的 Web 浏览器中输入以下 URL 来查看 VNC 会话:http://jupiter.example.com:5801

14.3.3 配置一次性 VNC 会话

如果不需要或想修改默认配置,则可以跳过此部分。

一次性 VNC 会话通过 systemd 套接字 xvnc.socket 启动。该套接字默认提供六个配置块:三个用于 VNC 查看器(vnc1vnc3),另外三个用于 JavaScript 客户端(vnchttpd1vnchttpd3)。默认情况下,只有 vnc1vnchttpd1 是活动的。

要在引导时激活 VNC 服务器套接字,请运行以下命令:

> sudo  systemctl enable xvnc.socket

要立即启动套接字,请运行:

> sudo  systemctl start xvnc.socket

Xvnc 服务器可通过 server_args 选项配置。有关选项列表,请参见 Xvnc --help

当添加自定义配置时,请确保它们未使用已由其他配置、其他服务或同一主机上的现有永久 VNC 会话使用的端口。

通过输入以下命令激活配置更改:

> sudo systemctl reload xvnc.socket
重要
重要:防火墙和 VNC 端口

按照过程 14.1 “启用一次性 VNC 会话”中所述激活远程管理时,端口 58015901 将在防火墙中打开。如果用于 VNC 会话的网络接口受防火墙保护,则为 VNC 会话激活更多端口时,需要手动打开各个端口。有关说明,请参见第 23 章 “伪装和防火墙

14.4 配置永久 VNC 服务器会话

可以从多个客户端同时访问持续会话。为了便于演示,我们选择一个较为理想的配置,一个客户端具有完全访问权限,所有其他客户端只具有查看访问权限。另一个用例是:教员可能需要在其中访问学员桌面的培训会话。

提示
提示:连接永久 VNC 会话

要连接持续 VNC 会话,必须安装 VNC 查看器。有关更多细节,请参见第 14.1 节 “vncviewer 客户端”。或者,可在支持 JavaScript 的 Web 浏览器中输入以下 URL 来查看 VNC 会话:http://jupiter.example.com:5801

14.4.1 使用 vncmanager 启动的 VNC 会话

过程 14.2︰ 启用永久 VNC 会话
  1. 启动 YaST ›  网络服务 ›  远程管理 (VNC)

  2. 激活允许远程管理(含会话管理)

  3. 如果您打算在 Web 浏览器窗口中访问 VNC 会话,请激活允许使用 Web 浏览器访问

  4. 如果需要,还可以选中打开防火墙中的端口(例如,当网络接口配置为在外部区域中时)。如果有多个网络接口,请通过防火墙细节将打开防火墙端口限制为特定的接口。

  5. 单击下一步确认您的设置。

  6. 如果不是所有需要的软件包都可使用,则需要批准安装缺少的软件包。

    提示
    提示:重启动显示管理器

    YaST 对显示管理器设置进行了更改。您需要注销当前图形会话并重启动显示管理器,以使更改生效。

14.4.1.1 配置永久 VNC 会话

过程 14.2 “启用永久 VNC 会话”中所述启用 VNC 会话管理后,便可以使用您喜欢的 VNC 查看器(例如 vncviewer 或 Remmina)正常连接到远程会话。登录后,您桌面环境的系统托盘中会出现VNC图标。单击该图标可打开 VNC 会话窗口。如果您的桌面环境不支持图标放在系统托盘中,请手动运行 vncmanager-controller

VNC 会话设置
图 14.8︰ VNC 会话设置

有几个设置会影响 VNC 会话的行为:

非持续,私用

这相当于一次性会话。其他用户将看不到此会话,它在您断开连接后即会终止。有关更多信息,请参考第 14.3 节 “在 VNC 服务器上配置一次性会话”

持续,可见

其他用户可以看见此类会话,它在您断开连接后仍保持运行。

会话名称

请指定持续会话的名称,以便在重新连接时可以轻松识别它。

不需要口令

任何人不必提供用户身份凭证登录即可访问会话。

需要用户登录

需要使用有效的用户名和口令登录后才能访问会话。该选项会在允许的用户文本框中列出有效的用户名。

一次允许一个客户端

防止多个用户同时加入该会话。

一次允许多个客户端

允许多个用户同时加入持续会话。适合用于远程演示或培训会话。

单击确定进行确认。

14.4.1.2 加入永久 VNC 会话

第 14.4.1.1 节 “配置永久 VNC 会话”中所述设置持续 VNC 会话后,可通过 VNC 查看器加入它。当 VNC 客户端连接到服务器后,系统会提示您选择是要创建新会话还是加入现有会话:

加入永久 VNC 会话
图 14.9︰ 加入永久 VNC 会话

当您单击现有会话的名称后,系统可能要求您输入登录身份凭证,具体取决于持续会话设置。

14.5 在 VNC 服务器上配置加密

如果 VNC 服务器设置正确,则 VNC 服务器与客户端之间的所有通讯都会被加密。身份验证在会话开始时进行;实际的数据传输在身份验证后开始。

无论是一次性还是持续 VNC 会话,安全性选项都通过 server_args 一行中 /usr/bin/Xvnc 命令的 -securitytypes 参数来配置。-securitytypes 参数用于选择身份验证和加密方式。它的选项如下:

身份验证
None、TLSNone、X509None

无身份验证。

VncAuth、TLSVnc、X509Vnc

身份验证使用自定义口令。

Plain、TLSPlain、X509Plain

身份验证使用 PAM 来验证用户的口令。

加密
None、vncAuth、plain

不加密。

TLSNone、TLSVnc、TLSPlain

匿名 TLS 加密。对所有内容加密,但不校验远程主机。因此,您可以防护被动攻击者,但不能防御中间人攻击者。

X509None、X509Vnc、X509Plain

使用证书进行 TLS 加密。如果使用自我签名证书,则在第一次连接时,系统将要求您校验证书。在以后的连接中,仅当证书有变动时,系统才会向您发出警告。因此,在第一次连接时,您可以防御中间人攻击之外的所有其他攻击(类似于使用典型的 SSH)。如果使用由证书颁发机构签名且与计算机名称匹配的证书,您的安全将得到全面保障(类似于使用典型的 HTTPS)。

提示
提示

某些 VNC 客户端拒绝通过默认的自我签名证书建立安全连接。例如,Vinagre 客户端会对照 GnuTLS 全局可信证书存储区验证证书,如果证书是自我签名证书,则不会建立连接。在这种情况下,请使用 x509 以外的加密方法,或者为 VNC 服务器生成正确签名的证书,并将其导入到客户端的系统可信证书存储区。

提示
提示:证书和密钥的路径

如果使用基于 X509 的加密,需要通过 -X509Cert-X509Key 选项指定 X509 证书和密钥的路径。

如果您选择多种安全性类型(用逗号分隔),将会使用客户端和服务器都支持且允许的第一种安全性。如此,您便可在服务器上配置随机加密。如果您需要支持不支持加密的 VNC 客户端,此功能将十分有用。

在客户端上,您也可以指定允许的安全性类型,以防在您连接到已知启用了加密的服务器时遭到降级攻击(虽然在该情况下,我们的 vncviewer 会发出“Connection not encrypted!”消息来警告您)。

14.6 与 Wayland 的兼容性

远程管理 (VNC) 功能依赖于 X11,如果启用 Wayland,系统可能会显示空白屏幕。显示管理器必须配置为使用 X11 而不是 Wayland。对于 gdm,请编辑 /etc/gdm/custom.conf。在 [daemon] 部分中,向配置文件添加 WaylandEnable=false。登录时,用户还必须选择与 X11 兼容的会话。如果想要为 GNOME 去除 Wayland 选项,可以去除并锁定 gnome-session-wayland 软件包。