telnet与ssh只是基于字符界面的远程控制,如果想要对linux服务器时行桌面的远程控制的话,我们可以安装vnc-server服务来实现。

一、vnc服务简介
vnc本身一个远程控制软件,可以安装在windows,linux等操作系统上。
vnc软件主要由两个部分组成:
vnc server
vnc viewer
二、vnc服务的安装
[root@fc5 /]# rpm -q vnc-server
vnc-server-4.1.1-36
说明:如果没有正确安装,vnc服务不能成功。
三、vnc服务的启动与测试
1.vnc服务的启动
vncserver :1
vncserver -kill :1  关闭桌面号:1
 
启用编号为1的桌面,系统会提示用户输入访问口令,口令会被加密保存在用户主目录下的.vnc子目录中的passwd文件。系统会在用户主目录下的.vnc目录为用户自动建立xstartup配置文件,谁启动的服务,就在谁的目录下建立相关文件。 
[tom@fc5 ~]$ vncserver :1
You will require a password to access your desktops.
Password:
Verify:
xauth:  creating new authority file /root/.Xauthority
New 'fc5:2 (root)' desktop is fc5:1
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/fc5:1.log 
说明:该用户建立的桌面号,会要求输入进行该桌面环境的密码。
[root@fc5 ~]# cd /root/.vnc
[root@fc5 .vnc]# ll
总计 16
-rw-r--r-- 1 root root 787 05-28 19:39 fc5:1.log
-rw-r--r-- 1 root root   5 05-28 19:39 fc5:1.pid
-rw------- 1 root root   8 05-28 16:55 passwd
-rwxr-xr-x 1 root root 344 05-28 17:21 xstartup

[root@fc5 .vnc]# service vncserver start

2.vnc服务的测试
对于windos客户端而言,必须要事先安装JAVA运行环境。
http://192.168.1.6:5801
 
如果能出现vnc viewer的对话框,,因为5801是启动的是桌面号1,桌面号1又是由root建立的,只输入建立桌面号1的密码就可以了。但是界面非常简单,只是有一个shell。
四、vnc桌面环境配置
vnc在默认状态下使用twm桌面环境,只能输入shell来进行配置,对于linux安装了KDE或GNOME图形桌面环境,如何通过vnc也能够登陆到KDE或GNOME桌面,实现远程控制。还需要修改/root/.vnc/xstartup文件。修改成对应的桌面环境,就可以通过vnc登陆到相应的桌面环境。
vi /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" &
gnome-session &
#GNOME桌面环境应修改: gnome-session
#KDE桌面环境应修改:startkde
#默认状态是:twm

vncserver -kill :1  /*杀死原桌面进程号*/
vncserver :1        /*重新建立桌面进程号*/
然后客户端重新连接,就会出现对应的图形桌面环境,如图
五、vnc应用配置
1.创建多桌面号

可以建立多个桌面号,可以使用该帐户建立多个vnc连接。
命令:
vncserver :1
vncserver :2
以上建立的桌面号在计算机重启之后就自己消失,如何实现系统自动建立桌面号,并且实现不同用户通过自己的密码来进行相应的桌面环境。
方法如下:
vi /etc/sysconfig/vncservers
#在最后加入以下内容
VNCSERVERS="1:root"
VNCSERVERS="2:tom"

2.修改用户访问口令
vncpasswd 
示例:
[root@fc5 ~]# vncpasswd       /*没有参数,默认是当前用户用户修改密码*/
Password:
Verify:

3.启用VNC远程协助功能
思路:大家都可以看到同一个屏幕,也可以操作对方的电脑。实现也很简单,就是双方都连接到同一个桌面号,如桌面号1,2等。
实现:
服务端:启用远程协助,请求别人协助。
在桌面上开一个终端,指行以下命令,终端不能关闭,等待连接。
[root@fc5 ~]# x0vncserver -PasswordFile=/root/.vnc/passwd
Thu May 28 23:19:19 2009
main:    Xtest extension present –version 2.2
main:    Listening on port 5900

客户端:
用VNC viewer 连接:192.168.1.2:0连接桌面0进入,两边桌面内容同步。
注:必须要linux中的VNC viewer才行。
六、vnc客户端
1.vnc linux客户端
[root@fc5 ~]# rpm -q vnc   /*安装linux VNC客户端软件*/
vnc-4.1.1-36
在图形界面对运行vnc viewer,会出现一个对话框输入:192.168.1.2:1,然后输入VNC服务桌面1的密码,即可看到vnc服务端的桌面环境了。如图:
 

 2.vnc windows客户端
(1)IE
输入http://192.168.1.2:1

(2)tightVNC
tightVNC是一个vnc服务端软件,里面包括一个vnc客户端,可以通过该客户端来进行VNC的访问。输入:192.168.1.2:1
如图:

.VNC服务使用的端口号与桌面号的关系
VNC
服务使用的端口号与桌面号相关,VNC使用TCP端口从5900开始,对应关系如下
桌面号为“1”  ---- 端口号为5901
桌面号为“2”  ---- 端口号为5902
桌面号为“3”  ---- 端口号为5903
……
基于
[url=javascript:;]Java[/url]
VNC客户程序Web服务TCP端口从5800开始,也是与桌面号相关,对应关系如下
桌面号为“1”  ---- 端口号为5801
桌面号为“2”  ---- 端口号为5802
桌面号为“3”  ---- 端口号为5803
……
基于上面的介绍,如果Linux开启了防火墙功能,就需要手工开启相应的端口,以开启桌面号为“1”相应的端口为例,命令如下
[root@testdb ~]# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT
[root@testdb ~]# iptables -I INPUT -p tcp --dport 5801 -j ACCEPT