《LINUX平台VNC设置方法》由会员分享,可在线阅读,更多相关《LINUX平台VNC设置方法(9页珍藏版)》请在金锄头文库上搜索。
1、VNC 简介网络遥控技术是指由一部计算机(主控端)去控制另一部计算机(被控端),而且当主控端在控制端时,就如同用户亲自坐在被控端前操作一样,可以执行被控端的应用程序,及使用被控端的系统资源。VNC(Virtual Network Computing)是一套由 AT&T 实验室所开发的可操控远程的计算机的软件,其采用了 GPL 授权条款,任何人都可免费取得该软件。VNC 软件主要由两个部分组成: VNC server 及 VNC viewer。用户需先将 VNC server 安装在被控端的计算机上后,才能在主控端执行VNC viewer 控制被控端。(在 windows 中也由一套著名的网络遥
2、控软件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 传送一对话窗口至客户端,要求输入连接密码
3、,以及存取的 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,主控端
4、Windows XP。1 载 VNC ServerVNC Server 下载地址:http:/ (如果是源代码请看包里的说明),当下载了 VNC 的 Linux 版本后,可以解压文件到一个文件夹中,例如/home/vnc,然后复制文件 vncserver、 vncpasswd 和 Xvnc 到/usr/bin 目录中。假如想要能够通过 VNC 服务器的整合 Java 界面远程控制 Linux 电脑,也得需去建立一个子目录/usr/local/vnc/classes。在建立此子目录之后,复制 VNCJava.class 文件到此目录中。(一般 redhat 9.0 自带以上文件,所以直接用终端执
5、行就可以)。3.在 Linux 上启动 VNC Server执行 vncserver 命令:rootlinux root# vncserverYou 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/xstartupStarting ap
6、plications specified in /root/.vnc/xstartupLog file is /root/.vnc/linux:1.log(经上述步骤后,便已启动了 VNC Server。如果你想要更改 VNC Server 的密码,只要执行vncpasswd 命令即可。)5. 从浏览器远程遥控。启动 VNC Server 后直接打开浏览器,在地址栏中输入被控端的网址或 IP 地址,并在网址后加上:5800显示编号的端口号即可操控该计算机。例如:http:/192.168.01:5801 (如果显示编号为 1,一般第一次设置的显示编号都是 1,就用580015801。)如果看到
7、窗口,就说明你成功,在密码框输入密码,就能远程控制了。6FAQA. 如何以图形界面登录被控端?编辑/.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/.Xresourcesxsetroot -solid greyvncconfig
8、 -iconic term -geometry 80x24+10+10 -ls -title $VNCDESKTOP Desktop &gnome-session &startkde &twm &gnome-session 是启动 Gnome 图形界面;startkde 是启动 KDE 图形界面;twm 是启动文本界面。三者选其一。A. 如何开机时自动启动 vnc 服务打开系统设置 服务器设置服务,勾选上 vncserver, 保存。修改 /etc/sysconfig/vncserversVNCSERVERS=1:root 2:phred 3:sysadmin 1 代表桌面 1,root
9、 代表用户名;可同时启动多个用户桌面VNCSERVERARGS1=-geometry 800x600 -alwaysshared -depth 24-alwaysshared 代表允许多用户同时登录 -depth 代为色深,参数有 8,16,24,32。A为什么连接后,不能显示桌面,而只有一个 Terminal 窗口?试着修改/root/.vnc/xstartup,把最后一行 twm& 改成 gnome-session& or kde&(据说 KDE 在目前的VNC Viewer 上的表现不太稳定)B 为什么重新启动 VNC Server 后,连接不上了?因为重新启动 VNC Server 时
10、,系统会指定一个新的显示编号,需使用此新的编号,否则就无法连接-查看 vnc 已启用的桌面号及监听进程rootlinux /# netstat -tlnp |grep vncvncserver 命令带有一些很有用的参数,用 vncserver -help 查看。简单解释一下:vncserver : -name -geometry x -depth -pixelformat formatvncserver -kill :display:vnc 服务的 display 号,可以自行指定,尽量不要使用系统默认的以保证安全,必须为非 0 的正整数vncserver :99使用时必须输入正确的 disp
11、lay 号才能连接;用浏览器要在端口号加上 display 号,默认端口 5800,远程连接输入 XXX.XXX.XXX.XXX:5899-name 指定 vncserver 桌面名字比如要让名字显示为 红帽vncserver -name 红帽-geometry x 指定显示桌面的分辨率,默认为 1024x768vncserver -geometry 800x600这个命令实际中很有用,例如本地分辨率为 1024x768 如果不设定远程 vnc 服务分辨率就会造成桌面显示不全的问题。-depth 指定显示颜色,设定范围 832vncserver -depth 16用 16bits 颜色显示-p
12、ixelformat 指定色素格式 与-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/.Xresourcesxsetr
13、oot -solid greyvncconfig -iconic &xterm -geometry 80x24+10+10 -ls -title $VNCDESKTOP Desktop &twm &将#!/bin/sh 后面的内容全部注释掉,改成/.Xclients保存文件现在可以测试修改是否成功,先 kill vncserver 服务vncserver -kill :或pa aux|grep Xvnckill PID重新启动 vncserver ,用 vncviewer 连接远程桌面是不是已经变成自己喜欢的类型了。在前面有 vnc server 设置的文章( http: / 我们已经可以在一
14、个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 客户端
15、为 linux这种情形很简单,一般的 linux 发行版本里面都默认安装了 ssh 套件 .1. 用 ssh 登录到服务器ssh -L 5901:localhost:5901 -l foo myserver或者直接用 ip 地址ssh -L 5901:localhost:5901 -l foo 192.168.x.x2. 在本机的另外开的终端上 ,运行 vncviewer (或其它的类似工具)vncviewer localhost:1情形二: vnc 客户端为 windows1. 下载一个 ssh 客户端,个人推荐 putty,只有一个程序,不需要安装,简单而功能齐全. 到这里下载http:/www.chiark.greenend.org.uk/sgtatham/putty/download.html下载 putty.exe 到桌面上直接运行即可。2. 运行 putty,输入服务器的 ip 地址, 输入一个名字, 这里 myserver 作为 session 的