一、什么是VNC?

VNC (Virtual Network Computer)是虚拟网络计算机的缩写。VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 和 MAC 中的任何远程控制软件媲美。 在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多数情况下用户只需要其中的两个命令:vncserver 和 vncviewer。

二、VNC的特点

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

三、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的桌面环境及输入装置。

四、安装前准备:

操作系统:CentOS release 6.5 (Final)

内核版本:2.6.32-431.el6.x86_64

VNC服务端版本:

VNC客户端版本:VNC-Viewer-5.2.3-Windows-64bit.msi



最小化安装的linux要安装桌面环境

yum groupinstall -y "Desktop" "Desktop Platform" "Desktop Platform Development" "Fonts" "General Purpose Desktop" "Graphical Administration Tools" "Graphics Creation Tools" "Input Methods" "X Window System" "Chinese Support [zh]" "Internet Browser"



五、安装vncserver

1、查询是否安装VNC Server

# rpm -qa |grep vnc

2、安装vncserver

# yum -y install tigervnc-server

3、配置分辨率和用户登录信息

# vim /etc/sysconfig/vncservers

参考最后两行添加自己的配置
VNCSERVERS="2:root"
VNCSERVERARGS[2]="-geometry 1024x768"

4、配置 VNC 登录密码

执行下列命令
# vncserver
首次执行提示设置密码,根据提示输入两次密码即可

5、配置 VNC 登录桌面模式
Centos Linux支持两种图形模式:KDE模式和gnome模式,如果是gnome桌面则需修改 /root/.vnc/xstartup 的配置相关项
# vim /root/.vnc/xstartup

个人理解上面的意思是用户目录下需要.vnc目录因为我的不需要配置就可以直接通过vnc viewver直接连接linux

VNC的启动/停止/重启

# service vncserver start/stop/restart

关闭具体的vncserver命令:vncserver -kill :1       vncserver -kill :2

如果没有安装采用yum安装
yum -y install vnc 2.配置VNC用户如果以root登录的话,输入
vncpasswd
Password:
Verify:
设置root用户的VNC登录用户名和密码 3.配置vnc-server的配置文件
/etc/sysconfig/vncservers
内容如下:
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# 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
#<URL:http://www.uk.research.att.com/archive/vnc/sshvnc.html>.
# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.
# Use "-nohttpd" to prevent web-based VNC clients connecting.
# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel.  See the "-via" option in the
# `man vncviewer' manual page.
VNCSERVERS="1:root"
# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"
VNCSERVERARGS[1]="-geometry 800x600"
1.VNCSERVERS=后面可以支持多用户,以空格隔开。如:
VNCSERVERS="1:myusername 15:otheruser"--->这里的1 和15是端口号,用于连接时的端口
2.VNCSERVERARGS后面的[]里面的数据要与VNCSERVERS后面对应用户的值要一致。好像不一致也没有关系
VNCSERVERARGS基本参数有:
-geometry 桌面大小,缺省是1024x768
-nohttpd 不监听HTTP端口
-nolisten tcp 不监听X端口
-localhost 只允许从本机访问
-AlwaysShared 默认的, 同时只能有一个vncviewer连接(跟客户端配置也有关), 一旦第2个连上去, 第1个就被断开了. 此参数允许同时连多个vncviewer
-SecurityTypes None登录不需要密码认证 VncAuth默认值,要密码认证
启动vncserver
/sbin/nvcserver start
如果没有出错的话,就会启动vnc服务了
4.修改默认桌面设置
在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" &
#twm & ---把这两行注释掉,加上
#exec startxfce4
gnome-session
重新启动vncserver
netstat -antpl查看可以发现有三个端口在监听。
5901 5801 6001
这三个端口:
默认的, vnc 服务监听3个TCP端口
RFB(Remote FrameBuffer)协议 默认端口 : 5900 显示器号
HTTP协议默认端口 : 5800 显示器号
X协议 默认端口 : 6000 显示器号
vncserver使用的显示器编号默认从1开始, 依次使用, 也可以参数指定端口号
我们只需要RFB协议就可以了,所以我们把5800 6000这两种端口关掉。
需要修改/etc/sysconfig/vncservers
在参数后面加上:
-nohttpd 不监听HTTP端口

-nolisten tcp 不监听X端口

5. Windows登陆到VNC Server

(1).从IE登录
直接从IE浏览器中输入如下地址:
http://xxx.xxx.xxx.xxx:5801 输入密码即可使用。
(2).从VNC view登录
在windows上安装vnc view,然后输入xxx.xxx.xxx.xxx:1,连接登录,输入密码即可。
备注:如果从vnc view登录时,提示connection refused(10061),则是因为linux防火墙的问题,登录centos系统,选择 System-->Preferences-->Remote Desktop,勾选sharing中的两项,Security两项不勾,点击关闭,然后再重新用vnc view登录即可。