vnc-server

VNC简介

VNC基本上是属于一种显示系统,也就 是说他能将完整的窗口界面通过网络,传输到另一台计算机的屏幕上. Windows服务器中包含的"Terminal Server"、Symantec公司开发的收费软件PCAnywhere、近期流行的Teamviewer、国内的协通XT800、快递通KDT都是属 于这种原理的设计,同时这些软件又在VNC的原理基础上做了各自相应改进,提高了易用性、连通率和可穿透内网(Teamviewer、协通XT800、 KDT).

同样可能远程连入UNIX、Linux进行图形化操作的还有流行的Xmanager,VNC与之相比——两者工作原理不一样,后者是远程连入操作系统, 所有操作在UNIX、Linux主机服务端进行,即使操作过程中"本地电脑与操作主机网络断开”,也不影响操作的顺利进行;而后者(Xmanager)是 通过端口将主机服务器的UI界面引导到本地电脑进行展现,如操作过程出现"本地电脑与操作主机网络断开”,操作将中断失败!如果操作都进行的工作任务非常 重要,不能中断,如ORACLE RAC实施,结果是灾难性的!更重要的是,VNC是免费的、开源的,Xmanager你一定是用的破解注册版的。

VNC基本上是由两部分组成:一部分是客户端的应用程序(vncviewer);另外一部分是服务器端的应用程序(vncserver)。VNC的基本 运行原理和一些Windows下的远程控制软件很相象。VNC的服务器端应用程序在UNIX和Linux操作系统中适应性很强,图形用户界面十分友好,看 上去和Windows下的软件界面也很类似。在任何安装了客户端的应用程序(vncviewer)的Linux平台的计算机都能十分方便的和安装了服务器 端的应用程序(vncserver)的计算机相互连接。另外,服务器端 (vncserver)还内建了Java Web接口,这样用户通过服务器端对其他计算机的操作就能通过Netscape显示出来了,这样的操作过程和显示方式比较直观方便。

vncserver 此服务程序必须在主(或遥控)计算机上运行。你只能作为使用者(不需要root身份)使用此项服务。
vncviewer 本地应用程序,用于远程接入运行vncserver的计算机并显示其环境。你需要知道远程计算机的IP地址和vncserver设定的密码。
vncpasswd vncserver的密码设置工具。vncserver服务程序没有设置密码将不能运行(好习惯)。如果你没有设置,运行vncserver时它会提示你输入一个密码。
vncconnect 告诉vncserver连接到远程一个运行vncviewer的计算机的IP和端口号。这样我就可以避免给其他人一个接入的密码。
Xvnc 一个vnc"主控”程序,一般来说不需要直接运行。(vncserver和vncviewer实际上是Xvnc的脚本)

查找所有可用的选项,运行:

Xvnc --help

出于安全的考虑,一般不建议直接以超级用户帐号运行vncserver程序。如果你需要超级用户的环境,请以一般用户登录后再使用su命令登录到超级用户帐号。

安装VNCServer

首先确认你服务器是否配置了VNCServer,可以在命令行下敲入以下命令查看:

rpm -qa |grep vnc
vnc-server-4.1.2-14.el5    #返回VNCSEVER服务器端版本说明你已经安装了VNCServer。

如果没有安装VNCSEVER,那么从光盘找到安装包进行安装。

首先将光盘挂载(也叫解压)到某个目录这里是在/var/ftp/pub/下面建立了rhel5-64目录

mount -o looprhel-server-5.3-x86_64-dvd.iso /var/ftp/pub/rhel5-64/

然后在/var/ftp/pub/rhel5-64/Server目录下找到vnc-server-4.1.2-14.el5.x86_64.rpm安装包,使用RPM命令直接安装;

rpm -ivh vnc-server-4.1.2-14.el5.x86_64.rpm

配置VNCServer

启动VNCSever,第一次启动VNCServer会提示输入密码,这里分为管理员账户及普通账户,启动方式略有所不同。

这里要注意:

  1. 每个用户都可以启动自己的VNCServer远程桌面
  2. 同时每个用户可以启动多个VNCServer远程桌面,它们用ip加端口号:ip:1、ip:2、ip:3 来标识、区分
  3. 使用同一端口会使另外登录的用户自动退出。
  4. VNCServer的大部分配置文件及日志文件都在用户home目录下.vnc目录下。

用户可以自定义启动号码如:

vncserver :2        #注意:2前面一定要有空格。

A VNC server is already running as :2

相关桌面配置

RedHat Linux支持两种图形模式:KDE模式和gnome模式。

你的RH使用的什么图形模式这个一般只有登录到图形界面查看一下才能知道,或者通过ps -A命令列出所有当前运行的程序,看看有没有KDE或者gnome字样来判断一下。

#!/bin/sh

# Uncomment the following two lines fornormal 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 80×24+10+10 -ls -title "$VNCDESKTOP Desktop" &
gnome-session gnome           #添加这一句是连接时使用gnome 桌面环境
twm &

设置修改完毕最好是重启一次系统,否则设置不会生效。我采用的方法是杀死VNCServer进程再重运行VNCServer。

vncserver -kill:1      #这里你启动vncserver时是什么端口号要对应上。
vncserver :1           #重启VNCServer,注意:1前面一定要有空格。

注意:上面是分别设置的root和leo两个用户的分辨率,注意是用端口号区分的。

另外也可以通过命令行临时修改分辨率及色深,这种方式重启后就会丢失,这里暂时用不到,命令如下:

vncserver -geometry 800×600  #设置vncserver的分辨率
vncserver -depth16           #设置vncserver的色深

到这里VNCServer服务器端就配置完成了。

客户端连接及使用

一些常识

运行vncpasswd即可

注意到vncserver只能由启动它的用户来关闭,即时是root也不能关闭其它用户开启的vncserver,只能用kill命令暴力杀死进程。

vncserver默认在多个客户机连接同一个vncserver的显示端口时,vncserver端口旧连接,而为新连接服务,可通过-dontdisconnect拒绝新连接请求而保持旧的连接。

vncserver -alwaysshared

使用VNC连接登录到RedHat Linux图形界面,点击"系统”——"管理”——"服务器设置”——"服务”,在"后台服务”中找到VNCServer后勾选它,点击保存即可。