Chinaunix首页 | 论坛 | 博客
  • 博客访问: 620485
  • 博文数量: 263
  • 博客积分: 9025
  • 博客等级: 中将
  • 技术积分: 2557
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-01 17:42
文章分类

全部博文(263)

文章存档

2012年(4)

2011年(64)

2010年(47)

2009年(44)

2008年(99)

2007年(5)

我的朋友

分类:

2009-05-07 15:14:25

  VNC简介』

网络遥控技术是指由一部计算机(主控端)去控制另一部计算机(被控端),而且当主控端在控制端时,就如同用户亲自坐在被控端前操作一样,可以执行被控端的应用程序,及使用被控端的系统资源。

VNC(Virtual Network Computing)是一套由AT&T实验室所开发的可操控远程的计算机的软件,其采用了GPL授权条款,任何人都可免费取得该软件。VNC软件 主要由两个部分组成:VNC server及VNC viewer。用户需先将VNC server安装在被控端的计算机上后,才能在主控端执行VNC viewer控制被控端。

(在windows中也由一套著名的网络遥控软件――Symantec公司推出的pcAnywhere。

VNC server与VNC viewer支持多种操作系统,如Unix系列(Unix,Linux,Solaris等),windows及MacOS,因此可将VNC server及VNC viewer分别安装在不同的操作系统中进行控制。如果目前操作的主控端计算机没有安装VNC viewer,也可以通过一般的网页浏览器来控制被控端。

整个VNC运行的工作流程如下:

(1)VNC客户端通过浏览器或VNC Viewer连接至VNC Server。

(2)VNC Server传送一对话窗口至客户端,要求输入连接密码,以及存取的VNC Server显示装置。

(3)在客户端输入联机密码后,VNC Server验证客户端是否具有存取权限。

(4)若是客户端通过VNC Server的验证,客户端即要求VNC Server显示桌面环境。

(5)VNC Server通过X Protocol要求X Server将画面显示控制权交由VNC Server负责。

(6)VNC Server将来由X Server的桌面环境利用VNC通信协议送至客户端,并且允许客户端控制VNC Server的桌面环境及输入装置。

『VNC的安装与使用』

本人的操作环境:被控端Redhat9.0,主控端Windows XP。

1.载VNC Server

VNC Server下载地址:

2.安装。

vnc-3.3.7-x86_linux.tar.gz(如果是源代码请看包里的说明),当下载了VNC的Linux版本后,可以解压文件到一个文件夹 中,例如/home/vnc,然后复制文件vncserver、vncpasswd和Xvnc到/usr/bin目录中。假如想要能够通过VNC服务器的 整合Java界面远程控制Linux电脑,也得需去建立一个子目录/usr/local/vnc/classes。在建立此子目录之后,复制 VNCJava.class文件到此目录中。(一般redhat9.0自带以上文件,所以直接用终端执行就可以)。

3.在Linux上启动VNC Server

执行vncserver命令:

[root@linux root]# vncserver

You will require a password to access your desktops.

Password: ----为了不想任何人都可以任意遥控此计算机。因此当第

Verify:---1次启动VNC server时,会要求设置网络遥控的密码。

New ‘X’ desktop is linux:1 ----一定要记住这一行稍后会用到。

Creating default startup script /root/.vnc/xstartup

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/linux:1.log

(经上述步骤后,便已启动了VNC Server。如果你想要更改VNC Server的密码,只要执行vncpasswd命令即可。)

5.从浏览器远程遥控。

启动VNC Server后直接打开浏览器,在地址栏中输入被控端的网址或IP地址,并在网址后加上“:5800+显示编号”的端口号即可操控该计算机。

例如:(如果显示编号为1,一般第一次设置的显示编号都是1,就用5800+1=5801。)

如果看到窗口,就说明你成功,在密码框输入密码,就能远程控制了。

6.FAQ

A.如何以图形界面登录被控端?

编辑~/.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" &

gnome-session &

startkde &

twm &

gnome-session是启动Gnome图形界面;startkde是启动KDE图形界面;twm是启动文本界面。三者选其一。

A.如何开机时自动启动vnc服务

打开“系统设置”-->"服务器设置"-->"服务",勾选上vncserver,“保存”。

修改/etc/sysconfig/vncservers

VNCSERVERS="1:root 2:phred 3:sysadmin" 1代表“桌面1”,root代表用户名;可同时启动多个用户桌面

VNCSERVERARGS[1]="-geometry 800x600 -alwaysshared -depth 24"

-alwaysshared代表允许多用户同时登录
-depth代为色深,参数有8,16,24,32。

A.为什么连接后,不能显示桌面,而只有一个Terminal窗口?

试着修改/root/.vnc/xstartup,把最后一行twm&改成gnome-session& or kde&(据说KDE在目前的VNCViewer上的表现不太稳定)

B.为什么重新启动VNC Server后,连接不上了?

因为重新启动VNC Server时,系统会指定一个新的显示编号,需使用此新的编号,否则就无法连接

查看vnc已启用的桌面号及监听进程

[root@linux /]# netstat -tlnp |grep vnc

vncserver命令带有一些很有用的参数,用vncserver --help查看。

简单解释一下:

vncserver [:] [-name ] [-geometry x] [-depth ]

[-pixelformat format]

vncserver -kill :display

vnc服务的display号,可以自行指定,尽量不要使用系统默认的以保证安全,必须为非0的正整数

vncserver :99

使用时必须输入正确的display号才能连接;用浏览器要在端口号加上display号,默认端口5800,远程连接输入XXX.XXX.XXX.XXX:5899

-name 指定vncserver桌面名字

比如要让名字显示为“红帽”

vncserver -name 红帽

-geometry x指定显示桌面的分辨率,默认为1024x768

vncserver -geometry 800x600

这个命令实际中很有用,例如本地分辨率为1024x768如果不设定远程vnc服务分辨率就会造成桌面显示不全的问题。

-depth指定显示颜色,设定范围8~32

vncserver -depth 16

用16bits颜色显示

-pixelformat指定色素格式与-depth大致相同,只是表示方法不一样

vncserver -pixelformat RGB888

用24bits颜色显示

vncserver -kill :display

结束vnc服务及远程桌面

vncserver -kill :1

其它更详细的使用请用man查看。

vnc内定的窗口管理器是twm与大家使用的可能不同,通过修改vnc的配置文件可以更换为自己喜欢的,方法如下:

修改用户目录下的.vnc/xstartup文件

#!/bin/sh

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

xsetroot -solid grey

vncconfig -iconic &

xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &

twm &

将#!/bin/sh后面的内容全部注释掉,改成

~/.Xclients

保存文件

现在可以测试修改是否成功,先kill vncserver服务

vncserver -kill:



pa aux|grep Xvnc

kill PID

重新启动vncserver,用vncviewer连接远程桌面是不是已经变成自己喜欢的类型了。

在前面有vnc server设置的文章( highlight=yunqing)里,我们已经可以在一个linux的服务器上运行vncserver来进行远程访问了,但需要注意的是,如果直接使 用vncviewer来进行访问,有两点不利因素:

1.口令传输是明文,很容易被侦听到.

2.防火墙需要打开59xx端口,这在通常的单位里是不可能的.

幸运的是,我们有ssh这个强大的工具,象X11 Forwarding(另文论述),我们可以使用ssh隧道来保护通讯过程,下面就进行简单介绍.

假设vncserver运行在服务器myserver(ip地址为:192.168.x.x)的屏幕1,也就是侦听192.168.x.x:5901,用户名为foo

情形一:vnc客户端为linux

这种情形很简单,一般的linux发行版本里面都默认安装了ssh套件.

1.用ssh登录到服务器

ssh -L 5901:localhost:5901 -l foo myserver

或者直接用ip地址

ssh -L 5901:localhost:5901 -l foo 192.168.x.x

2.在本机的另外开的终端上,运行vncviewer(或其它的类似工具)

vncviewer localhost:1

情形二:vnc客户端为windows

1.下载一个ssh客户端,个人推荐putty,只有一个程序,不需要安装,简单而功能齐全.到这里下载~sgtatham/putty/download.html

下载putty.exe到桌面上直接运行即可。

2.运行putty,输入服务器的ip地址,输入一个名字,这里myserver作为session的名字,按save保存。

3.单击对话框左边的tunnels来选择相关设置,在source port里输入5901,在Destination里输入localhost:5901,按Add添加

4.单击左边session,回到session设置,按save重新保存。按open即可登录到服务器。

5.运行vnc-viewer(如果没有,到这里下载,只要一个exe的文件 就行),在Server里输入localhost:1,输入口令后一个linux的桌面就会出现在windows里,并且是非常安全的,Cool?
阅读(1777) | 评论(0) | 转发(0) |
0

上一篇:黄金分割率理论

下一篇:设置view的脚本

给主人留下些什么吧!~~