CentOS 上配置 VNC Server 的详细指南
VNC(Virtual Network Computing)是一种基于 RFB 协议的远程桌面访问工具,它允许用户通过网络远程控制另一台计算机的图形界面,本文将详细介绍如何在 CentOS 系统上安装和配置 VNC Server,包括安装图形界面、配置 VNC Server、设置密码、防火墙配置以及如何连接 VNC Server。

一、安装图形界面
1. 安装 X Windows System 图形界面
X Window System 是底层图形子系统,适配大多数的 Linux 及 Unix 系统,兼容性更广,其主要是管理硬件设备与图形环境之间的交互。
- 更新系统软件包
- yum update y
- 安装 X Window System 图形界面
- yum groups install "X Window System"
- 安装完成后,修改默认启动方式为图形化界面
- systemctl setdefault graphical.target
2. 安装 GNOME 图形界面
GNOME 是一个功能完备的桌面环境,基于 X Window System 构建,包含窗口、图标、工具栏、文件管理器等完整的用户界面元素。
- 安装 GNOME 图形界面
- yum groupinstall y "GNOME Desktop"
- 修改默认启动方式为图形化界面
- systemctl setdefault graphical.target
安装完成后,执行reboot
重启设备以生效图形界面。
二、安装 VNC Server
1. 安装 TigerVNC Server

TigerVNC 是目前较流行的 VNC Server 实现,在 CentOS 上可以使用 yum 进行安装。
- 安装 TigerVNC Server
- yum install tigervncserver y
2. 配置 VNC Server
为了使用 systemd 管理 VNC Server 服务,需要创建相应的服务单元文件。
- 拷贝服务模板文件
- cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
编辑配置文件/etc/systemd/system/vncserver@:1.service
:
- [Unit]
- Description=Remote desktop service (VNC)
- After=syslog.target network.target
- [Service]
- Type=forking
- Clean any existing files in /tmp/.X11unix environment
- ExecStartPre=/bin/sh c '/usr/bin/vncserver kill %i > /dev/null 2>&1 || :'
- ExecStart=/usr/bin/vncserver %i
- ExecStop=/bin/sh c '/usr/bin/vncserver kill %i > /dev/null 2>&1 || :'
- [Install]
- WantedBy=multiuser.target
注意:上述配置文件中的%i
会被实例名替换,例如vncserver@:1.service
中的1
。
3. 设置 VNC 密码

为 VNC Server 设置密码,确保只有知道密码的用户才能连接。
- 设置 VNC 密码(适用于 root 用户)
- vncpasswd
按照提示输入并确认密码,如果需要为其他用户设置密码,可以切换到相应用户后执行vncpasswd
。
4. 配置防火墙
为了使 VNC Server 能够接受外部连接,需要配置防火墙。
- 停止并禁用 firewalld
- systemctl stop firewalld
- systemctl disable firewalld
- 或者开放 VNC 使用的端口(如 5901)
- firewallcmd permanent addport=5901/tcp
- firewallcmd reload
5. 启动并启用 VNC Server 服务
启动并设置 VNC Server 服务开机自启。
- 启动 VNC Server 服务
- systemctl start vncserver@:1.service
- 设置开机自启
- systemctl enable vncserver@:1.service
三、连接 VNC Server
1. 下载 VNC Viewer
前往 [RealVNC 官方网站](https://www.realvnc.com/en/connect/download/viewer/) 下载适用于你的操作系统的 VNC Viewer。
2. 连接到 VNC Server
打开 VNC Viewer,输入服务器的 IP 地址或主机名,然后输入之前设置的 VNC 密码即可连接,如果服务器的 IP 地址是192.168.1.100
,则 VNC Server URL 为192.168.1.100:5901
。
四、多用户配置
如果需要多个用户同时连接,可以为每个用户创建独立的服务文件,为第二个用户创建vncserver@:2.service
:
- 拷贝并编辑第二个用户的服务文件
- cp /etc/systemd/system/vncserver@:1.service /etc/systemd/system/vncserver@:2.service
- vim /etc/systemd/system/vncserver@:2.service
修改文件中的相关参数,特别是PIDFile
和ExecStart
中的用户信息,然后重新加载 systemd,并启动新的服务。
五、常见问题及解决
Q1: VNC Server 无法连接怎么办?
A1: 确保以下几点:
1、VNC Server 服务已启动并正在运行:systemctl status vncserver@:1.service
2、防火墙已开放相应端口:firewallcmd listall
3、VNC Server 配置文件中用户和权限设置正确。
4、客户端使用正确的服务器 IP 地址和端口号。
Q2: 如何更改 VNC Server 的显示分辨率?
A2: 编辑用户的~/.vnc/xstartup
文件,添加或修改以下行来设置分辨率:
- #!/bin/sh
- [ x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
- [ r $HOME/.Xresources ] && xrdb $HOME/.Xresources
- xrandr s <desired_resolution>
- startx &
将<desired_resolution>
替换为你所需的分辨率,例如1920x1080
。
通过以上步骤,你应该能够在 CentOS 上成功安装和配置 VNC Server,并通过 VNC Viewer 进行远程连接,如果在过程中遇到任何问题,建议检查每一步的执行情况,并参考相关日志和文档进行排查。