银河麒麟系统实现多用户并发vnc桌面需五步:一、为各用户创建独立systemd服务实例并配置端口;二、在/etc/tigervnc/vncserver.users中映射端口与用户;三、各用户初始化vncpasswd及xstartup桌面脚本;四、firewalld放行5901/5902等对应端口;五、启用并启动各vncserver@:n.service。

如果您在银河麒麟系统中需要多个用户同时登录并独立操作桌面环境,则需配置支持并发会话的远程访问机制。以下是实现多用户并发访问的具体步骤:
一、为各用户创建独立VNC服务实例
每个用户需拥有专属的VNC显示端口与对应systemd服务单元,确保会话隔离与资源独立。系统通过不同端口号(如:1、:2)映射至5901、5902等TCP端口,避免端口冲突。
1、以root身份执行命令为用户username1创建服务模板:
cp -rp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
2、编辑该服务文件:
vim /etc/systemd/system/vncserver@:1.service
3、修改[Unit]段中的Description值为“VNC server for username1”;
在[Service]段中设置User=username1、Group=username1,并将PIDFile路径改为/home/username1/.vnc/%H:%i.pid;
确认ExecStart=/usr/bin/vncserver -autokill %i
4、重复上述步骤,为username2创建vncserver@:2.service,仅需替换端口号与用户名。
二、配置全局VNC用户映射关系
系统需明确识别每个显示端口归属的用户,此映射由/etc/tigervnc/vncserver.users文件统一管理,是多用户启动的基础依据。
1、创建或编辑配置文件:
sudo nano /etc/tigervnc/vncserver.users
2、写入以下两行内容:
:1=username1
:2=username2
3、保存退出后,确保该文件权限为644:
sudo chmod 644 /etc/tigervnc/vncserver.users
三、为各用户初始化VNC密码与桌面环境
VNC认证依赖用户级密码,且首次运行需生成初始配置及桌面启动脚本,否则连接时将黑屏或断连。
1、切换至username1账户:
su - username1
2、执行密码设置:
vncpasswd
3、手动启动一次会话以生成~/.vnc/xstartup文件:
vncserver :1
4、停止该临时会话:
vncserver -kill :1
5、编辑xstartup文件,确保末尾包含:
exec /usr/bin/gnome-session &
6、对username2重复步骤1–5,使用:vncserver :2初始化。
四、开放防火墙对应端口
每个VNC显示端口对应一个TCP端口(5900+N),必须显式放行,否则客户端无法建立连接。
1、检查当前firewalld状态:
sudo systemctl status firewalld
2、若处于运行中,依次添加端口:
sudo firewall-cmd --permanent --add-port=5901/tcp
sudo firewall-cmd --permanent --add-port=5902/tcp
3、重载规则使生效:
sudo firewall-cmd --reload
五、启用并启动各用户VNC服务
通过systemd托管可保障服务开机自启与异常自动恢复,避免手动维护风险。
1、为username1启用服务:
sudo systemctl enable vncserver@:1.service
2、立即启动该服务:
sudo systemctl start vncserver@:1.service
3、验证服务状态:
sudo systemctl status vncserver@:1.service
4、对username2执行相同操作,将:1替换为:2。










