[root@localhost ~]# rpm –qa | grep vnc
如果有返回值,类似于vnc-server-的值,说明已经安装了vnc-server
网上大都搜到的方法是输入
[root@localhost ~]# yum install tigervnc-server
但是在我们的环境中执行时却提示:No package tigervnc-server available.
所以只能采用另一种办法,就是先执行
[root@localhost ~]# yum search vnc
在返回结果中找到可用的包,再相应执行对应的包即可。
[root@localhost ~]# yum install 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默认值,要密码认证
上一步配置好配置文件之后,我们要用vncpasswd来设置vnc连接时候的认证密码。
[root@localhost ~]# vncpasswd
Password:
Verify:
注意,这里的vncpass只能在vnc本用户下面来运行。比如要是想配置用户名为oracle的vnc认证密码,需要先切换到oracle用户,之后再运行vncpasswd命令。
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ vncpasswd
Password:
Verify:
以上介绍了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
尽管以上过程已经完成,并且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这个端口为基础的,这个应该是可以更改的,不过得改源代码。
有人可能遇到这种情况,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的过程,希望能减少大家在做此类配置时的麻烦。有问题之处还请指出,谢谢。