关于在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>.
# doing so through a secure tunnel. See the "-via" option in the # `man vncviewer' manual page.
# 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
Log file is /root/.vnc/localhost.localdomain:1.log
关闭该服务的命令为 [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的端口。
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
# unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc
[ -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桌面,成功解决灰屏问题。 |