Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101947655
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: 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
阅读(698) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~