> CentOS > CentOS入门 >

CentOS安装配置VNC 无错版

一、检查是否安装了VNC的服务端和客户端

[root@localhost ~]# rpm –q vnc vnc-server

使用如上命令查看是否安装VNC的服务端和客户端。如果显示如下,说明已经安装

[root@tenjak-250 ~]# rpm -q vnc vnc-server

vnc-4.1.2-14.el5_5.4

vnc-server-4.1.2-14.el5_5.4

如果什么都没显示说明没有安装,则需要安装

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

二、配置VNC

1、  切换到想启动VNC服务的用户下执行vncserver,启动VNC并在该用户家目      录里面生成远程桌面配置文件,这里就以root用户为例

需要在每个用户下启动vncserver,生成该用户远程桌面连接时的配置文件以及访问密码,方法就是切换到每个用户,执行 vncserver。
(注释:在启动VNCserver时,你也可以为server指定一个display参数。你可以把display理解为一个桌面,每个用户都可以有自己的桌面。VNC客户端在连接时,可以指定连接到哪个桌面上。在系统中,display号不能重复,也就是说,如果有用户已经建立了名为“:1”的display,另外一个用户就不能再使用“:1”了,他可以使用“:2”。指定display号码的启动VNC server的命令是:   vncserver : 1)

[root@localhost ~]# vncserver         //运行vncserver。

You will require a password to access your desktops.

enter password:    //首次运行会让你设置密码,密码要求6位以上

verify password:    //确认密码

xauth: creating new authority file /root/.Xauthority        #首次运行会生成本用户的相关配置文件,以及日志文件,生成位置在~.vnc/目录下

New 'CPAYNET005:1 (root)' desktop is CPAYNET005:1 注意这个数字1

Creating default startup script /root/.vnc/xstartup

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/CPAYNET005:1.log     #注意这个数字

[root@localhost ~]# vncserver   -kill   :1    #杀死刚才运行的vncserver,数字1正是上面1.log那个1。注意上面红色字体。这个方法也可以

[root@localhost ~]# vi ~/.vnc/xstartup       #编辑这个配置脚本文件,配置使远程登录为gnome或者kde桌面。

