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 服务器的行为。您可以配置用户映射和各种全局选项。
常规选项
您可以在 /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
其它资源
-
有关可用的配置选项列表,请查看
Xvnc(1)
手册页。
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]
部分。 - 重启服务器。
-
取消
其它资源
- 要启用对两个以上服务器用户的 VNC 访问,请打开 5903 以上的 TCP 端口。详情请参阅 使用 CLI 控制预定义服务的流量,或使用 GUI 控制预定义服务的流量。
5.3.4. 以多个用户身份连接到 VNC 服务器
这个流程使用 vncviewer
应用程序连接到远程桌面会话。您可以同时打开到远程桌面的多个连接。
先决条件
- 服务器上启用了多个用户的远程桌面访问。详情请查看 第 5.3.3 节 “在服务器上启用多用户 VNC 访问”。
流程
连接到 VNC 服务器:
$ vncviewer --shared server-ip:display
- 将 server-ip 替换为您要连接的服务器的 IP 地址。
- 使用服务器用户导出 VNC 会话的显示号替换 display。