VNC,全称为VirtualNetworkComputing,它是一个桌面共享系统。它的功能,类似于windows中的远程桌面功能。VNC使用了RFB(RemoteFrameBuffer,远程帧缓冲)协议来实现远程控制另外一台计算机。它把键盘、鼠标动作发送到远程计算机,并把远程计算机的屏幕发回到本地。
VNC技术与平台无关,VNCViewer可以和VNCServer在不同的操作系统上。VNC几乎支持所有的操作系统,也支持Java,甚至可以通过支持Java的浏览器来访问VNCServer。多个VNC客户端可以同时连接到一个VNCServer上。
VNC最初由AT&T开发的,它的源代码是开源的。
在CentOs4.3上配置VNC服务很简单(这里假定你的计算机上已经安装了VNC软件)
首先需要配置VNC密码,密码在使用客户端连接服务器时使用。
注意:VNC密码保存在用户的主目录中,每个用户都可以设置自己的密码。因此,请使用你的用户名(尽量不要使用root)运行下列命令:
vncpasswd
然后输入密码。
接下来就可以启动VNCserver了。在启动VNCserver时,需要为你的server指定一个display参数。你可以把display理解为一个桌面,每个用户都可以有自己的桌面。VNC客户端在连接时,可以指定连接到哪个桌面上。在系统中,display号不能重复,也就是说,如果有用户已经建立了名为“:1”的display,另外一个用户就不能再使用“:1”了,他可以使用“:2”。
启动VNCserver的命令是:
vncserver<display>
例如,
vncserver:1
最后,需要配置一下防火墙,允许VNC客户端连接VNCserver。VNCserver监听的端口从5900开始,display:1的监听5901,display:2监听5902,以此类推。CentOs的防火墙缺省是不允许连接这些端口的,所以需要使用下面的步骤打开防火墙(需要root权限):
vi/etc/sysconfig/iptables
找到下面的语句:
-ARH-Firewall-1-INPUT-jREJECT--reject-withicmp-host-prohibited
在此行之前,加上下面的内容:
-ARH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport5900:5903-jACCEPT
这句话的含义是,允许其它机器访问本机的5900到5903端口,这样,display:1,display:2,display:3的用户就可以连接到本机。
然后使用root身份重新启动防火墙:
/sbin/serviceiptablesrestart
好了,现在就可以运行客户端软件,连接到VNCserver上了。
VNC客户端软件很多,在linux下有vncviewer,KDE还提供了一个krdc(它的菜单项就是”RemoteDesktopConnection",远程桌面连接)。
在window也有不少vnc客户端,你可以到去下载一个,安装就可以用了。
假设VNCserver的IP地址是192.168.1.1,display是:1。在VNCviewer的server栏中输入:“192.168.1.1:1”,然后连接。OK,你可以看到自己的桌面了。以后不管你什么时候关闭自己的本地PC机都不怕了,只要server不关机,你只要连接到VNCserver,你就可以看到你前一天关闭本地PC机时的桌面还保持着原样。
不过...这个桌面怎么这么丑?!
原来vncserver默认使用的窗口管理器是twm,这是一个很简陋的窗口管理器,你可以把你的桌面改成GNOME或KDE。
方法是,进入你自己的home目录,然后编辑这个文件:.vnc/xstartup,下面是这个文件的内容:
#!/bin/sh
#Uncommentthefollowingtwolinesfornormaldesktop:
#unsetSESSION_MANAGER
#exec/etc/X11/xinit/xinitrc
[-x/etc/vnc/xstartup]&&exec/etc/vnc/xstartup
[-r$HOME/.Xresources]&&xrdb$HOME/.Xresources
xsetroot-solidgrey
vncconfig-iconic&
xterm-geometry80x24 10 10-ls-title"$VNCDESKTOPDesktop"&
#twm&
gnome-session&
你可以把像上面这样把"twm&"这一行注释掉,然后在下面加入一行"gnome-session&",或者是"startkde&",分别启动GNOME桌面和KDE桌面。
如果server重启了,那你就需要重新运行一次vncserver命令来启动VNCserver,这很麻烦。有没有更好的方法呢?
有!我们可以把VNCserver启动成后台服务。执行如下步骤:
首先要允许VNCserver在系统启动过程中被启动。这可以通过“系统设置服务器设置服务”菜单来配置,把vncserver一项选上就可以了。
如果使用命令行的话,以root身份运行以下两条命令:
cd/etc/rc5.d
mvK35vncserverS35vncserver
然后编辑/etc/sysconfig/vncservers,以下是文件内容:
#TheVNCSERVERSvariableisalistofdisplay:userpairs.
#
#UncommentthelinebelowtostartaVNCserverondisplay:1
#asmy''myusername''(adjustthistoyourown).Youwillalso
#needtosetaVNCpassword;run''manvncpasswd''toseehow
#todothat.
#
#DONOTRUNTHISSERVICEifyourlocalareanetworkis
#untrusted!ForasecurewayofusingVNC,see
#
解释一下这个文件:
VNCSERVERS这一行是配置在系统启动时启动几个VNCserver,上面的例子里运行了三个VNCserver,其中user1在display:1,user2在display:2,user3在display:3。
VNCSERVERARGS这三行,分别为VNCserver1,2,3配置启动参数,上面的例子里对user1和user2使用屏幕分辨率1024x768,对user3使用800x600。
其它支持的参数请使用“manvncserver”命令查询。
编辑好这个文件后,保存,然后以root身份运行:
/sbin/servicevncserverstart
这样user1,user2,user3的vncserver就启动了。
以后每次系统重启时,都会自动启动这三个用户的vncserver。
注意:上面三个用户必须已经使用vncpasswd命令设置过vnc密码,不然他的vncserver启动会失败!
(责任编辑:云子)
下载本文示例代码
阅读(331) | 评论(0) | 转发(0) |