[cpp] view plaincopy
 
  1. #!/bin/sh  
  2.   
  3. # Uncomment the following two lines for normal desktop:  
  4. #unset SESSION_MANAGER  
  5. #e xec /etc/X11/xinit/xinitrc  
  6.   
  7. [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup  
  8. [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources  
  9. xsetroot -solid grey  
  10. vncconfig -iconic &  
  11. #xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &  
  12. gnome-session & #set starting GNOME desktop  
  13. #startkde & #kde desktop  
  14. #twm & #Text interface  


 

 

如果还要为其它的用户名配置vnc,方法同上,只需要改一下端口号就行

2.接下来编辑vnc的配置文件

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

以下是文件内容:

[cpp] view plaincopy
 
  1. #  
  2. # Uncomment the line below to start a VNC server on display :1  
  3. # as my 'myusername' (adjust this to your own). You will also  
  4. # need to set a VNC password; run 'man vncpasswd' to see how  
  5. # to do that.  
  6. #  
  7. # DO NOT RUN THIS SERVICE if your local area network is  
  8. # untrusted! For a secure way of using VNC, see  
  9. # .  
  10.   
  11. # VNCSERVERS="1:myusername"  
  12.   
  13. # VNCSERVERS="1:gavin 2:john" # use the method for more user  
  14. VNCSERVERS="1:root "  
  15.   
  16. VNCSERVERARGS[1]="-geometry 1024x768"  


 

 

解释一下这个文件:
VNCSERVERS这一行是配置在系统启动时启动几个VNC server,上面的例子里运行了一个VNC server,root在display:1 VNCSERVERARGS这行,为VNC server 1配置启动参数,上面的例子里对root使用屏幕分辨率1024×768。

设置完成后就可以启动vncserver服务了。

[root@localhost~]#/sbin/service vncserver restart  防止VNC已经启动,我们用重新启动的命令以防万一

启动失败的原因有:

1./etc/sysconfig/vncservers文件参数不对

2.没有为vncservers提到的用户生成各自的配置文件

3.在生成配置文件后,没有使用命令vncserver -kill :1 将那个进程杀死

 

--------------------------------------------------------------------------------------------------------------------

3. 如果连不通,需要配置一下防火墙,允许VNC客户端连接VNC server。 (此步不一定要

VNC server监听的端口从5900开始,display:1的监听5901,display:2监听5902,以此类推。CentOs的防火墙缺省是不允许连接这些端口的,所以需要使用下面的步骤打开防火墙(需要root权限):

 

vi /etc/sysconfig/iptables  

vi /etc/sysconfig/iptables 找到下面的语句:

-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited

在此行之前,加上下面的内容:

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 5900:5903 -j ACCEPT

这句话的含义是,允许其它机器访问本机的5900到5903端口,这样,display:1, display:2, display:3的用户就可以连接到本机。

然后使用root身份重新启动防火墙:

[root@localhost~]#/sbin/service iptables restart

[root@localhost~]#/sbin/service iptables restart

(注:如果是用做实验的机器,可以干脆用/sbin/service iptables stop来关掉防火墙)

好了,现在就可以运行客户端软件,连接到VNC server上了。
VNC客户端软件很多,在linux下有vncviewer,KDE还提供了一个krdc(它的菜单项就是”Remote Desktop Connection”,远程桌面连接)。
在window也有不少vnc客户端,你可以到http://www.realvnc.com/去下载一个,安装就可以用了。

假设VNC server的IP地址是192.168.1.1,display是:1。在VNC viewer的server栏中输入:“192.168.1.1:1”,然后连接。OK,你可以看到自己的桌面了。

a、在linux下,运行vncviewer命令即可,服务器地址的写法形如192.168.3.119:1
b、在windows下,运行windows版本的vncviewer即可,用法与linux下相近。
c、用浏览器(平台无关),作为java applet来实现,以形如http://192.168.3.119:5801的方式来启动   (vnc端口从5800开始依次类推,一般会是5800,5900)

 ------------------------------------------------------------------------------------

4.设置vncserver为自动启动服务  (此步不一定要
如果server重启了,那你就需要重新运行一次vncserver命令来启动VNC server,这很麻烦。有没有更好的方法呢?

有!我们可以把VNC server启动成后台服务。四种方法,我使用的是第三种方法C:

A方法:

执行如下步骤:

首先要允许VNC server在系统启动过程中被启动。这可以通过“系统设置–>服务器设置–>服务”菜单来配置,把vncserver一项选上就可以了。
B方法:

如果使用命令行的话,以root身份运行以下两条命令:

cd    / etc / rc5 . d  

cd / etc / rc5 . dmv K35vncserver S35vncserver

编辑好这个文件后,保存,然后以root身份运行:

以后每次系统重启时,都会自动启动这三个用户的vncserver。

注意:上面三个用户必须已经使用vncpasswd命令设置过vnc密码,不然他的vncserver启动会失败!

C方法:

            [root@localhost ~]# chkconfig vncserver on

D方法:

           把这行命令/etc/init.d/vncserver start加到/etc/rc.local启动项里。

 

----------------------------------------------------
5.查看vnc启动情况

 

重启vncserver
# /sbin/service vncserver restart

Shutting down VNC server: 1:gavin [ OK ]
Starting VNC server: 1:gavin    

 

netstat -tulnp

 

6.登陆VNC方法:

Windows登陆到VNC Server

(1).从IE登录

 

直接从IE浏览器中输入如下地址:

 

http://xxx.xxx.xxx.xxx:5801  上面查出来的 

 

输入密码即可使用。

成功进入界面

 

(2).从VNC view登录

 

在windows上安装vnc view,然后输入xxx.xxx.xxx.xxx:1,连接登录,输入密码即可。

备注:如果从vnc view登录时,提示connection refused(10061),则是因为linux防火墙的问题,登录centos系统,选择System-->Preferences-->Remote Desktop,勾选sharing中的两项,Security两项不勾,点击关闭,然后再重新用vnc view登录即可。



(责任编辑:IT)