CentOS VNC 多用户配置指南
一、适用场景与准备
yum groupinstall "GNOME Desktop" -y 或 yum groupinstall "Xfce" -y。yum install tigervnc-server -y。su - <用户名> && vncpasswd(与系统登录密码无关)。二、CentOS 7 配置步骤(systemd 模板方式)
cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service
systemctl daemon-reload
[Service]
Type=simple
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i >/dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l user1 -c "/usr/bin/vncserver %i -geometry 1920x1080 -alwaysshared -depth 24"
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i >/dev/null 2>&1 || :'
将 user1 替换为对应用户名;:1 对应端口 5901,:2 对应 5902,依此类推。su - user1
vncpasswd
exit
su - user2
vncpasswd
exit
systemctl enable --now vncserver@:1.service
systemctl enable --now vncserver@:2.service
firewall-cmd --permanent --add-port=5901-5902/tcp
firewall-cmd --reload
服务器IP:1 或 服务器IP:5901(对应 :2 则为 :2 或 :5902)。三、CentOS 6 配置步骤(传统 initscripts 方式)
yum install vnc-server -y
useradd user1 && passwd user1
useradd user2 && passwd user2
su - user1 && vncpasswd && exit
su - user2 && vncpasswd && exit
/etc/sysconfig/vncserversVNCSERVERS="1:user1 2:user2"
VNCSERVERARGS[1]="-geometry 1024x768 -alwaysshared"
VNCSERVERARGS[2]="-geometry 1024x768 -alwaysshared"
service vncserver start
chkconfig vncserver on
iptables -I INPUT -p tcp --dport 5901:5902 -j ACCEPT
service iptables save
IP:1 或 IP:5901(对应 :2 为 IP:2/5902)。四、进阶 同桌面读写与只读同时访问
yum install epel-release -y
yum install x11vnc -y
/etc/systemd/system/vncserver@:8.service[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/home/kiosk/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i >/dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l kiosk -c "/usr/bin/vncserver :8 -geometry 1300x800 -AlwaysShared"
ExecStartPost=/sbin/runuser -l kiosk -c "/usr/bin/x11vnc -nocursorshape -viewonly -shared -nopw -auth guess -forever -autoport 5908 -display :8 &"
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i >/dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
su - kiosk
vncpasswd
# 当提示时选择 y 设置 view-only 密码
exit
systemctl daemon-reload
systemctl enable --now vncserver@:8.service
IP:8(5908),只读客户端连 IP:5909。提示:RHEL8 起 tigervnc 已支持设置只读密码,可直接用 vncpasswd 的只读选项实现类似效果。五、常见问题与排错
vncpasswd、以及 ~/.vnc/xstartup 是否配置正确。~/.vnc/xstartup 是否启动桌面会话;必要时在 xstartup 中使用 gnome-session 或 startxfce4。若出现花屏,可尝试将客户端画质设置为 High。rm -f /tmp/.X11-unix/X2
systemctl restart vncserver@:2.service
setenforce 0 验证是否为 SELinux 限制(生产环境请改为永久策略放行)。