@TOC
一、VNC介绍
1.1 VNC简介
VNC (Virtual Network Console)是虚拟网络控制台的缩写。它 是一款优秀的远程控制工具软件,可以实现远程控制计算机的功能。
1.2 VNC组成
VNC基本上是由两部分组成,在任何安装了客户端的应用程序(vncviewer)的计算机都能十分方便地与安装了服务器端的应用程序(vncserver)的计算机相互连接。
- 客户端的应用程序vncviewer
- 服务器端的应用程序vncserver
1.3 常见的VNC工具
-
RealVNC:是一款功能强大的VNC工具,支持多种操作系统,包括Windows、Linux、Mac OS X等,具有高安全性和可靠性。
-
UltraVNC:是一款免费的VNC客户端和服务器软件,支持Windows操作系统,提供了远程桌面、文件传输、文本聊天等功能。
-
TightVNC:是一个小巧而强大的VNC工具,支持Windows、Linux以及Unix等多种操作系统,具有较高的安全性和性能。
-
TigerVNC:是一个开源的VNC工具,支持Windows、Linux以及Mac OS X等多种操作系统,具有稳定性和高性能。
-
TeamViewer:是一款针对远程支持、远程控制和在线协作的应用软件,可以实现桌面共享、远程协助、文件传输等功能。
二、本地环境介绍
2.1 本地环境规划
本次实践为个人测试环境,服务器操作系统版本为centos7.6。
| hostname | 本地IP地址 | 操作系统版本 | 内核版本 |
|---|---|---|---|
| jeven | 192.168.3.166 | centos 7.6 | 3.10.0-957.el7.x86_64 |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境; 2.在centos7.6环境下,使用VNC工具,本地远程连接Linux桌面环境。 3.将vncserver设置成service服务,保证开机自动启动。
三、安装vncserver
3.1 安装vncserver
直接使用yum安装vncserver
1yum -y install tigervnc-server
3.2 检查vncserver安装状态
检查vncserver安装状态
1[root@jeven ~]# rpm -qa |grep tigervnc-server 2tigervnc-server-minimal-1.8.0-13.el7.x86_64 3tigervnc-server-1.8.0-25.el7_9.x86_64
四、配置VNC密码
4.1 创建用户
- 创建admin用户
1useradd admin
- 设置admin密码
1 passwd admin

4.2 切换admin用户
切换admin用户
1[root@jeven ~]# su - admin 2[admin@jeven ~]$
4.3 设置VNC密码
使用 vncpasswd来设置VNC连接密码
1vncpasswd

五、配置vncserver服务
5.1 复制vncserver的服务配置文件
将/lib/systemd/system/vncserver@.service文件进行复制,文件名为vncserver@:1.service, VNC的连接端口号为5901,如果是vncserver@:2.service,那么对应启动的端口就是 5902。以此类推。
1cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
5.2 修改配置文件
修改vncserver@:1.service文件,只需要修改图中黄色框内的 用户名为刚才设置的用户即可。
1vim /etc/systemd/system/vncserver@:1.service

5.3 启动vncserver服务
- 启动ncserver服务
1 systemctl start vncserver@:1.service
- 查看vncserver服务状态
1[root@jeven ~]# systemctl status vncserver@:1.service 2● vncserver@:1.service - Remote desktop service (VNC) 3 Loaded: loaded (/etc/systemd/system/vncserver@:1.service; disabled; vendor preset: disabled) 4 Active: active (running) since Thu 2023-06-29 23:49:43 CST; 5s ago 5 Process: 22083 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) 6 Main PID: 22087 (vncserver_wrapp) 7 CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service 8 ├─22087 /bin/sh /usr/bin/vncserver_wrapper admin :1 9 └─22939 sleep 0.1 10 11Jun 29 23:49:43 jeven systemd[1]: Starting Remote desktop service (VNC)... 12Jun 29 23:49:43 jeven systemd[1]: Started Remote desktop service (VNC). 13Jun 29 23:49:43 jeven vncserver_wrapper[22087]: xauth: file /home/admin/.Xauthority does not exist 14Jun 29 23:49:46 jeven vncserver_wrapper[22087]: New 'jeven:1 (admin)' desktop is jeven:1 15Jun 29 23:49:46 jeven vncserver_wrapper[22087]: Creating default startup script /home/admin/.vnc/xstartup 16Jun 29 23:49:46 jeven vncserver_wrapper[22087]: Creating default config /home/admin/.vnc/config 17Jun 29 23:49:46 jeven vncserver_wrapper[22087]: Starting applications specified in /home/admin/.vnc/xstartup 18Jun 29 23:49:46 jeven vncserver_wrapper[22087]: Log file is /home/admin/.vnc/jeven:1.log 19[root@jeven ~]# 20
- 设置vncserver服务开机自启
1[root@jeven ~]# systemctl enable vncserver@:1.service 2Created symlink from /etc/systemd/system/multi-user.target.wants/vncserver@:1.service to /etc/systemd/system/vncserver@:1.service.
5.4 查看服务监听端口
查看vncserver监听端口
1[root@jeven ~]# ss -tunlp |grep vnc 2tcp LISTEN 0 5 *:5901 *:* users:(("Xvnc",pid=22117,fd=9)) 3tcp LISTEN 0 128 *:6001 *:* users:(("Xvnc",pid=22117,fd=6)) 4tcp LISTEN 0 5 :::5901 :::* users:(("Xvnc",pid=22117,fd=10)) 5tcp LISTEN 0 128 :::6001 :::* users:(("Xvnc",pid=22117,fd=5)) 6
5.5 防火墙设置
- 放行防火墙
1firewall-cmd --add-port=5901/tcp --permanent #放行5901端口 2firewall-cmd --reload #重新加载生效
- 如果在测试环境,可直接关闭防火墙
1systemctl stop firewalld && systemctl disable firewalld
- 关闭selinux
1sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 2setenforce 0
六、VNC客户端连接Linux
下载VNC客户端,填写VNC Server的地址:192.168.3.166:5901 输入设置的VNC密码,即可远程连接Linux桌面了。

