CentOS VNC Server安装配置详解
一、简介
VNC(Virtual Network Computing)是一种使用RFB协议的远程桌面虚拟化软件,它允许用户通过网络远程控制另一台计算机,本文将详细介绍如何在centos系统上安装和配置VNC Server,以便实现远程桌面连接。

二、安装图形界面
1. 安装X Windows System图形界面
- yum update y
- yum groupinstall "X Window System"
- yum groupinstall "MATE Desktop"
- systemctl setdefault graphical.target
- reboot
2. 安装GNOME图形界面
- yum update y
- yum groupinstall "GNOME Desktop"
- systemctl setdefault graphical.target
- reboot
三、安装VNC Server
确保系统是最新的:
- sudo yum update y
安装TigerVNC Server:
- sudo yum install tigervncserver y
四、配置VNC Server
1. 创建VNC配置文件
复制服务设置模板:

- sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
根据需要为每个用户创建配置文件,例如为三个用户创建配置文件:
- sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
- sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service
- sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:3.service
2. 修改配置文件内容
编辑vncserver@:1.service
文件:
- [Unit]
- Description=Remote desktop service (VNC)
- After=syslog.target network.target
- [Service]
- Type=forking
- User=root
- Clean any existing files in /tmp/.X11unix environment
- ExecStartPre=/bin/sh c '/usr/bin/vncserver kill %i > /dev/null 2>&1 || :'
- ExecStart=/sbin/runuser l root c "/usr/bin/vncserver %i"
- PIDFile=/root/.vnc/%H%i.pid
- ExecStop=/usr/bin/vncserver kill %i
- [Install]
- WantedBy=multiuser.target
对非root用户如testvnc
,编辑其对应的服务文件,例如vncserver@:2.service
:
- [Unit]
- Description=Remote desktop service (VNC)
- After=syslog.target network.target
- [Service]
- Type=forking
- User=testvnc
- Clean any existing files in /tmp/.X11unix environment
- ExecStartPre=/bin/sh c '/usr/bin/vncserver kill %i > /dev/null 2>&1 || :'
- ExecStart=/sbin/runuser l testvnc c "/usr/bin/vncserver %i"
- PIDFile=/home/testvnc/.vnc/%H%i.pid
- ExecStop=/usr/bin/vncserver kill %i
- [Install]
- WantedBy=multiuser.target
3. 完整配置文件参考
root用户的完整配置如下:

- [Unit]
- Description=Remote desktop service (VNC)
- After=syslog.target network.target
- [Service]
- Type=forking
- User=root
- Clean any existing files in /tmp/.X11unix environment
- ExecStartPre=/bin/sh c '/usr/bin/vncserver kill %i > /dev/null 2>&1 || :'
- ExecStart=/sbin/runuser l root c "/usr/bin/vncserver %i"
- PIDFile=/root/.vnc/%H%i.pid
- ExecStop=/usr/bin/vncserver kill %i
- [Install]
- WantedBy=multiuser.target
非root用户如testvnc
的完整配置如下:
- [Unit]
- Description=Remote desktop service (VNC)
- After=syslog.target network.target
- [Service]
- Type=forking
- User=testvnc
- Clean any existing files in /tmp/.X11unix environment
- ExecStartPre=/bin/sh c '/usr/bin/vncserver kill %i > /dev/null 2>&1 || :'
- ExecStart=/sbin/runuser l testvnc c "/usr/bin/vncserver %i"
- PIDFile=/home/testvnc/.vnc/%H%i.pid
- ExecStop=/usr/bin/vncserver kill %i
- [Install]
- WantedBy=multiuser.target
五、设置VNC密码
为当前用户设置VNC密码:
- vncpasswd
根据提示输入并确认密码。
六、配置防火墙
开放VNC端口(例如5901):
- sudo firewallcmd permanent addport=5901/tcp
- sudo firewallcmd reload
如果配置多用户,开放多个端口:
- sudo firewallcmd permanent addport=59015903/tcp
- sudo firewallcmd reload
七、启动VNC服务
启动VNC服务并设置为开机自启:
- sudo systemctl start vncserver@:1.service
- sudo systemctl enable vncserver@:1.service
对于其他用户,执行类似操作:
- sudo systemctl start vncserver@:2.service
- sudo systemctl enable vncserver@:2.service
八、VNC Viewer连接
1. VNC Viewer下载
可以从官方网站下载适用于不同操作系统的VNC Viewer。
2. 连接VNC Server
打开VNC Viewer,输入服务器IP地址和端口号(例如YOUR_SERVER_IP:1
),然后根据提示输入之前设置的VNC密码即可连接到远程桌面。
九、FAQs
1. 如何更改VNC Server的分辨率?
在~/.vnc/xstartup
文件中添加以下行:
- "Geometry" = "1280x1024"
2. 如何允许多个用户同时连接?
为每个用户创建独立的VNC服务单元文件,并配置各自的端口和用户信息,然后依次启动这些服务。