5.3. 以多个用户身份远程访问桌面
您可以远程连接到 RHEL 服务器上的桌面,并以不同用户身份同时打开多个会话。
以下说明适用于 RHEL 8.3 及更新版本。如果您使用 RHEL 8.0 到 8.2,请参阅红帽知识库解决方案 如何在 Red Hat Enterprise Linux 8.0 - 8.2 中配置特定于用户的 VNC 服务器。
先决条件
安装 VNC 服务器:
# yum install tigervnc-server安装 VNC 客户端:
# yum install tigervnc
5.3.1. VNC 中端口和显示号与用户的映射 复制链接链接已复制到粘贴板!
通过 VNC,客户端可以连接到服务器上不同用户的桌面会话。显示号和 TCP 端口号会附加到导出 VNC 会话的每个服务器用户身上。客户端使用端口号来指定它要连接服务器的哪个用户。
如果多个客户端使用相同的端口号进行连接,则它们都打开与同一服务器用户的 VNC 会话。
您必须为导出 VNC 会话的每个服务器用户配置映射。对于每个这样的用户,您必须选取一个唯一的端口和显示号。
推荐的映射
红帽建议您对第一个用户从端口号 5902 ,显示号 2 开始,并为每个额外的服务器用户数字递增 1。
端口号 5900 和显示 0 代表当前登录到图形会话的服务器用户。您无法为已登录到图形会话的用户启动 VNC 服务器。
| 端口号 | 显示号 | 备注 |
|---|---|---|
| 5900 | 0 | 已登录用户 |
| 5901 | 1 | |
| 5902 | 2 | 第一个推荐的 VNC 用户 |
| 5903 | 3 | |
| … | … |
红帽建议您不要配置 root 用户来导出 VNC 会话。root VNC 会话是不安全的,会话的某些元素可能无法按预期工作。
防火墙规则
您必须在防火墙配置中打开所选端口。在防火墙中允许 vnc-server 服务打开从 5900 至 5903 的端口。如果需要启用对其他服务器用户的访问权限,则必须手动指定端口号来打开 5903 以上的端口。
5.3.2. VNC 服务器配置文件 复制链接链接已复制到粘贴板!
多个配置文件会影响 VNC 服务器的行为。您可以配置用户映射和各种全局选项。
从 TigerVNC 1.14 开始,配置文件存储在 $HOME/.config/tigervnc 下,以及状态文件,如 logs 和 saved_sessions,在 $HOME/.local/state/tigervnc 下。
常规选项
您可以在 /etc/tigervnc/vncserver-config-defaults 配置文件中配置 VNC 服务器的常规选项。该文件使用以下格式:
option1=value
option2
例如:
session=gnome
alwaysshared
securitytypes=vncauth,tlsvnc
desktop=sandbox
geometry=2000x1200
配置文件的优先级
VNC 服务器读取以下常规选项文件,顺序为从最重要到最不重要:
/etc/tigervnc/vncserver-config-mandatory此文件取代了默认配置,其优先级高于按用户的配置。其目的是用于希望强制实施特定 VNC 选项的系统管理员。
$HOME/.vnc/config单个用户可以覆盖此文件中的默认 VNC 配置。
/etc/tigervnc/vncserver-config-defaults此文件存储默认的 VNC 配置。
用户映射
您可以在 /etc/tigervnc/vncserver.users 配置文件中配置用户与其关的端口和显示号之间的映射。该文件使用以下格式:
:number=user
例如:
:2=test
:3=vncuser
5.3.3. 在服务器上启用多用户 VNC 访问 复制链接链接已复制到粘贴板!
此流程配置 RHEL 服务器,以便多个用户可以同时在其上打开 VNC 会话。
先决条件
如果您之前使用
systemd单元文件配置了 VNC,请删除所有过时的 VNC 配置:[root]# rm /etc/systemd/system/vncserver@.service
流程
将用户映射到显示号和端口号。
在
/etc/tigervnc/vncserver.users配置文件中,为每个要导出 VNC 会话的服务器用户添加一行::user-number=user-name- 使用映射到所选现有用户的端口号和显示号替换 user-number。
- 使用所选现有用户的用户名替换 user-name。
例如:
:2=vncuser在防火墙中打开 5900 到 5903 的 TCP 端口:
[root]# firewall-cmd --permanent --add-service=vnc-server重新载入防火墙规则:
[root]# firewall-cmd --reload在
/etc/tigervnc/vncserver-config-defaults配置文件中添加以下行:session=gnome alwaysshared这个配置有以下影响:
- 当远程用户登录时,VNC 服务器会启动 GNOME 会话。
- 多个用户可以同时连接到 VNC 服务器。
作为导出 VNC 会话的每个服务器用户,为用户设置 VNC 密码:
[regular-user]$ vncpasswd在连接到服务器上的桌面时,远程客户端必须输入此密码。
如果您之前为用户配置了 VNC,请确保配置文件具有正确的 SELinux 上下文:
[regular-user]$ restorecon -RFv ~/.vnc为常规用户启用并启动 VNC 服务器单元:
[root]# systemctl enable --now vncserver@:user-number如果服务器使用专有 Nvidia 驱动程序,请禁用 Wayland:
-
取消
/etc/gdm/custom.conf配置文件中WaylandEnable=False行的注释。 -
将
DefaultSession=gnome-xorg.desktop选项添加到配置文件的[daemon]部分。 - 重启服务器。
-
取消
5.3.4. 以多个用户身份连接到 VNC 服务器 复制链接链接已复制到粘贴板!
这个流程使用 vncviewer 应用程序连接到远程桌面会话。您可以同时打开到远程桌面的多个连接。
先决条件
- 服务器上启用了多个用户的远程桌面访问。详情请参阅在 服务器 上启用多用户 VNC 访问。
流程
连接到 VNC 服务器:
$ vncviewer --shared server-ip:display- 将 server-ip 替换为您要连接的服务器的 IP 地址。
- 使用服务器用户导出 VNC 会话的显示号替换 display。