1. 安装VNC

在CentOS/Redhat6.0以上版本,VNCServer软件包的名称为:

tigervnc-1.1.0-5.el6.x86_64.rpm

tigervnc-server-1.1.0-5.el6.x86_64.rpm

安装VNC Server与其它RPM软件包一样,可以使用以下命令安装:

  • 切换目录至RPM软件包所在目录:

#rpm -ivh tigervnc-1.1.0-5.el6.x86_64.rpm

#rpm -ivh tigervnc-server-1.1.0-5.el6.x86_64.rpm

  • 使用yum 安装VNC:

#yum install tigervnc

#yum install tigervnc-server

2. 启动VNC服务

使用vncserver命令启动vnc服务,命令格式为"vncserver :桌面号",其中桌面号用数字的方式表示,每个用户vnc连接需要占用1个桌面

启动桌面号为1的桌面示例如下:

[root@tstlcn026 ~]# vncserver :1

You will require a password to access your desktops.

Password: <==输入 VNC 的联机密码,这是建立 VNC 时所需要的

Verify: <==再输入一次相同的密码

xauth: creating new authority file /root/.Xauthority

New 'tstlcn026:1 (root)' desktop is tstlcn026:1

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/tstlcn026:1.log

在上述的指令操作中,你要知道的几个项目是:

  • 密码至少需要六个字符

  • 依据使用 vncserver 的身份,将刚刚建立的密码放置于该账号家目录下。例如上述的身份是使用 root 身份,因此密码文件会放在 /root/.vnc/passwd 这个档案中但是若该档案已经存在,则不会出现建立密码的画面。

  • 当客户端联机成功后,服务器将会传送 /root/.vnc/startx 内的 X client 给客户端喔!

VNC启动完毕,可以使用netstat命令查询并验证VNC端口

[root@tstlcn026 ~]# netstat -tulnp | grep X

tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 6107/Xvnc

tcp 0 0 0.0.0.0:5902 0.0.0.0:* LISTEN 7421/Xvnc

tcp 0 0 0.0.0.0:5903 0.0.0.0:* LISTEN 7494/Xvnc

tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 6107/Xvnc

tcp 0 0 0.0.0.0:6002 0.0.0.0:* LISTEN 7421/Xvnc

tcp 0 0 0.0.0.0:6003 0.0.0.0:* LISTEN 7494/Xvnc

tcp 0 0 :::6001 :::* LISTEN 6107/Xvnc

tcp 0 0 :::6002 :::* LISTEN 7421/Xvnc

tcp 0 0 :::6003 :::* LISTEN 7494/Xvnc

3. VNC服务使用的端口号与桌面号的关系

VNC服务使用的端口号与桌面号相关,VNC使用TCP端口从5900开始,对应关系如下

桌面号为“1” ---- 端口号为5901

桌面号为“2” ---- 端口号为5902

桌面号为“3” ---- 端口号为5903

……

基于上面的介绍,如果Linux开启了防火墙功能,就需要手工开启相应的端口,或者关闭防火墙服务。

以开启桌面号为“1”相应的端口为例,命令如下

[root@tstlcn026 ~]# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT

4. 测试VNC服务

第一种方法是使用VNC Viewer软件登陆测试,操作流程如下

启动VNC Viewer软件 --> Server输入“服务器名或IP地址:1” --> 点击“OK” --> Password输入登陆密码 --> 点击“OK”登陆到X-Window图形桌面环境 --> 测试成功

5. 配置VNC图形桌面环境为GNOME桌面环境

如果您是按照我的上面方法进行的配置的,登陆到桌面后效果是非常简单的,只有一个Shell可供使用,因为VNC服务默认使用的是twm图形桌面环境的,可以在VNC的配置文件xstartup中对其进行修改,先看一下这个配置文件

[root@tstlcn026 .vnc]# vim xstartup

#!/bin/sh

[ -r /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n

export LANG

export SYSFONT

vncconfig -iconic &

unset SESSION_MANAGER

unset DBUS_SESSION_BUS_ADDRESS

OS=`uname -s`

if [ $OS = 'Linux' ]; then

case "$WINDOWMANAGER" in

*gnome*)

if [ -e /etc/SuSE-release ]; then

PATH=$PATH:/opt/gnome/bin

export PATH

fi

;;

esac

fi

if [ -x /etc/X11/xinit/xinitrc ]; then

exec /etc/X11/xinit/xinitrc

fi

if [ -f /etc/X11/xinit/xinitrc ]; then

exec sh /etc/X11/xinit/xinitrc

fi

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

xsetroot -solid grey

xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &

twm &

将这个xstartup文件的最后一行修改为“gnome-session &”,再重新启动vncserver服务后就可以登陆到GNOME桌面环境

重新启动vncserver服务的方法:

[root@tstlcn026 ~]# vncserver -kill :1

[root@tstlcn026 ~]# vncserver :1

6. 配置多个桌面

VNC命令参数:

[root@tstlcn026 ~]## vncserver [:号码] [-geometry 分辨率] [options]

[root@tstlcn026 ~]# vncserver [-kill :号码]

选项与参数:

:号码 :就是将 VNC server 开在哪个端口,如果是 :1 则代表 VNC 5901 埠口

-geometry :就是分辨率,例如 1024x768 或 800x600 之类的

options :其他 X 相关的选项,例如 -query localhost 之类的

-kill :将已经启动的 VNC 端口删除!依据身份控制喔。


可以使用如下的方法启动多个桌面的VNC

vncserver :1

vncserver :2

vncserver :3

……

但是这种手工启动的方法在服务器重新启动之后将失效,因此,下面介绍如何让系统自动管理多个桌面的VNC,方法是将需要自动管理的信息添加到/etc/sysconfig/vncservers配置文件中,先以桌面1为root用户桌面2为user1用户为例进行配置如下:

格式为:VNCSERVERS="桌面号:使用的用户名 桌面号:使用的用户名"

[root@tstlcn026 ~]# vim /etc/sysconfig/vncservers

VNCSERVERS="1:root 2:user1"

VNCSERVERARGS[1]="-geometry 1024x768"

VNCSERVERARGS[2]="-geometry 1024x768"

7. 修改VNC访问的密码

使用命令vncpasswd对不同用户的VNC的密码进行修改,一定要注意,如果配置了不同用户的VNC需要分别到各自用户中进行修改,例如在我的这个实验中,root用户和user1用户需要分别修改,修改过程如下:

[root@tstlcn026 .vnc]# vncpasswd

Password:

Verify:

[root@tstlcn026 .vnc]#

8. 启动和停止VNC服务

1)启动VNC服务命令

[root@tstlcn026 ~]# service vncserver start

2)停止VNC服务命令

[root@tstlcn026 ~]# service vncserver stop

3)重新启动VNC服务命令

[root@tstlcn026 ~]# service vncserver restart

4)设置VNC服务随系统启动自动加载

使用“chkconfig”在命令行模式下进行操作,命令使用如下(预知chkconfig详细使用方法请自助式man一下)

[root@tstlcn026 ~]# chkconfig vncserver --list

vncserver 0:off 1:off 2:off 3:off 4:off 5:off 6:off

[root@tstlcn026 ~]# chkconfig vncserver on

9. 小结

VNC的详细配置方法到此已经写完,希望能对大家有帮助。