2024年2月21日发(作者:)

Linux下VNC的安装和开机启动

1.确认VNC是否安装

默认情况下,Red Hat Enterprise Linux安装程序会将VNC服务安装在系统上。

确认是否已经安装VNC服务及查看安装的VNC版本

[root@testdb ~]# rpm -q vnc-server

5

[root@testdb ~]#

若系统没有安装,可以到操作系统安装盘的Server目录下找到VNC服务的RPM安装包5.x86_,安装命令如下

rpm -ivh /mnt/Server/5.x86_

2.启动VNC服务

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

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

[root@testdb ~]# vncserver :1

You will require a password to access your desktops.

Password:

Verify:

xauth: creating new authority file /root/.Xauthority

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

Creating default startup script. /root/.vnc/xstartup

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/testdb:

以上命令执行的过程中,因为是第一次执行,需要输入密码,这个密码被加密保存在用户主目录下的.vnc子目录(/root/.vnc/passwd)中;同时在用户主目录下的.vnc子目录中为用户自动建立xstartup配置文件(/root/.vnc/xstartup),在每次启动VND服务时,都会读取该文件中的配置信息。

BTW:/root/.vnc/目录下还有一个“testdb:”文件,这个文件记录着启动VNC后对应后天操作系统的进程号,用于停止VNC服务时准确定位进程号。

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

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

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

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

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

……

基于Java的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

4.测试VNC服务

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

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

第二种方法是使用Web浏览器(如Firefox,IE,Safari)登陆测试,操作流程如下

地址栏输入144.194.192.183:5801/ --> 出现VNC viewer for Java(此工具是使用Java编写的VNC客户端程序)界面,同时跳出VNC viewer对话框,在Server处输入“144.194.192.183:1”点击“OK” --> Password输入登陆密码 --> 点击“OK”登陆到X-Window图形桌面环境 --> 测试成功

(注:VNC viewer for Java需要JRE支持,如果页面无法显示,表示没有安装JRE,可以到/javase/downloads/index_这里下载最新的JRE进行安装)

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

如果您是按照我的上面方法进行的配置的,登陆到桌面后效果是非常简单的,只有一个Shell可供

使用,这是为什么呢?怎么才能看到可爱并且美丽的KDE或GNOME桌面环境呢?回答如下

之所以那么的难看,是因为VNC服务默认使用的是twm图形桌面环境的,可以在VNC的配置文件xstartup中对其进行修改,先看一下这个配置文件

[root@testdb ~]# 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" &

twm &

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

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

重新启动vncserver服务的方法:

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

[root@testdb ~]# vncserver :1

6.配置多个桌面

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

vncserver :1

vncserver :2

vncserver :3

……

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

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

[root@testdb ~]# vi /etc/sysconfig/vncservers

VNCSERVERS="1:root 2:oracle"

VNCSERVERARGS[1]="-geometry 1024x768"

VNCSERVERARGS[2]="-geometry 1024x768"

7.修改VNC访问的密码

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

[root@testdb ~]# vncpasswd

Password:

Verify:

[root@testdb ~]#

8.启动和停止VNC服务

1)启动VNC服务命令

[root@testdb ~]# /etc/init.d/vncserver start

Starting VNC server: 1:root

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

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/testdb:

2:oracle

New 'testdb:2 (oracle)' desktop is testdb:2

Starting applications specified in /home/oracle/.vnc/xstartup

Log file is /home/oracle/.vnc/testdb:

2)停止VNC服务命令

[root@testdb ~]# /etc/init.d/vncserver stop

Shutting down VNC server: 1:root 2:oracle

3)重新启动VNC服务命令

[root@testdb ~]# /etc/init.d/vncserver restart

Shutting down VNC server: 1:root 2:oracle

Starting VNC server: 1:root

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

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/testdb:

2:oracle

New 'testdb:2 (oracle)' desktop is testdb:2

Starting applications specified in /home/oracle/.vnc/xstartup

Log file is /home/oracle/.vnc/testdb:

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

第一种方法:使用“ntsysv”命令启动图形化服务配置程序,在vncserver服务前加上星号,点击确定,配置完成。

第二种方法:设置vncserver启动脚本(/etc/init.d/vncserver)实现系统自启动时启动vncserver.

# 在/etc/rc.d/文件中加入下面行

/etc/init.d/vncserver start

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

[root@testdb ~]# chkconfig vncserver on

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

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

VNC Server配置

redhat 一般都自动安装了vncserver了 只要在服务列表中选中启动一下就可以.

通过编辑文件$HOME/.vnc/xstartup来启动你喜欢的窗口管理器。使用

startkde & 来启动KDE,使用 gnome-session & 来启动GNOME.

使用vncserver命令为当前用户启动vnc服务(将在当前用户主目录下生成.vnc配置文件夹)

[root@tech ~]# vncserver

You will require a password to access your desktops.

Password:

Verify:

New '

:1

(root)' desktop is

:1

Creating default startup script /root/.vnc/xstartup

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/:

首 次创建 ~/.vnc/xstartup 时,指定的窗口管理器是 twm ,它是一个极小的窗口管理器,几乎每台 X Window 系统机器上都有 twm。twm 不具备完整“桌面管理器”(象 KDE、GNOME 或

WindowMaker)的大部分花哨功能。下面是修改过的示例:

[root@tech ~]# vi .vnc/xstartup

#!/bin/sh

[ -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 wmaker

#exec startkde

gnome-session &

上面的示例中,注释掉了缺省 twm 和 xterm 的缺省启动。配置了这个桌面来避免背景和标题栏上的颜色渐变,并使用极少的动画效果。

关闭服务器上自己的vnc连接

vncserver -kill :桌面号

例如:关闭上面的vnc连接

vncserver -kill :1

开机自动运行vncserver

1.设置vncserver启动脚本(/etc/init.d/vncserver)实现系统自启动时启动vncserver.

# 在/etc/rc.d/文件中加入下面行

/etc/init.d/vncserver start

#也可以用chkconfig命令实现系统自启动时启动vncserver

[root@tech ~]# chkconfig --level 2345 vncserver on

2.编辑/etc/sysconfig/vncservers

VNCSERVERS="1:root"

VNCSERVERARGS[1]="-geometry 1024x768"

在ARGS 中修改"1024x768"来适应自己的X桌面实际参数配置。可以在这里添加任何其他VNC服务器参数配置。在VNCSERVERS中修改 root 为你希望运行VNC桌面的用户。VNCSERVERS中的1表示VNC以桌面1运行,如果希望添加其他的桌面,可以修改配置如下:

VNCSERVERS="1:user1 2:user2 3:user3"

3.设置vnc server的访问密码

vncpasswd

在RedHat系统上,使用以下命令启动VNC:

/etc/init.d/vncserver start

查看vnc启动情况

[root@tech ~]# netstat -tulnp