linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > article > Linux入门与提高 > 上网与多媒体 >
栏目导栏
资料搜索
热门文章
·Linux下安装QQ最简单的方法
·Linux下用QQ的两个方法
·Linux下玩QQ
·沸点电视监视播放器feidian-mo
·Realplay 10.0 的安装和使用
·Xmms---Linux下优秀的MP3播放器
·Linux操作系统Gaim玩转QQ MSN
·Linux桌面环境玩转BT
·Linux下玩游戏全攻略!满足你的
·FC5下安装配置XMMS mp3 Player
·Linux操作系统上LumaQQ 2006安
·Linux操作系统下媒体播放器的初
·linux多媒体
·让MPlayer成为Linux下的万能播
·Linux上的DVD播放器
最新文章
·Linux系统下Wine成功运行Bitco
·在Linux系统下使用wine运行迅雷
·在Linux操作系统下进行网通拨号
·Linux下OpenOffice.org安装3D效
·Fedora8系统Gnome桌面环境下安
·Ubuntu Linux 8.04蓝牙设备连接
·RHEL5系统服务器下GRE隧道的开
·教你如何在Linux操作系统下观看
·在SUSE Linux系统下安装ADSL上
·在Linux Debian操作系统下成功
·Linux操作系统下图形界面模式更
·Linux系统下建立GPRS无线Modem
·如何在RedHat Linux系统下安装
·在Linux终端中“\”和“--”所
·Linux操作系统下轻松刻录CD-RO
Google
 
