【转自:http://book.51cto.com/art/200804/70724.htm】
VNC概述
VNC(virtual network computing),是一种由AT&T开发的远程控制的技术,可以运行于局域网和Internet,将远端的图形桌面,显示到本地终端。
VNC软件主要由两部分组成:一部分是客户端的应用程序(vnc viewer),另外一部分是服务器端的应用程序(vncserver)。VNC的基本运行原理和一些Windows下的远程控制软件很相像。VNC的服务器端应用程序在UNIX和Linux操作系统中适应性很强,图形用户界面十分友好。在任何安装了客户端应用程序(vncviewer)的Linux平台的计算机都能十分方便地和安装了服务器端应用程序(vncserver)的计算机相互连接。另外,服务器端(vncserver)还内建了Java Web接口,这样用户通过服务器端对其他计算机的操作就能通过Netscape显示出来了,这样的操作过程和显示方式比较直观方便。
2.3.2 VNC安装
1.VNC安装
默认Red Hat Enterprise Linux的安装程序会将VNC服务和客户程序安装在系统上,可以使用下面的命令检查系统是否已经安装了VNC服务:
[root@MyRedHat ~]#rpm -q vnc-server |
命令执行结果如图2.19所示,表示VNC服务已经安装。
![]() |
图2.19 检查系统是否已经安装了VNC服务 |
如果系统还没有安装VNC服务,可以把Red Hat Enterprise Linux的第二张安装光盘放入光驱进行加载,加载光驱后在光盘的RedHat/RPMS目录下找到VNC的安装包文件vnc-server-4.0-8.1.i386.rpm,可以使用下面的命令进行安装:
[root@MyRedHat ~]# cd /mnt/cdrom/RedHat/RPMS [root@MyRedHat ~]# rpm –ivh vnc-server-4.0-8.1.i386.rpm |
2.启动VNC
VNC服务可以由启动源程序(/etc/init.d/vncserver)自动启动。进行启动/停止VNC服务等操作时,可以通过这个源程序进行操作,也可以使用service命令。
主要选项如表2.6所示。
表2.6 VNC服务-/etc/init.d/vncserver
选 项 | 操 作 |
start | 启动 |
stop | 停止 |
restart | 重启 |
status | 查看状态 |
启动VNC服务命令如下:
[root@MyRedHat ~]# service vncserver start |
或
[root@MyRedHat ~]# /etc/init.d/ vncserver start |
重新启动VNC服务命令如下:
[root@MyRedHat ~]# service vncserver restart |
或
[root@MyRedHat ~]# /etc/init.d/ vncserver restart |
停止VNC服务命令如下:
[root@MyRedHat ~]# service vncserver stop |
或
[root@MyRedHat ~]# /etc/init.d/ vncserver stop |
3.设置自动运行VNC
让系统每次启动时自动运行VNC服务,可以执行“ntsysv”命令启动服务配置程序,在出现的对话框中找到“vncserver”服务,然后按“空格”键在其前面加上“*”星号,按“Tab”键选择“确定”按钮保存即可,如图2.20所示。
![]() |
图2.20 设置自动运行VNC服务 |
另外,要使启动系统时VNC服务不自动开始,可以执行如下命令:
[root@MyRedHat ~]# chkconfig vncserver off |
4.使用VNC
在服务器端可以用vncserver命令来启动VNC服务,命令格式为:vncserver :桌面号。例如:
[root@MyRedHat ~]# vncserver :1 |
命令运行结果如图2.21所示,命令中“vncserver”和“:1”之间需要使用空格符隔开,其中参数“:1”表示桌面号。如果是第一运行该命令,系统会提示用户输入访问密码并确认输入密码,密码将会被加密保存在用户主目录下.vnc目录中的passwd文件中,同时系统还会在用户主目录下的.vnc目录中为用户自动创建xstartup配置文件,以后每次启动VNC服务时,都将会读取该文件中的配置选项。如果需要多个用户同时连接到VNC服务,可以再执行vncserver命令,将其中参数“:1”改为“:2”或“:3”,依次类推,这时VNC服务会启动多个桌面,而且用户们能互不干扰地使用各自的桌面。
![]() |
图2.21 启动VNC服务 |
VNC服务使用的端口号与桌面号相关,VNC服务使用的端口从5900(我的是从6000开始)开始,例如桌面号是“:1”,则使用的端口是5901(我的6001);桌面号是“:2”,则使用的端口是5902,依次类推。基于Java的VNC客户程序Web服务端口从5800开始,它也与桌面号相关。如果Linux服务器开启了防火墙功能,需设置允许TCP协议相应的端口通过或关闭防火墙功能,如可以使用以下命令:
[root@MyRedHat ~]# /sbin/iptables-IINPUT-ptcp --dport5901-jACCEPT [root@MyRedHat ~]# /sbin/iptables-IINPUT-ptcp --dport5801-jACCEPT |
5.客户端访问VNC
打开浏览器访问https://Linux服务器的IP或域名:5801/会出现“VNCviewerforJava”界面。同时还会出现一个连接对话框,在对话框中输入Linux服务器的IP或域名和桌面号后,单击“OK”按钮连接,然后输入访问口令进行登录,连接成功后会出现X-Windows图形桌面环境。
2.3.3 VNC配置
在默认情况下,VNC服务采用的图形界面为twm。为了使用GNOME或KDE图形桌面环境,还要编辑文件用户主目录下.vnc子目录中的xstartup文件(如/root/.vnc/xstartup),将最后一行的“twm”改为“gnome-session”或“startkde”,如图2.22所示,当然前提是系统已经安装了GNOME或KDE图形桌面环境。
![]() |
图2.22 配置VNC图形界面 |
修改完xstartup文件,还要执行以下命令关闭并重新启动桌面号。命令执行结果如图2.23所示。
[root@MyRedHat ~]# vncserver -kill: 1 |
![]() |
图2.23 关闭并重新启动桌面号 |
重新连接VNC服务,就会出现KDE图形桌面环境,如图2.24所示。
![]() |
图2.24 KDE图形桌面环境 |
可以将用户和需使用的VNC桌面号添加到配置文件/etc/sysconfig/vncservers中,使服务器启动时自动创建管理这些桌面号,格式为:VNCSERVERS=“桌面号:使用的用户名”。如:
VNCSERVERS=“1:root” |
Vncservers文件内容如图2.25所示
![]() |
图2.25 编辑Vncservers文件 |