分类: LINUX
2008-05-05 16:43:18
VNC(Virtual Network Computing)–虚拟计算工具,源自AT&T Laboratories Cambridge的一个远程访问应用,是一个强大的远程桌面访问和操作工具。它的核心功能是使用户能够使用VNC客户端连接到运行VNC服务器的机器,并且远程使用服务器的桌面。键盘和鼠标动作被发送到服务器,服务器桌面的快照被压缩并且通过VNC协议发送到客户端。
VNC支持各种平台,详细信息请访问其网站:
1、安装相应的软件包
[root@test ~]# rpm -qa |grep vnc vnc-server-4.1.2-9 #VNC服务器包 vnc-4.1.2-9 #VNC客户端包
2、启动VNC-server
如果是第一次启动,还需要你设置一个访问口令。
[root@test ~]# vncserver You will require a password to access your desktops. Password: Verify: xauth: (stdin):1: bad display name "test:1" in "add" command New 'test:1 (root)' desktop is test:1 #客户端可以通过test:1或者ipaddress:1来访问 Creating default startup script /root/.vnc/xstartup Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/test:1.log
3、从客户端访问
如果是linux客户端,可以使用vncviewer来访问。注意,vncviewer需要在X环境下运行。如图1
[root@vncclient ~]#vncviewer test:1 (这里的test是VNC-server的主机名,也可以用IP地址代替)
图1
如果是Windows客户端,我们可以这样来访问,如图2、图3
图2
图3
我们也可以通过http协议来访问VNC服务器,访问方法:
(x为第x个桌面)
图4
图5
4、访问正常桌面
客户端访问到的默认桌面只有一个X,看到的是一个灰色的界面。如图6
图6
要看到正常的桌面,我们需要修改服务器上的/root/.vnc/xstartup文件
#!/bin/sh # Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER #将这两行的注释去掉即可 # exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & twm &
再次连接VNC服务器,就可以看到正常的桌面了。如图7
图7
我们在第一运行vncserver命令的时候会让我们输入访问口令,口令以加密的二进制形式保存在~/.vnc/passwd中。如果我们想更改密码以及密码文件存放的位置,可以用vncpasswd命令。
[root@vncserver ~]# vncpasswd --help usage: vncpasswd [file] #vncpasswd后面指定保存密码文件的位置,默认为~/.vnc/passwd [root@vncserver ~]# vncpasswd #更改密码 Password: Verify:
vncserver命令除了可以启动一不VNC服务器外,还有其他一些用法:
[root@vncserver ~]# vncserver --help usage: vncserver [:] [-nohttpd] [-name ] [-depth ] [-geometry x ] [-pixelformat rgbNNN|bgrNNN] ... vncserver -kill #断开某个桌面连接
一旦启动了VNC服务,就会产生一个~/.vnc/目录,其内容如下:
[root@vncserver .vnc]# pwd /root/.vnc [root@vncserver .vnc]# ls -l total 16 -rw------- 1 root root 8 Aug 30 21:55 passwd #vnc访问密码文件 -rw-r--r-- 1 root root 1385 Aug 30 22:09 vncserver:1.log #vnc访问日志 -rw-r--r-- 1 root root 5 Aug 30 22:09 vncserver:1.pid #第一个桌面的PID文件,里面只有一个进程号码 -rwxr-xr-x 1 root root 330 Aug 30 02:26 xstartup #X启动的控制文件
刚才提到passwd文件的内容是二进制的,我们这里就不去看其内容了。我们可以来看看vncserver:1.log和vncserver:1.pid这两个文件的内容:
[root@vncserver .vnc]# cat vncserver\:1.pid 2949 [root@vncserver .vnc]# ps -ef|grep vnc |grep -v grep root 2949 1 0 22:09 pts/1 00:00:00 Xvnc :1 -desktop vncserver:1 (root) -httpd /usr/share/vnc/classes -auth /root/.Xauthority -geometry 1024x768 -depth 16 -rfbwait 30000 -rfbauth /root/.vnc/passwd -rfbport 5901 -pn
我们通过下面两个命令来断开连接:
用vncserver命令: [root@vncserver ~]# vncserver -kill :1 Killing Xvnc process ID 2949 直接用kill命令: [root@vncserver ~]# kill -9 2949
Xvnc Free Edition 4.1.2 Copyright (C) 2002-2005 RealVNC Ltd. See for information on VNC. Underlying X server release 70101000, The X.Org Foundation Thu Aug 30 22:09:29 2007 vncext: VNC extension running! vncext: Listening for VNC connections on port 5901 #VNC客户端通过5901端口来访问第一个桌面,依次类推 vncext: Listening for HTTP connections on port 5801 #http客户端通过5801端口来访问第一个桌面,依次类推 vncext: created VNC server for screen 0 Could not init font path element /usr/share/X11/fonts/CID/, removing from list! localuser:root being added to access control list No profile for user 'root' found Launching a SCIM daemon with Socket FrontEnd... Loading simple Config module ... Creating backend ... SESSION_MANAGER=local/vncserver:/tmp/.ICE-unix/2951 Loading socket FrontEnd module ... Starting SCIM as daemon ... Launching a SCIM process with x11... Loading socket Config module ... Creating backend ... Loading x11 FrontEnd module ... GTK Panel of SCIM 1.4.4 ** (gnome-session:2951): WARNING **: Host name lookup failure on localhost. Window manager warning: Log level 32: could not find XKB extension. Starting SCIM as daemon ... SCIM has been successfully launched. Smart Common Input Method 1.4.4 ** (eggcups:3035): WARNING **: IPP request failed with status 1030 ** (eggcups:3035): WARNING **: IPP request failed with status 1030 Initializing nautilus-open-terminal extension Initializing gnome-mount extension Thu Aug 30 22:12:51 2007 Connections: accepted: 172.16.78.165::2667 SConnection: Client needs protocol version 3.8 SConnection: Client requests security type VncAuth(2) Thu Aug 30 22:12:53 2007 VNCSConnST: Server default pixel format depth 16 (16bpp) little-endian rgb565 VNCSConnST: Client pixel format depth 8 (8bpp) rgb max 3,3,3 shift 4,2,0 VNCSConnST: Client pixel format depth 16 (16bpp) little-endian rgb565