在CentOS系统中安装VNC(Virtual Network Computing)可以提供图形界面的远程访问能力,特别适合需要图形化操作的场景,以下是详细的安装步骤和配置方法,帮助您顺利完成VNC的部署。

系统更新与准备工作
在安装VNC之前,确保系统是最新的状态,打开终端,执行以下命令更新系统包:
sudo yum update -y
更新完成后,检查系统是否已安装桌面环境,如果尚未安装,可以选择安装GNOME或KDE等桌面环境,以GNOME为例,执行:
sudo yum groupinstall "GNOME Desktop" -y
安装完成后,设置系统默认启动目标为图形界面:
sudo systemctl set-default graphical.target
安装VNC服务器软件
CentOS系统中常用的VNC服务器软件是TigerVNC,使用yum命令进行安装:
sudo yum install tigervnc-server -y
安装完成后,需要复制并编辑VNC服务的配置文件,默认配置文件位于/lib/systemd/system/vncserver@.service,将其复制到/etc/systemd/system/目录下:
sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
编辑复制后的配置文件,指定VNC用户:
sudo vi /etc/systemd/system/vncserver@:1.service
在文件中找到<USER>部分,替换为实际的用户名,
ExecStart=/usr/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid
保存并退出编辑器。
设置VNC密码
切换到目标用户,执行以下命令设置VNC密码:

su - <USER> vncpasswd
根据提示输入密码并确认,密码设置完成后,会在用户目录下生成.vnc配置文件夹。
配置防火墙规则
为确保VNC服务能够被远程访问,需要开放相应的端口,默认VNC使用5901端口(对应:1显示),执行以下命令:
sudo firewall-cmd --permanent --add-port=5901/tcp sudo firewall-cmd --reload
如果需要通过Web浏览器访问VNC,还可以开放6901端口:
sudo firewall-cmd --permanent --add-port=6901/tcp sudo firewall-cmd --reload
启动并启用VNC服务
重新加载systemd配置文件后,启动VNC服务:
sudo systemctl daemon-reload sudo systemctl start vncserver@:1.service sudo systemctl enable vncserver@:1.service
检查服务状态:
sudo systemctl status vncserver@:1.service
如果显示active (running),则表示服务已成功启动。
连接VNC服务器
使用VNC客户端工具(如TigerVNC Viewer、RealVNC等)连接服务器,在客户端输入以下格式的地址:
<服务器IP地址>:5901
168.1.100:5901,连接后输入之前设置的VNC密码即可进入图形界面。
常见问题与优化
如果连接时出现黑屏或无响应,可能是桌面环境配置问题,可以通过以下步骤排查:

- 检查VNC配置文件中的
~/.vnc/xstartup,确保启动命令正确,默认GNOME环境可以使用:exec /usr/bin/gnome-session
- 重启VNC服务后再次尝试连接。
相关问答FAQs
Q1: VNC连接后出现黑屏,无法显示桌面界面,如何解决?
A1: 黑屏问题通常是由于~/.vnc/xstartup配置文件未正确设置桌面环境启动命令,编辑该文件,添加或修改为以下内容:
#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec /usr/bin/gnome-session
保存后赋予执行权限:
chmod +x ~/.vnc/xstartup
重启VNC服务即可解决问题。
Q2: 如何修改VNC的连接端口?
A2: VNC的默认端口由显示编号决定,例如1对应5901端口,2对应5902端口,若需修改端口,可以复制新的服务配置文件并调整编号,创建2端口:
sudo cp /etc/systemd/system/vncserver@:1.service /etc/systemd/system/vncserver@:2.service
编辑新文件中的端口相关配置,然后重新加载systemd并启动服务:
sudo systemctl daemon-reload sudo systemctl start vncserver@:2.service sudo systemctl enable vncserver@:2.service
此时连接地址应使用<IP>:5902。