温馨提示×

centos vnc如何多用户登录

小樊
32
2026-07-08 00:30:37
栏目: 智能运维

CentOS 上实现 VNC 多用户登录,核心思路是:
每个用户一个 VNC 实例(不同端口 / 不同 systemd 服务),而不是多个用户挤进同一个会话。

下面以 CentOS 7 / 8(systemd) 为例说明,假设使用 TigerVNC


一、安装 VNC 服务

yum install -y tigervnc-server
# CentOS 8 用 dnf
dnf install -y tigervnc-server

二、每个用户设置 VNC 密码

切换到对应用户

su - user1
vncpasswd
exit

su - user2
vncpasswd
exit

⚠️ 不要用 root 给别的用户设密码。


三、创建多个 VNC 服务(关键)

1️⃣ 复制服务模板

cp /lib/systemd/system/vncserver@.service \
   /etc/systemd/system/vncserver@:1.service

2️⃣ 编辑服务文件

vim /etc/systemd/system/vncserver@:1.service

修改:

[Service]
Type=forking
User=user1
ExecStart=/usr/bin/vncserver :1 -geometry 1280x800 -depth 24
ExecStop=/usr/bin/vncserver -kill :1

:1 表示 端口 5901


3️⃣ 为第二个用户创建 :2

cp /etc/systemd/system/vncserver@:1.service \
   /etc/systemd/system/vncserver@:2.service

修改:

User=user2
ExecStart=/usr/bin/vncserver :2 -geometry 1280x800 -depth 24
ExecStop=/usr/bin/vncserver -kill :2

端口对应关系:

显示号 端口
:1 5901
:2 5902
:3 5903

四、启动并设置开机自启

systemctl daemon-reload

systemctl start vncserver@:1
systemctl enable vncserver@:1

systemctl start vncserver@:2
systemctl enable vncserver@:2

五、防火墙放行端口

firewall-cmd --permanent --add-port=5901/tcp
firewall-cmd --permanent --add-port=5902/tcp
firewall-cmd --reload

六、客户端连接

使用 VNC Viewer 连接:

192.168.1.100:1
或
192.168.1.100:5901

不同用户连接不同端口即可。


七、常见问题

❌ 1. 多个用户共用一个 :1

❌ VNC 不支持
✅ 必须每个用户一个实例


❌ 2. 登录后黑屏

检查:

ls ~/.vnc/xstartup

确保有桌面环境(GNOME / XFCE):

yum groupinstall "GNOME Desktop"

xstartup 示例:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec /etc/X11/xinit/xinitrc

❌ 3. SELinux 阻止

临时测试:

setenforce 0

八、推荐方案(生产环境)

多用户 VNC + 不同端口
✅ 或用 xrdp + VNC(Windows 友好)
❌ 不建议 VNC 直接公网暴露(用 SSH 隧道)


如果你愿意,可以告诉我:

  • CentOS 7 还是 8 / Stream?
  • 用 GNOME 还是 XFCE?
  • 是否需要 root 也能登录?

我可以给你 完整可执行脚本版本

0