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

10 使用 VNC 的远程图形会话

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

SUSE Linux Enterprise Server 支持两种不同种类的 VNC 会话:自客户端启动起在 VNC 连接期间在线的一次性会话和始终在线直到被明确终止的永久会话。

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

10.1 vncviewer 客户端

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

10.1.1 使用 vncviewer CLI 进行连接

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

tux > vncviewer jupiter.example.com:1

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

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

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

10.1.2 使用 vncviewer GUI 进行连接

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

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

10.1.3 未加密连接通知

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

10.2 Remmina:远程桌面客户端

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

10.2.1 安装

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

root # zypper in remmina remmina-plugin-vnc

10.2.2 主窗口

通过输入 remmina 命令运行 Remmina。

Remmina 的主窗口
图 10.2︰ Remmina 的主窗口

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

10.2.3 添加远程会话

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

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

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

名称

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

协议

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

服务器

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

用户名、口令

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

色深、质量

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

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

提示
提示:禁用加密

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

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

单击保存进行确认。新设置的配置文件将列在主窗口中。

10.2.4 启动远程会话

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

10.2.4.1 快速启动远程会话

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

快速启动
图 10.4︰ 快速启动

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

10.2.4.2 打开保存的远程会话

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

10.2.4.3 远程会话窗口

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

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

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

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

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

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

10.2.6 从命令行运行远程会话

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

 tux > remmina -c profile_name.remmina

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

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

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

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

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

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

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

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

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

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

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

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

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

远程管理
图 10.7︰ 远程管理

10.3.1 可用配置

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

其他配置可在不同端口上使用,请参见第 10.3.3 节 “配置一次性 VNC 会话”

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

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

10.3.2 启动一次性 VNC 会话

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

10.3.3 配置一次性 VNC 会话

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

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

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

tux > sudo  systemctl enable xvnc.socket

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

tux > sudo  systemctl start xvnc.socket

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

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

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

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

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

10.4 配置永久 VNC 服务器会话

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

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

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

持续 VNC 会话分为以下两类:

10.4.1 使用 vncserver 启动的 VNC 会话

此类型的持续 VNC 会话在服务器上启动。该会话和其上启动的所有应用程序运行时不考虑客户端连接,直到会话被终止。永久会话访问受到两种可用口令类型的保护:

  • 授予完全访问权限的普通口令或

  • 可选仅查看口令,授予非交互(仅查看)访问权限。

一个会话可一次具有两种类型的多个客户端连接。

过程 10.2︰ 使用 vncserver 启动永久 VNC 会话
  1. 打开外壳,确保以拥有 VNC 会话的用户身份登录。

  2. 如果用于 VNC 会话的网络接口受防火墙保护,则需要手动打开防火墙中您的会话所使用的端口。如果启动多个会话,还可以选择打开一个端口范围。有关如何配置防火墙的细节,请参见第 24 章 “掩蔽和防火墙

    vncserver 对显示器 :1 使用端口 5901,对显示器 :2 使用端口 5902,依次类推。对于永久会话,VNC 显示器和 X 显示器通常具有相同编号。

  3. 要其他具有 1024x768 像素和颜色深度为 16 的会话,请输入以下命令:

    vncserver -alwaysshared -geometry 1024x768 -depth 16

    vncserver 命令会在您未指定时选取一个未使用的显示编号,并打印输出它的选择。有关更多选项,请参见 man 1 vncserver

当您首次运行 vncserver 时,它会要求您输入一个口令,以获取会话的完全访问权限。如果需要,还可以提供口令用于会话的仅查看访问。

这里提供的口令还用作同一用户将来启动会话的口令。这些口令可以用 vncpasswd 命令更改。

重要
重要:安全注意事项

确保使用长度够长的高强度口令(八个或更多字符)。不要共享这些口令。

要终止会话,请从 VNC 查看器中关闭运行于 VNC 会话内的桌面环境,像您关闭普通本地 X 会话那样关闭它。

如果希望手动终止会话,请在 VNC 服务器上打开外壳并确保您已作为拥有要终止的 VNC 会话的用户登录。运行以下命令来终止在显示器 :1 上运行的会话:vncserver -kill :1

10.4.1.1 配置永久 VNC 会话

通过编辑 $HOME/.vnc/xstartup 可以配置持续 VNC 会话。默认情况下,此外壳脚本会启动它启动时所处的同一个 GUI/窗口管理器。在 SUSE Linux Enterprise Server 中,此 GUI/窗口管理器为 GNOME 或 IceWM。如果要使用您选择的窗口管理器启动会话,请设置变量 WINDOWMANAGER

WINDOWMANAGER=gnome vncserver -geometry 1024x768
WINDOWMANAGER=icewm vncserver -geometry 1024x768
注意
注意:每个用户一种配置

持续 VNC 会话在单个按用户配置中进行配置。由同一个用户启动的多个会话都使用相同的启动文件和口令文件。

10.4.2 使用 vncmanager 启动的 VNC 会话

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

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

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

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

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

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

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

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

10.4.2.1 配置永久 VNC 会话

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

VNC 会话设置
图 10.8︰ VNC 会话设置

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

非持续,私用

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

持续,可见

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

会话名称

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

不需要口令

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

需要用户登录

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

一次允许一个客户端

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

一次允许多个客户端

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

单击确定进行确认。

10.4.2.2 加入永久 VNC 会话

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

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

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

10.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)。

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

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

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

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