在 CentOS 上启动 VNC 服务,常见有两种情况:临时启动(手动) 和 通过 systemd 开机自启。下面以 CentOS 7/8/Stream 为例说明(CentOS 6 已很少使用)。
# CentOS 7/8
yum install -y tigervnc-server
vncpasswd
会生成
~/.vnc/passwd
vncserver :1
5901~/.vnc/xstartupvncserver -kill :1
cp /lib/systemd/system/vncserver@.service \
/etc/systemd/system/vncserver@:1.service
vim /etc/systemd/system/vncserver@:1.service
找到这一行:
ExecStart=/usr/bin/vncserver %i
修改为(假设用户是 root,可换成普通用户):
ExecStart=/usr/bin/vncserver %i -geometry 1024x768 -depth 24
并确保:
User=root
systemctl daemon-reload
systemctl start vncserver@:1
systemctl enable vncserver@:1
systemctl status vncserver@:1
firewall-cmd --add-port=5901/tcp --permanent
firewall-cmd --reload
使用 VNC Viewer 连接:
服务器IP:1
或
服务器IP:5901
编辑 ~/.vnc/xstartup:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec gnome-session &
然后:
chmod +x ~/.vnc/xstartup
临时关闭测试:
setenforce 0
CentOS 8 默认可能使用 Wayland,VNC 不支持,建议:
vim /etc/gdm/custom.conf
取消注释:
WaylandEnable=false
如果你愿意,可以告诉我:
我可以给你一份完全可复制执行的配置方案。