VNC简介:
VNC由Olivetti & Oracle研究室所开发,此研究室在1999年并入美国电话电报公司(AT&T)。AT&T于2002年中止了此研究室的运作,并把VNC以GPL发布。
因为它是免费的, 以及可用于数量庞大的不同操作系统, 它的简单,可靠,和向后兼容性, 使之进化成为最为广泛使用的远程控制软件,多平台的支持对网络管理员是十分重要的,他使网络管理员可以使用一种工具管理几乎所有系统。
原来的AT&T版本已经不再使用,因为更多有重大改善的分支版本已经出现, 像是RealVNC, VNC tight 和UltraVNC, 他们具有全面的向后兼容。至少对于基本的远程控制功能而言。 Real VNC 是当前最活跃和强大的主流应用。
VNC原理:
VNC系统由客户端,服务端和一个协议组成;VNC的服务端目的是分享其所运行机器的屏幕, 服务端被动的允许客户端控制它。 VNC客户端(或Viewer) 观察控***务端,与服务端交互。 VNC 协议 RFB(Remote Frame Buffer 远程帧缓冲)是一个简单的协议,传送服务端的原始图像到客户端(一个X,Y 位置上的正方形的点阵数据), 客户端传送事件消息到服务端。
服务器发送小方块的帧缓存给客户端,在最简单的情况,VNC协议使用大量的带宽, 因此各种各样的方法被发明出来减少通讯的开支,举例来说,有各种各样的编码方法来决定最有效率的方法来传送这些点阵方块;协议允许客户端和服务端去协议哪种编码会被使用, 最简单的编码,被大多数客户端和服务端所支持的是, 从左到右的像素扫描数据的原始编码, 当原始的满屏被发送后,只发送变化的方块区域。这种编码在幁间只有小部分屏幕变化的情况下工作的非常好(像是鼠标键在桌面移动的情况,或在光标处敲击文字), 不过如果大量的像素同时变化带宽将会增加的非常高,像是拖动一个窗口或观看全屏录像。
Linux下两种桌面环境的简单介绍:
KDE
KDE(Kool Desktop Environment)项目始建于1996年10月,相对于GNOME还要早一些。KDE项目是由图形排版工具Lyx的开发者、一位名为Matthias Ettrich的德国人发起的,目的是为满足普通用户也能够通过简单易用的桌面来管理Unix工作站上的各种应用软件以及完成各种任务。
GNOME
GNOME(GNU Network Object Model Environment)计划发起于1997年8月,所以,你可以在GNOME的LOGO上见到1997的字样。发起人是Miguel de Icaza和Federico Mena,GNOME计划当初的目标就是完全基于自由软件,构造那种功能完善、操作简单以及界面友好的桌面环境,希望走国际化道路,尽可能多地为各种国家的人所使用。目前,GNOME已经基本上可以成为KDE的替代品。
在CentOS 5与CentOS 6上与桌面环境相关的套件组名不太一样:
CentOS 5.x:
GNOME: GNOME Desktop Environment
KDE: KDE (K Desktop Environment)
CentOS 6.x:
GNOME: Desktop
KDE: KDE Desktop
实战操作
实验环境:在虚拟机中安装Centos 6.4_x64操作系统,以最小化方式安装,并自定义安装软件选择了“Development tools”和“Server Platform Development”两个开发包组。
(GNOME)桌面环境安装:
[root@bogon ~]# yum -y groupinstall “X Window System” #这是窗口管理程序,目前系统中已安装了xorg,所以可以不用安装
[root@bogon ~]# yum -y groupinstall Desktop #这个套件包组有许多包,耐心进行安装;要安装KDE环境时把这里换成相应的套件组名
[root@bogon ~]# startx #用此命令可以进入GNOME桌面环境
vnc的安装配置:
查找vnc相应的安装包:
[root@bogon ~]# yum list | grep vnc
gtk-vnc.i686 0.3.10-3.el6 base
gtk-vnc.x86_64 0.3.10-3.el6 base
gtk-vnc-devel.i686 0.3.10-3.el6 base
gtk-vnc-devel.x86_64 0.3.10-3.el6 base
gtk-vnc-Python.x86_64 0.3.10-3.el6 base
libvncserver.i686 0.9.7-4.el6 base
libvncserver.x86_64 0.9.7-4.el6 base
libvncserver-devel.i686 0.9.7-4.el6 base
libvncserver-devel.x86_64 0.9.7-4.el6 base
tigervnc.x86_64 1.1.0-8.el6_5 updates
tigervnc-server.x86_64 1.1.0-8.el6_5 updates
tigervnc-server-applet.noarch 1.1.0-8.el6_5 updates
tigervnc-server-module.x86_64 1.1.0-8.el6_5 updates
在Centos6中名称已改成tigervnc了,真的很奇怪。
安装tigervnc:
[root@bogon ~]# yum -y install tigervnc.x86_64 tigervnc-server.x86_64
设置vncserver自动启动:
[root@bogon ~]# chkconfig --list | grep vnc
vncserver 0:off1:off2:off3:off4:off5:off6:off
[root@bogon ~]# chkconfig vncserver on
[root@bogon ~]# chkconfig --list | grep vnc
vncserver 0:off1:off2:on3:on4:on5:on6:off
增加vnc的测试用户且配置vnc接入密码:
[root@bogon ~]# useradd vnc1
[root@bogon ~]# passwd vnc1
[root@bogon ~]# su vnc1
[vnc1@bogon root]$ vncpasswd
Password:
Verify:
要想root用户也能通过vnc的方式接入服务器,也要为root用户设置vnc密码。
配置vncservers配置文件:
[root@bogon ~]# vim /etc/sysconfig/vncservers #在最后增加下行
VNCSERVERS="1:root 2:vnc1"
启动vncserver服务:
[root@bogon ~]# service vncserver start
PS:
一些资料上说建议修改用户家目录下的“~/.vnc/xstartup”文件的最后的“twm &”,把这行替换成“gnome-seesion &”,如果是KDE桌面那就修改成“startKDE &”,保存后重新启动vncserver服务。
twm 启动twm窗口管理器
gnome-seesion 启动gnome的窗口管理器
startKDE 启动KDE的窗口管理器
但我没有发现有什么区别。
最后下载realvnc来进行测试: