在 CentOS 上实现 VNC 多用户使用,常见的是 每个用户各自一个 VNC 会话(端口/号不同),而不是多个用户共用同一个桌面。下面按 CentOS 7/8(含 Rocky、Alma 同类系统) 给你一套实用、规范的做法。
:1 → 端口 5901:2 → 端口 5902# CentOS 7
yum install -y tigervnc-server
# CentOS 8 / Rocky / Alma
dnf install -y tigervnc-server
假设有 userA 和 userB 两个用户。
su - userA
vncpasswd
⚠️ 不要使用 root 直接跑用户 VNC
mkdir -p ~/.vnc
vi ~/.vnc/xstartup
写入:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec /etc/X11/xinit/xinitrc
或直接指定桌面(推荐):
#!/bin/sh
export DESKTOP_SESSION=gnome
exec gnome-session
如果用 XFCE:
exec startxfce4
赋予执行权限:
chmod +x ~/.vnc/xstartup
vncserver :1
:1 → 端口 5901vncserver :2
| 用户 | VNC 号 | 端口 |
|---|---|---|
| userA | :1 | 5901 |
| userB | :2 | 5902 |
| userC | :3 | 5903 |
复制模板:
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
编辑:
vi /etc/systemd/system/vncserver@:1.service
修改:
[Service]
Type=forking
User=userA
PAMName=login
PIDFile=/home/userA/.vnc/%H:%i.pid
ExecStart=/usr/bin/vncserver :%i
ExecStop=/usr/bin/vncserver -kill :%i
重载并启动:
systemctl daemon-reload
systemctl enable vncserver@:1
systemctl start vncserver@:1
firewall-cmd --permanent --add-port=5901-5910/tcp
firewall-cmd --reload
使用 RealVNC / TigerVNC Viewer
连接地址:
服务器IP:1
或
服务器IP:5901
xstartup 没执行权限vncserver -list
vncserver -kill :1
✅ 多用户 VNC 正确姿势
如果你愿意,我可以:
直接告诉我你用的是 CentOS 几 + 桌面环境即可。