Linux系统下搭建VNC远程控制软件
[ 作者:  加入时间:2008-02-18 09:35:08  来自:Linux联盟收集整理 ]
VNC简介:t3nLinux联盟
 t3nLinux联盟
  虽然VNC 还有着在Linux下无法按热键呼出中文输入等等小小不足,但仍然无法阻止其在Linux系统中的地位。让我们看下它的魅力吧,首先,复制粘贴做的很随意。本机复制了,直接在远程机器里按粘贴即可。很方便的。t3nLinux联盟
 t3nLinux联盟
  网络遥控技术是指由一部计算机(主控端)去控制另一部计算机(被控端),而且当主控端在控制端时,就如同用户亲自坐在被控端前操作一样,可以执行被控端的应用程序,及使用被控端的系统资源。t3nLinux联盟
 t3nLinux联盟
  VNC(Virtual Network Computing)是一套由AT&T实验室所开发的可操控远程的计算机的软件,其采用了GPL授权条款,任何人都可免费取得该软件。VNC软件主要由两个部分组成:VNC server及VNC viewer.用户需先将VNC server安装在被控端的计算机上后,才能在主控端执行VNC viewer控制被控端。t3nLinux联盟
 t3nLinux联盟
  (在windows中也由一套著名的网络遥控软件――Symantec公司推出的pcAnywhere.t3nLinux联盟
 t3nLinux联盟
  VNC server与VNC viewer支持多种操作系统,如Unix系列(Unix,Linux,Solaris等),windows及MacOS,因此可将VNC server 及VNC viewer分别安装在不同的操作系统中进行控制。如果目前操作的主控端计算机没有安装VNC viewer,也可以通过一般的网页浏览器来控制被控端。t3nLinux联盟
 t3nLinux联盟
  整个VNC运行的工作流程如下:t3nLinux联盟
 t3nLinux联盟
  (1) VNC客户端通过浏览器或VNC Viewer连接至VNC Server.t3nLinux联盟
 t3nLinux联盟
  (2) VNC Server传送一对话窗口至客户端,要求输入连接密码,以及存取的VNC Server显示装置。t3nLinux联盟
 t3nLinux联盟
  (3) 在客户端输入联机密码后,VNC Server验证客户端是否具有存取权限。t3nLinux联盟
 t3nLinux联盟
  (4) 若是客户端通过VNC Server的验证,客户端即要求VNC Server显示桌面环境。t3nLinux联盟
 t3nLinux联盟
  (5) VNC Server通过X Protocol 要求X Server将画面显示控制权交由VNC Server负责。t3nLinux联盟
 t3nLinux联盟
  (6) VNC Server将来由 X Server的桌面环境利用VNC通信协议送至客户端,并且允许客户端控制VNC Server的桌面环境及输入装置。t3nLinux联盟
 t3nLinux联盟
  VNC的安装与使用t3nLinux联盟
 t3nLinux联盟
  本人的操作环境:被控端 Redhat9.0,主控端Windows XP.t3nLinux联盟
 t3nLinux联盟
  1.下载VNC Server与VNC viewer.t3nLinux联盟
 t3nLinux联盟
  VNC Server下载地址:http://www.Linuxeden.com/download/softdetail.php?softid=744t3nLinux联盟
 t3nLinux联盟
  VNC viewer下载地址:http://download.pchome.net/php/dl.php?sid=2603t3nLinux联盟
 t3nLinux联盟
  2.安装。t3nLinux联盟
 t3nLinux联盟
  rpm –Uvh VNC-3.3.6-2.i386.rpm (如果是源代码请看包里的说明)t3nLinux联盟
 t3nLinux联盟
  当下载了VNC的Linux版本后,可以解压文件到一个文件夹中,例如/home/VNC,然后复制文件VNCserver、VNCpasswd和XVNC到/usr/bin目录中。假如想要能够通过VNC服务器的整合Java界面远程控制Linux电脑,也得需去建立一个子目录/usr/local/VNC/classes.在建立此子目录之后,复制VNCJava.class文件到此目录中。(一般redhat 9.0自带以上文件,所以直接用终端执行就可以)。t3nLinux联盟
 t3nLinux联盟
  在Fedora 8上直接YUM下,巨方便。我从来不看怎么安装,这步骤的。t3nLinux联盟
 t3nLinux联盟
  3.在Linux上启动VNC Servert3nLinux联盟
 t3nLinux联盟
  执行VNCserver命令:t3nLinux联盟
 t3nLinux联盟
  [root@Linux root]# VNCservert3nLinux联盟
 t3nLinux联盟
  You will require a password to access your desktops.t3nLinux联盟
 t3nLinux联盟
  Password: ——为了不想任何人都可以任意遥控此计算机。因此当第1次启动VNC server时,会要求设置网络遥控的密码。这个就是你的登陆VNC的密码一定要够安全。好像哪里的文章上讲可以配置用户的。不过80%的人群不会习惯区分用户的。因为VNC可以虚拟N个桌面的。霍霍,配合Linux的用户很好很强大。t3nLinux联盟
 t3nLinux联盟
  Creating default startup script /root/.VNC/xstartupt3nLinux联盟
 t3nLinux联盟
  Starting applications specified in /root/.VNC/xstartupt3nLinux联盟
 t3nLinux联盟
  Log file is /root/.VNC/Linux:1.logt3nLinux联盟
 t3nLinux联盟
  (经上述步骤后,便已启动了VNC Server.如果你想要更改VNC Server的密码,只要执行VNCpasswd命令即可。)t3nLinux联盟
 4.在Microsoft Windows上运行VNC Viewert3nLinux联盟
 t3nLinux联盟
  直接运行“VNCviewer.exe”,系统会出现“Connection details”对话框。t3nLinux联盟
 t3nLinux联盟
  在“Connection details”对话框中的“VNC server”文本框中输入VNC Server的IP地址(或主机名及显示装置编号,(请看3.在Linux上启动VNC server的这一行,New ‘X’ desktop is Linux:1 得到此信息),例如:192.168.0.1:1(冒号后面的1是执行VNC Server生成的显示装置编号),单击“OK”按钮后,VNC Server即会开始检查所输入的信息,若是信息错误,系统会出现“Failed to connect to server”的错误信息:若是信息正确,则会接着出现“VNC Authentication”对话框。t3nLinux联盟
 t3nLinux联盟
  若是在“VNC Authentication”对话框中输入的密码正确,就可以成功地打开Linux的桌面窗口。t3nLinux联盟
 t3nLinux联盟
  5. 从浏览器远程遥控。t3nLinux联盟
 t3nLinux联盟
  启动VNC Server 后直接打开浏览器,在地址栏中输入被控端的网址或IP地址,并在网址后加上“:5800+显示编号”的端口号即可操控该计算机。t3nLinux联盟
 t3nLinux联盟
  例如:http://192.168.0.1:5801 (如果显示编号为1,一般第一次设置的显示编号都是1,就用5800+1=5801.)t3nLinux联盟
 t3nLinux联盟
  如果看到窗口,就说明你成功,在密码框输入密码,就能远程控制了。t3nLinux联盟
 t3nLinux联盟
  没事谁用浏览器啊……无聊的一步t3nLinux联盟
 t3nLinux联盟
  6.设置VNCserver启动变量:t3nLinux联盟
 t3nLinux联盟
  为了使VNCserver在每次启动时保持不变的端口号(5901)t3nLinux联盟
 t3nLinux联盟
  在/etc/rc.d/rc.local文件中添加命令:t3nLinux联盟
 t3nLinux联盟
  rm -f /tmp/.X11-unix/X*t3nLinux联盟
 t3nLinux联盟
  rm -f /.VNC/*.pidt3nLinux联盟
 t3nLinux联盟
  rm -f /.VNC/*.logt3nLinux联盟
 t3nLinux联盟
  这样,每次启机,系统会先把上次非正常关机时留下的临时文件删除。t3nLinux联盟
 t3nLinux联盟
  8、结束VNC服务及远程桌面t3nLinux联盟
 t3nLinux联盟
  VNCserver -kill :1t3nLinux联盟
 t3nLinux联盟
  其它更详细的使用请用man查看。t3nLinux联盟
 t3nLinux联盟
  VNC内定的窗口管理器是twm与大家使用的可能不同,通过修改VNC的配置文件可以更换为自己喜欢的,方法如下:t3nLinux联盟
 t3nLinux联盟
  修改用户目录下的 .VNC/xstartup 文件t3nLinux联盟
 t3nLinux联盟
  #!/bin/sht3nLinux联盟
 t3nLinux联盟
  [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresourcest3nLinux联盟
 t3nLinux联盟
  xsetroot -solid greyt3nLinux联盟
 t3nLinux联盟
  VNCconfig -iconic &t3nLinux联盟
 t3nLinux联盟
  xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &t3nLinux联盟
 t3nLinux联盟
  twm &t3nLinux联盟
 t3nLinux联盟
  将#!/bin/sh后面的内容全部注释掉,改成t3nLinux联盟
 t3nLinux联盟
  ~/.Xclientst3nLinux联盟
 t3nLinux联盟
  保存文件t3nLinux联盟
 t3nLinux联盟
  现在可以测试修改是否成功,先kill VNCserver服务t3nLinux联盟
 t3nLinux联盟
  VNCserver -kill :t3nLinux联盟
 t3nLinux联盟
  或t3nLinux联盟
 t3nLinux联盟
  pa aux|grep XVNCt3nLinux联盟
 t3nLinux联盟
  kill PIDt3nLinux联盟
 t3nLinux联盟
  重新启动VNCserver ,用VNCviewer连接远程桌面是不是已经变成自己喜欢的类型了。t3nLinux联盟
 t3nLinux联盟
  在前面有VNC server 设置的文章里, 我们已经可以在一个Linux的服务器上运行VNCserver来进行远程访问了,但需要注意的是:t3nLinux联盟
 t3nLinux联盟
  如果直接使用VNCviewer来进行访问,有两点不利因素:t3nLinux联盟
 t3nLinux联盟
  1. 口令传输是明文,很容易被侦听到。t3nLinux联盟
 t3nLinux联盟
  2. 防火墙需要打开59xx端口,这在通常的单位里是不可能的。t3nLinux联盟
 t3nLinux联盟
  幸运的是,我们有ssh这个强大的工具,象X11 Forwarding(另文论述),我们可以使用ssh隧道来保护通讯过程,下面就进行简单介绍。t3nLinux联盟
 t3nLinux联盟
  假设VNCserver运行在服务器 myserver (ip地址为:192.168.x.x)的屏幕1,也就是侦听 192.168.x.x:5901, 用户名为foot3nLinux联盟
 t3nLinux联盟
  情形一: VNC客户端为Linuxt3nLinux联盟
 t3nLinux联盟
  这种情形很简单,一般的Linux发行版本里面都默认安装了ssh套件。t3nLinux联盟
 t3nLinux联盟
  1. 用ssh登录到服务器t3nLinux联盟
 t3nLinux联盟
  ssh -L 5901:localhost:5901 -l foo myservert3nLinux联盟
 t3nLinux联盟
  或者直接用ip地址t3nLinux联盟
 t3nLinux联盟
  ssh -L 5901:localhost:5901 -l foo 192.168.x.xt3nLinux联盟
 t3nLinux联盟
  2. 在本机的另外开的终端上,运行VNCviewer (或其它的类似工具)t3nLinux联盟
 t3nLinux联盟
  VNCviewer localhost:1t3nLinux联盟
 t3nLinux联盟
  情形二: VNC客户端为windowst3nLinux联盟
 t3nLinux联盟
  1. 下载一个ssh客户端,个人推荐putty,只有一个程序,不需要安装,简单而功能齐全。 到这里下载http://www.chiark.greenend.org.uk/~sgtatham/putty/download.htmlt3nLinux联盟
 t3nLinux联盟
  下载putty.exe到桌面上直接运行即可。t3nLinux联盟
 t3nLinux联盟
  2. 运行putty,输入服务器的ip地址,输入一个名字,这里myserver作为session的名字,按save保存。见附图一t3nLinux联盟
 t3nLinux联盟
  3. 单击对话框左边的tunnels来选择相关设置,在source port里输入5901,在Destination里输入localhost:5901,按Add添加,如附图二t3nLinux联盟
 t3nLinux联盟
  4. 单击左边session,回到session设置,按save重新保存。按open即可登录到服务器。t3nLinux联盟
 t3nLinux联盟
  5. 运行VNC-viewer (如果没有,到这里下载http://www.realVNC.com/download.html,只要一个 exe的文件就行),在Server里输入localhost:1,见附图三, 输入口令后一个Linux的桌面就会出现在windows里,并且是非常安全的,Cool 能玩到这步骤的都是我崇拜的对象。哈t3nLinux联盟
Q、VNC 是什么?t3nLinux联盟
 t3nLinux联盟
  VNC有两种定义:一种是软件、一种是协议t3nLinux联盟
 t3nLinux联盟
  VNC是 Virtual Network Computingt3nLinux联盟
 t3nLinux联盟
  软件是指是GNU public license下的符合VNC协议的共享软件,。最开始是AT&T的英国实验室 [现在这帮人成立了RealVNC公司] 开发的。 主要是让计算机可以远程控制另外一台计算机。现在很多公司在VNC的基础上开发出了各种各样的VNC. 能够运行在各个操作系统上。t3nLinux联盟
 t3nLinux联盟
  VNC协议。是指控制方和被控制计算机之间的通讯协议。VNC用的协议叫RFB .[很多人不知道吧] RFB 的协议在这里。 http://realVNC.com/docs/rfbproto.pdft3nLinux联盟
 t3nLinux联盟
  Q、VNC 的优点?t3nLinux联盟
 t3nLinux联盟
  第一、VNC的最大优点就是跨平台。因为不同的操作系统的界面处理方法都不一样,所以就有人开发了不同的VNC版本,因为都符合VNC协议,所以兼容性比较好。还有人做了Java版的客户端,在能够运行JVM的机器上都能运行客户端。t3nLinux联盟
 t3nLinux联盟
  [ 当然微软/Uinx/Linux等也有自己的解决方案,如Terminal/PcAnywhere/Xceed等等。但是他们不开放代码……]t3nLinux联盟
 t3nLinux联盟
  第二、版本多,开放源代码,每个人都可以不断改进它。t3nLinux联盟
 t3nLinux联盟
  [这是开放的好处]t3nLinux联盟
 t3nLinux联盟
  第三、速度。速度还是挺快的,如果你的网络带宽好的话。t3nLinux联盟
 t3nLinux联盟
  Q. VNC PK MS 终端t3nLinux联盟
 t3nLinux联盟
  VNC : 不用Windows的账户/密码。这样对于一次性的用户很方便。否则每次要在Windows里面加用户可是很不安全的阿。t3nLinux联盟
 t3nLinux联盟
  Windows: 对于Windows Server, 可以多用户登录使用。VNC只能两个人(控制和被控制的计算机)使用。t3nLinux联盟
 t3nLinux联盟
  VNC: 可以让控制和被控制的屏幕同时显示、操作。这样可以做Demo,共享交流等。Windows 没这个功能吧!t3nLinux联盟
 t3nLinux联盟
  Q. 如何以图形界面登录被控端?t3nLinux联盟
 t3nLinux联盟
  编辑~/.VNC/xstartupt3nLinux联盟
 t3nLinux联盟
  #!/bin/sht3nLinux联盟
 t3nLinux联盟
  # Uncomment the following two lines for normal desktop:t3nLinux联盟
 t3nLinux联盟
  # unset SESSION_MANAGERt3nLinux联盟
 t3nLinux联盟
  # exec /etc/X11/xinit/xinitrct3nLinux联盟
 t3nLinux联盟
  [ -x /etc/VNC/xstartup ] && exec /etc/VNC/xstartupt3nLinux联盟
 t3nLinux联盟
  [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresourcest3nLinux联盟
 t3nLinux联盟
  xsetroot -solid greyt3nLinux联盟
 t3nLinux联盟
  VNCconfig -iconic &t3nLinux联盟
 t3nLinux联盟
  #xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &t3nLinux联盟
 t3nLinux联盟
  gnome-session & 建议选这个……其他的都给它前面加上#t3nLinux联盟
 t3nLinux联盟
  startkde &t3nLinux联盟
 t3nLinux联盟
  twm &t3nLinux联盟
 t3nLinux联盟
  gnome-session是启动Gnome图形界面;startkde是启动KDE图形界面;twm是启动文本界面。三者选其一。t3nLinux联盟
 t3nLinux联盟
  Q. 如何开机时自动启动VNC服务t3nLinux联盟
 t3nLinux联盟
  打开“系统设置”——>"服务器设置"——>"服务",勾选上VNCserver,“保存”。t3nLinux联盟
 t3nLinux联盟
  修改 /etc/sysconfig/VNCserverst3nLinux联盟
 t3nLinux联盟
  VNCSERVERS="1:root 2:phred 3:sysadmin" 1代表“桌面1”,root代表用户名;可同时启动多个用户桌面t3nLinux联盟
 t3nLinux联盟
  VNCSERVERARGS[1]="-geometry 800x600 -alwaysshared -depth 24"t3nLinux联盟
 t3nLinux联盟
  -alwaysshared代表允许多用户同时登录 -depth代为色深,参数有8,16,24,32.t3nLinux联盟
 t3nLinux联盟
  这步有点高深了……也复杂点,其实客户端可以完成80%的配置。而我有更好的方法,因为SSH启动是默认的。SSH上去打开VNC就行了。也不过一条命令。更多的是安全。t3nLinux联盟
 t3nLinux联盟
  Q.为什么连接后,不能显示桌面,而只有一个Terminal窗口?t3nLinux联盟
 t3nLinux联盟
  试着修改/root/.VNC/xstartup,把最后一行 twm& 改成 gnome-session& or kde&(据说KDE在目前的VNC Viewer上的表现不太稳定)t3nLinux联盟
 t3nLinux联盟
  Q.为什么重新启动VNC Server后,连接不上了?t3nLinux联盟
 t3nLinux联盟
  因为重新启动VNC Server时,系统会指定一个新的显示编号,需使用此新的编号,否则就无法连接。t3nLinux联盟
 t3nLinux联盟
  查看VNC已启用的桌面号及监听进程t3nLinux联盟
 t3nLinux联盟
  [root@Linux /]# netstat -tlnp |grep VNCt3nLinux联盟
 t3nLinux联盟
  VNCserver 命令带有一些很有用的参数,用VNCserver ——help 查看。t3nLinux联盟
 t3nLinux联盟
  简单解释一下:t3nLinux联盟
 t3nLinux联盟
  VNCserver [:] [-name ] [-geometry x] [-depth ]t3nLinux联盟
 t3nLinux联盟
  [-pixelformat format]t3nLinux联盟
 t3nLinux联盟
  VNCserver -kill :displayt3nLinux联盟
 t3nLinux联盟
  :t3nLinux联盟
 t3nLinux联盟
  VNC服务的display号,可以自行指定,尽量不要使用系统默认的以保证安全,必须为非0的正整数t3nLinux联盟
 t3nLinux联盟
  VNCserver :99t3nLinux联盟
 t3nLinux联盟
  使用时必须输入正确的display号才能连接;用浏览器要在端口号加上display号,默认端口5800,远程连接输入 XXX.XXX.XXX.XXX:5899t3nLinux联盟
 t3nLinux联盟
  -name 指定VNCserver桌面名字t3nLinux联盟
 t3nLinux联盟
  比如要让名字显示为 “红帽”t3nLinux联盟
 t3nLinux联盟
  VNCserver -name 红帽t3nLinux联盟
 t3nLinux联盟
  -geometry x指定显示桌面的分辨率,默认为1024x768t3nLinux联盟
 t3nLinux联盟
  VNCserver -geometry 800x600t3nLinux联盟
 t3nLinux联盟
  这个命令实际中很有用,例如本地分辨率为1024x768 如果不设定远程VNC服务分辨率就会造成桌面显示不全的问题。t3nLinux联盟
 t3nLinux联盟
  -depth 指定显示颜色,设定范围8~32t3nLinux联盟
 t3nLinux联盟
  VNCserver -depth 16t3nLinux联盟
 t3nLinux联盟
  用16bits颜色显示t3nLinux联盟
 t3nLinux联盟
  -pixelformat 指定色素格式与-depth大致相同,只是表示方法不一样t3nLinux联盟
 t3nLinux联盟
  VNCserver -pixelformat RGB888t3nLinux联盟
 t3nLinux联盟
  用24bits颜色显示t3nLinux联盟
 t3nLinux联盟
  VNCserver -kill :displayt3nLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·探查Linux系统DNS服务器运行状况  (2008-02-18 09:33:10)
 ·Linux操作系统的口令文件安全问题详解  (2008-02-15 10:12:46)
 ·Linux操作系统下源码阅读工具ctags+vim中ctags的安装  (2008-02-15 10:02:50)
 ·关于使用Xmanager进行对linux远程桌面控制  (2008-02-13 09:50:41)
 ·在Red Hat Linux 5下使用远程桌面环境  (2008-02-13 09:49:57)
 ·Linux 2.6.11 MTD驱动情景分析  (2008-02-13 09:43:21)
 ·Ubuntu Linux系统帐户密码找回功能  (2008-02-13 09:40:47)
 ·Linux系统如何通过手机GPRS无线上网  (2008-02-13 09:40:00)
 ·Linux操作系统下简单的系统文件校验方法  (2008-02-04 10:27:58)
 ·在SUSE Linux下安装VNC的方法  (2008-02-04 10:26:26)