温馨提示×

CentOS VNC如何多用户使用

小樊
81
2026-07-19 08:34:25
栏目: 智能运维

在 CentOS 上实现 VNC 多用户使用,常见的是 每个用户各自一个 VNC 会话(端口/号不同),而不是多个用户共用同一个桌面。下面按 CentOS 7/8(含 Rocky、Alma 同类系统) 给你一套实用、规范的做法。


一、整体思路(重点)

  • 每个用户独立运行 VNC Server
  • 每个用户使用 不同的 VNC 端口/号
    • 用户 A::1 → 端口 5901
    • 用户 B::2 → 端口 5902
  • VNC 登录后就是该用户的桌面环境(GNOME / XFCE 等)

二、安装 VNC 服务器(只需一次)

1. 安装 TigerVNC(推荐)

# CentOS 7
yum install -y tigervnc-server

# CentOS 8 / Rocky / Alma
dnf install -y tigervnc-server

三、为每个用户配置 VNC(关键步骤)

假设有 userA 和 userB 两个用户。


1. 切换到对应用户

su - userA

2. 设置 VNC 密码(必须)

vncpasswd

⚠️ 不要使用 root 直接跑用户 VNC


3. 创建 VNC 配置文件(CentOS 7)

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

4. 启动 VNC Server(指定端口)

vncserver :1
  • :1 → 端口 5901
  • 下次可写成:
vncserver :2

四、多用户端口规划(示例)

用户 VNC 号 端口
userA :1 5901
userB :2 5902
userC :3 5903

五、配置 systemd(让 VNC 随系统启动,推荐)

CentOS 7/8 示例(userA)

复制模板:

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

七、客户端连接方式

Windows / Linux / macOS

使用 RealVNC / TigerVNC Viewer

连接地址:

服务器IP:1
或
服务器IP:5901

八、常见问题

1. 灰屏 / 黑屏

  • xstartup 没执行权限
  • 桌面环境未安装
  • 用户没有 home 目录写权限

2. 端口冲突

vncserver -list
vncserver -kill :1

3. root 不推荐直接跑 VNC

  • 安全风险大
  • 多用户场景不建议

九、推荐方案总结 ✅

✅ 多用户 VNC 正确姿势

  • 每个用户一个 VNC 实例
  • 不同端口
  • systemd 管理
  • 非 root 运行

如果你愿意,我可以:

  • ✅ 给你 CentOS 7 / 8 专用一键脚本
  • ✅ 帮你选 GNOME / XFCE / MATE
  • ✅ 配置 VNC + SSH 隧道(更安全)

直接告诉我你用的是 CentOS 几 + 桌面环境即可。

0 踩