[置顶] Redhat 6.0中VNC Server的配置方法

关于在Linux系统中配置VNC Server的方法,网上有很多的教程或者文章,但应用在我们的环境中时都不能完整解决我们的问题,所以这里我将在Redhat 6.0中配置VNC Server中的方法,以及可能遇到问题的解决办法总结在这里,供大家参考。

1、 查询系统是否安装vnc-server

[root@localhost ~]# rpm –qa | grep vnc

如果有返回值,类似于vnc-server-的值,说明已经安装了vnc-server


2、 安装vnc-server

网上大都搜到的方法是输入

[root@localhost ~]# yum install tigervnc-server

但是在我们的环境中执行时却提示:No package tigervnc-server available.

所以只能采用另一种办法,就是先执行

[root@localhost ~]# yum search vnc

在返回结果中找到可用的包,再相应执行对应的包即可。

[root@localhost ~]# yum install vnc-server


3、 配置vnc-server的配置文件

输入

[root@localhost ~]# vi /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="2:myusername"

# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"

按照注释的说明就可以知道该如何配置了。

在文件最后加上

VNCSERVERS="1:root"

这样即完成了root用户的配置,VNCSERVERARGS参数这一行可以不进行设置。

这里有两点要注意:

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默认值,要密码认证


4、 设定VNC连接密码

上一步配置好配置文件之后,我们要用vncpasswd来设置vnc连接时候的认证密码。

[root@localhost ~]# vncpasswd

Password:

Verify:

注意,这里的vncpass只能在vnc本用户下面来运行。比如要是想配置用户名为oracle的vnc认证密码,需要先切换到oracle用户,之后再运行vncpasswd命令。

[root@localhost ~]# su - oracle

[oracle@localhost ~]$ vncpasswd

Password:

Verify:


5、 启动vncserver

以上介绍了VNC Server的安装以及配置过程,下面介绍对该服务的常规管理方法。

[root@localhost ~]# service vncserver start

Starting VNC server: 1:root

New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1


Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/localhost.localdomain:1.log


[ OK ]

关闭该服务的命令为

[root@localhost ~]# service vncserver stop

也可以通过以下命令查看vncserver的运行状态

[root@localhost ~]# service vncserver status

这里,将vncserver设置为开机默认启动。

[root@localhost ~]# chkconfig vncserver on


6、 防火墙配置

尽管以上过程已经完成,并且vncserver服务也启动,但却还是连不上,这时,可能的原因就是该请求被防火墙屏蔽了。所以这里介绍下防火墙的配置方法。

vnc服务运行时,使用netstat -antpl查看可以发现有三个端口在监听。

5901 5801 6001

默认的,vnc 服务监听3个TCP端口

RFB(Remote FrameBuffer)协议 默认端口:5900+显示器号

HTTP协议默认端口:5800+显示器号

X协议 默认端口:6000+显示器号

vncserver使用的显示器编号默认从1开始,依次使用,也可以参数指定端口号。

因为我们需要建立远程连接,所以只需要RFB协议就可以了。

下面介绍配置防火墙的过程。

[root@localhost ~]# vi /etc/sysconfig/iptables

文件内容为

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

按照/etc/sysconfig/vncservers文件中的配置,我们需要打开5901的端口号,只需在

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

下面加入一行

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT

即开启了5901的端口。


当使用VNC-Viewer进行连接时,

192.168.10.131:1——这里的:1就是端口号,指的是5900+1,这个1是在/etc/sysconfig/vncservers里面指定的,这个数字在100以下,不含100的时候可以直接用192.168.10.131:1来表示,如果在vncservers里面指定的数值大于100 包含100的时候,在连接的时候就需要用到完整的端口数值。如:在vncservers里面指定的是100,那么在连接的时候就应该是这样的:192.168.10.131:6000

vnc里面默认是以5900这个端口为基础的,这个应该是可以更改的,不过得改源代码。


7、 配置VNC图形桌面环境为KDE或GNOME桌面环境

有人可能遇到这种情况,vnc都配置完毕并且正常运行,但是用VNC-Viewer登录后显示的屏幕却为灰色(也有黑色的),并且无法进行任何操作,这是什么原因呢。(遇上了是你的不幸,需要好好阅读下面的内容并进行配置。没遇上你也别幸灾乐祸,搞清楚原理,有备无患。)

原来VNC xstartup程序中默认的设定值是启动twm,而不是GNOME或KDE。

所以需要对xstart文件做小小的修改,

[root@localhost ~]# vi .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 &

我在设置时是将最后两行注释掉并且加上

gnome-session &

之后再重启vncserver

[root@localhost ~]# service vncserver restart

再次登录VNC-Viewer,出现了可爱的Redhat桌面,成功解决灰屏问题。


以上是个人在Redhat 6.0中配置VNC Server的过程,希望能减少大家在做此类配置时的麻烦。有问题之处还请指出,谢谢。


你可能感兴趣的:([置顶] Redhat 6.0中VNC Server的配置方法)