整个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的桌面环境及输入装置。
第一步:检查linux系统是否安装VNC
默认情况下,Red Hat Enterprise Linux安装程序会将VNC服务安装在系统上。
打开终端窗口:
输入命令:rpm -q vnc-server,返回信息如下:
那就证明已经安装上VNC服务拉。
若系统没有安装,可以到操作系统安装盘的Server目录下找到VNC服务的RPM安装包vnc-server-4.1.2-9.el5.x86_64.rpm,安装命令如下
rpm -ivh /mnt/Server/vnc-server-4.1.2-9.el5.x86_64.rpm
或者 yum install vnc-server
第二步:VNC 用户和密码配置,并启动VNCServer 服务
1. 添加多个用户
useradd user1 //添加用户user1
passwd user1 //设置用户的linux登录密码
su user1 //切换到用户user1
vncpasswd //设置用户的user1登录密码
exit
useradd user2 //添加用户user2
passwd user2 //设置用户的linux登录密码
su user2 //切换到用户user2
vncpasswd //设置用户的user2登录密码
exit
2. 在CentOS系统中将用户名加入到配置文件中
使用如下命令编辑配置文件,添加帐户信息:
vi /etc/sysconfig/vncservers
做如下修改
# # Uncomment the line below to start a VNC server on display :1 # as my 'myusername' (adjust this to your own). You will also # need to set a VNC password; run 'man vncpasswd' to see how # to do that. # # DO NOT RUN THIS SERVICE if your local area network is # untrusted! For a secure way of using VNC, see # lt;URL:http://www.uk.research.att.com/vnc/sshvnc.htmlamp;gt;. # VNCSERVERS="1:myusername" # VNCSERVERS="1:gavin 2:john" # use the method for more user # VNCSERVERARGS[1]="-geometry 800x600"
在最后加上:
VNCSERVERS="1:user1 2:user2"
VNCSERVERSVNCSERVERARGS[1]="-geometry 1024x768 -alwaysshared"
VNCSERVERSVNCSERVERARGS[2]="-geometry 1024x768 -alwaysshared"
注意:-geometry 1024x768表示分辨率;-alwaysshared 表示允许多终端同时登陆
3.设置 root用户的密码
使用如下命令设置密码:vncpasswd
当提示Verify时,再次输入密码确认。
4.重新启动VNC服务
1)启动全部桌面
service vncserver restart
Starting VNC server: 2:root [ OK ]
2)启动某一桌面
vncserver :1 //这里1表示第一个桌面
当然啦,假如检查出你是安装了VNC了,linux里面就告诉他,你要启动了。命令如下:
[root@testdb ~]# vncserver :1
输入该命令后出现该界面,要求你输入密码,那个密码是你等会连接linux服务器的密码啊。
细说一下:以上命令执行的过程中,因为是第一次执行,需要输入密码,这个密码被加密保存在用户主目录下的.vnc子目录(/root/.vnc/passwd)中;同时在用户主目录下的.vnc子目录中为用户自动建立xstartup配置文件(/root/.vnc/xstartup),在每次启动VND服务时,都会读取该文件中的配置信息。
BTW:/root/.vnc/目录下还有一个“testdb:1.pid”文件,这个文件记录着启动VNC后对应后天操作系统的进程号,用于停止VNC服务时准确定位进程号。
5. 将vncserver设置为随系统启动
chkconfig vncserver on
或者: chkconfig vncserver --level 5 on
第三步:在防火墙中开放端口
1.VNC服务使用的端口号与桌面号的关系
VNC服务使用的端口号与桌面号相关,VNC使用TCP端口从5900开始,对应关系如下
桌面号为“1” ---- 端口号为5901
桌面号为“2” ---- 端口号为5902
桌面号为“3” ---- 端口号为5903
……
基于Java的VNC客户程序Web服务TCP端口从5800开始,也是与桌面号相关,对应关系如下
桌面号为“1” ---- 端口号为5801
桌面号为“2” ---- 端口号为5802
桌面号为“3” ---- 端口号为5803
2. 检查当前正在侦听的VNC 端口
3. 修改防火墙文件,开放改端口,重启服务生效
iptables -I INPUT -p tcp --dport 5901:5902 -j ACCEPT
iptables -A INPUT -p tcp --dport 5901:5902 -j ACCEPT
永久保存
service iptables save
第四步:在windows上远程连接Linux X-Window图形桌面环境
1. 安装VNC Viewer软件,并进行连接
以上步骤其实已经可以通过windows系统控制linux的了,可是不是图形界面往下我会细说一下。
先测试VNC服务是否通过了。
第一种方法是使用VNC Viewer软件登陆测试,操作流程如下启动VNC Viewer软件 --> Server输入“192.168.52.128:2” --> 点击“OK” --> Password输入登陆密码 --> 点击“OK”登陆到X-Window图形桌面环境 --> 测试成功
第二种方法是使用Web浏览器(如Firefox,IE,Safari)登陆测试,操作流程如下地址栏输入http://192.168.0.3:5801/ --> 出现VNC viewer for Java(此工具是使用Java编写的VNC客户端程序)界面,同时跳出VNC viewer对话框,在Server处输入“192.168.0.3:1”点击“OK” --> Password输入登陆密码 --> 点击“OK”登陆到X-Window图形桌面环境 --> 测试成功
(注:VNC viewer for Java需要JRE支持,如果页面无法显示,表示没有安装JRE,可以到http://java.sun.com/javase/downloads/index_jdk5.jsp这里下载最新的JRE进行安装)
本人在浏览器测试成功了
点击OK
出现如下界面,那就代表你成功了一大半了。
第五步:在windows上远程连接Linux KDE或GNOME图形桌面环境
1. 配置VNC图形桌面环境为KDE或GNOME桌面环境
如果您是按照我的上面方法进行的配置的,登陆到桌面后效果是非常简单的,只有一个Shell可供使用,这是为什么呢?怎么才能看到可爱并且美丽的KDE或GNOME桌面环境呢?那就需要配置一下linux一个文件了。
配置文件xstartup中对其进行修改,先看一下这个配置文件。
/root/.vnc/xstartup(显示隐藏文件啊不然看不到的),下面我用VI编辑文件
在终端打入命令如下:
[root@testdb ~]# vi /root/.vnc/xstartup
修改为如下内容:
按一下ESC键,之后 :wq保存和退出VI
【vi是Unix/Linux系统最常用的编辑器之一,我习惯使用":x"命令来保存文件并退出,不愿意使用":wq"命令是因为它得多敲一个字母。
但是,今天我才知道":x"和":wq"的真正区别,如下:
:wq强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。
:x写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。】
现在基本大功告成了。
2:重新启动vncserver服务的方法:
sbin/service vncserver restart
当CentOS系统提示如下信息时,表示重启成功:
Shutting down VNC server: 2:root [ OK ]
Starting VNC server: 2:root [ OK ]
3:下面我们感受一下图片界面拉~~~
4. Linux服务器上关闭VNC 服务:
另外为了安全起见,中断VNC服务器之后,最好在服务器上能够及时关闭VNC应用服务器。关闭的命令如上,只需要运行如下命令即可:
查看当前有几个桌面在运行 service vncserver status
1)停止全部桌面
service vncserver stop
2) 停止某一桌面
vncserver -kill :2 //停止第2个界面,要用kill命令来杀掉界面2的进程
#vncserver �Ckill :2
备注: linux作为客户端连入linux服务端配置过程:
1),服务器端配置同上
2),在linux上安装vnc的客户端vncviewer
#yum install vnc //这个就是vncviewer的安装包
#vncviewer
//打开客户端开始进行连接,过程跟windows类似。