环境: Centos7
windows连接:下载VNC Viewer
目录
VNC概述
VNC原理
一、检查是否安装过VNC
二、安装图形化界面
三、安装和配置VNC服务
四: 启动VNC及常用命令
五: VNC windos连接工具连接
VNC概述
VNC (Virtual Network Computing)是虚拟网络计算机的缩写。VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 或 MAC 中的任何远程控制软件媲美。在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多数情况下只需要其中的两个命令:vncserver 和 vncviewer。目前,原来的AT&T版本已经不再使用,因为更多有重大改善的分支版本已经出现, 像是RealVNC, VNC tight 和UltraVNC。 Real VNC 是当前最活跃和强大的主流应用。
VNC一共有三个版本,TightVNC、RealVNC、UltraVNC,RealVNC旨在推进商业化,因此需要License;TightVNC旨在改善服务器和查看器之间的VNC压缩,但是该版本最大的缺点是不能远程复制粘贴,而RealVNC则可以(这里的复制粘贴指的是文本的复制粘贴,文件的复制粘贴各版本都不支持);最后是UltraVNC,它则结合了其他两个版本的优势。
VNC原理
VNC系统由客户端,服务端和一个协议组成。VNC的服务端目的是分享其所运行机器的屏幕, 服务端被动的允许客户端控制它。 VNC客户端(或Viewer) 观察控制服务端,与服务端交互。 VNC 协议 Protocol (RFB)是一个简单的协议,传送服务端的原始图像到客户端(一个X,Y 位置上的正方形的点阵数据), 客户端传送事件消息到服务端。
服务器发送小方块的帧缓存给客户端,在最简单的情况,VNC协议使用大量的带宽,因此各种各样的方法被发明出来减少通讯的开支,举例来说,有各种各样的编码方法来决定最有效率的方法来传送这些点阵方块)
协议允许客户端和服务端去协议哪种编码会被使用,最简单的编码,被大多数客户端和服务端所支持的是, 从左到右的像素扫描数据的原始编码, 当原始的满屏被发送后,只发送变化的方块区域。这种编码在幁间只有小部分屏幕变化的情况下工作的非常好(像是鼠标键在桌面移动的情况,或在光标处敲击文字),不过如果大量的像素同时变化带宽将会增加的非常高,像是拖动一个窗口或观看全屏录像。
VNC默认使用TCP端口5900至5906,而JAVA的VNC客户端使用5800至5806。一个服务端可以在5500口用“监听模式”连接一个客户端,使用监听模式的一个好处是服务端不需要设置防火墙。
UNIX上的VNC称为xvnc,同时扮演两种角色,对X窗口系统的应用程序来说它是X server,对于VNC客户端来说它是VNC服务器程序。
一、检查是否安装过VNC
[root@testzt ~]# rpm -q tigervnc tigervnc-server
[root@testzt ~]# rpm -q tigervnc tigervnc-server
未安装软件包 tigervnc
未安装软件包 tigervnc-server
[root@testzt ~]#
二、安装图形化界面
首先查看可用的软件组
[root@testzt ~]# rpm -q tigervnc tigervnc-server
输入以下代码安装,安装时间可能比较久
[root@testzt ~]# yum groupinstall -y "Server with GUI"
这样就是安装完毕。
三、安装和配置VNC服务
1:用root用户安装VNC服务。
[root@testzt ~]# yum install tigervnc-server
2: 关闭防火墙
[root@testzt ~]# systemctl stop firewalld.service
3: 从VNC备份库中复制service文件到系统service服务管理目录下
[root@testzt ~]# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
4: 修改配置文件
[root@testzt ~]# vim /etc/systemd/system/vncserver@:1.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target[Service]
Type=forking
User=root
ExecStart=/usr/bin/vncserver :1 -geometry 1280x1024 -depth 16 -securitytypes=none -fp /usr/share/X11/fonts/misc
ExecStop=/usr/bin/vncserver -kill :1[Install]
WantedBy=multi-user.target
5:使配置文件生效
[root@testzt ~]# systemctl enable vncserver@:1.service
6:启用配置文件
[root@testzt ~]# systemctl enable vncserver@:1.service
7: 设置登陆密码, Would you like to enter a view-only password (y/n)? 选项可以选N
[root@testzt ~]# vncpasswd
四: 启动VNC及常用命令
//启动VNC
[root@testzt ~]# systemctl start vncserver@:1.service
//重启VNC
[root@testzt ~]# systemctl restart vncserver@:1.service
//查看VNC状态
[root@testzt ~]# systemctl status vncserver@:1.service
//查看端口是否被监听
[root@testzt ~]# netstat -lnt | grep 590*
//查看报错日志
[root@testzt ~]# grep vnc /var/log/messages
五: VNC windos连接工具连接
VNC Server: IP:5901
5901是默认端口