首页 > 代码库 > VNC的安装与配置

VNC的安装与配置

VNC(Virtual Network Computing)虚拟网络计算工具,它是一个桌面共享系统。它的功能类似于windows中的远程桌面功能。VNC使用了RFB(Remote Frame Buffer,远程帧缓冲)协议来实现远程控制另外一台计算机。它把键盘、鼠标动作发送到远程计算机,并把远程计算机的屏幕发回到本地。下面介绍VNC的安装与配置:

 

#Step 1 键入下面命令来检查vnc客户端和服务器是否已经安装在你的系统中:

[tchung@tchung101 tchung]$ rpm –q vnc

如果出现下面语句,转到#Step 4。如果没出现,顺序执行。
vnc-server
vnc-4.0-0.beta4.3.2
vnc-server-4.0-0.beta4.3.2
[tchung@tchung101 tchung]$

若机器没有安装图形界面,先在线安装!口令如下:(前提:能上网)
[root@sb1 ~]# yum groupinstall "GNOME Desktop Environment"

#Step 2: 准备VNC包

(在操作系统安装盘的Server目录下找到两个这样的包,或者去VNC官网http://www.realvnc.com/下载对应的VNC软件版本)
准备两个包:

vnc-4.1.2-9.el5.i386.rpm 或  vnc-4.1.2-14.el5.i386.rpm

vnc-server-4.1.2-9.el5.i386.rpm或vnc-server-4.1.2-14.el5.i386.rpm

 

#Step 3: 安装VNC包

进root用户,cd到这两个包的存放路径,执行如下操作: 

# rpm -ivh vnc-4.1.2-9.el5.i386.rpm

# rpm -ivh vnc-server-4.1.2-9.el5.i386.rpm

或者#rpm -ivh vnc-E4_4_3-x86_linux.rpm
     #rpm -Uvh vnc-E4_4_3-x86_linux.rpm

(如果服务器已经安装过VNC,用这个命令升级安装)
如果下载的是企业版,要正常使用需要输入序列号。
    #vnclicense -add XXXXX-XXXXX-XXXXX-XXXXX-XXXXX    (输入序列号)

#step 4配置文件

#vi /etc/sysconfig/vncservers  --添加以下几行,保存并退出

设置3个用户:root, cheny, yesd

VNCSERVERS="1:root 2:cheny 3:yesd" (以下设置分辨率 可以不加 系统默认)

VNCSERVERARGS[1]="-geometry 1024x768 –alwaysshared -depth 16"

VNCSERVERARGS[2]="-geometry 1024x768 –alwaysshared -depth 16"

VNCSERVERARGS[3]="-geometry 1024x768 –alwaysshared -depth 16"

 

其中-alwaysshared表示允许多终端同时登录,-depth指颜色分辨率,可以是8,16,24,32。

 

#Step 5(逐个用户运行vncserver,它将完成两项工作:

1.为用户创建所需.vnc 文件夹;

2.用户设置登录密码 (如需要修改密码用vncpasswd)

由于系统远程桌面中默认的是console模式,用户要是想使用图像界面的话,则需激活:unset SESSION_MANAGER和exec /etc/X11/xinit/xinitrc。)

 

1、启动VNC SERVER(root用户)

输入vncserver,第一次启动会要求输入验证密码,完成后VNC SERVER就启动了。

[root@localhost ~]# vncserver

写道:You will require a password to access your desktops
    Password:            //输入密码
    Verify:                  //再次输入密码
    xauth:  creating new authority file /root/.Xauthority
    New ‘localhost.localdomain:1 (root)’ desktop is localhost.localdomain:1
    Creating default startup script /root/.vnc/xstartup
    Starting applications specified in /root/.vnc/xstartup
    Log file is /root/.vnc/localhost.localdomain:1.log
    [root@localhost ~]#

2、编辑.vnc/xstartup

cd cd.. cd username cd .vnc vi xstartup
使用vi打开xstartup文件,如下:

激活图像界面:

unset SESSION_MANAGER

exec /etc/X11/xinit/xinitrc

其余行注释掉。

#!/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" &
#gnome-session &

#kdestart &
#twm &

也有不要求注释掉exec /etc/X11/xinit/xinitrc下面一行开始所有部分。从这段shell sripts来看,仅仅是测试文件是否存在及属性设置及后面部分是设置成twm桌面的参数。所以只要保证
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
这两行不被注释就可以。这样设置后,远程连接显示桌面为个人Xwindows默认桌面登录环境。比如你设置登录环境为gnome桌面,则远程连接为gnome桌面。如果想更换桌面环境。可以注释掉xstartup中所有的行,在最后增加startkde & ,你就可以用kde来代替twm,速度会慢少少,但用起来方便不少,也可以用gnome-session & 来启动gnome。


cheny和其他用户同上

对每个需要使用远程桌面的用户都使用上述方法进行修改。

如何切换到其他用户命令如下

su

su – username (su - cheny)找到username文件夹后同上。

2、重启动VNC SERVER

关闭VNC SERVER服务(还可以设置一些高级设置)

[root@localhost ~]# vncserver -kill :1 (kill和:1之间有一个空格)

Killing Xvnc process ID 21198

[root@localhost ~]# vncserver

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

vncserver启动及停止相关
启动# /sbin/service vncserver start
关闭# /sbin/service vncserver stop

 

#Step 6查看VNC的监听端口

如下,VNC用到了三个端口:5801、5901、6001。

[root@localhost /]# netstat –nat

写道:
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State
    tcp        0      0 127.0.0.1:2208              0.0.0.0:*                   LISTEN
    tcp        0      0 0.0.0.0:5801                0.0.0.0:*                   LISTEN
    tcp        0      0 0.0.0.0:5901                0.0.0.0:*                   LISTEN
    tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
    tcp        0      0 0.0.0.0:6001                0.0.0.0:*                   LISTEN
    tcp        0      0 0.0.0.0:724                 0.0.0.0:*                   LISTEN
    tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN
    tcp        0      0 127.0.0.1:2207              0.0.0.0:*                   LISTEN
    tcp        0      0 172.200.102.3:5901          181.181.181.51:1669         ESTABLISHED
    tcp        0      0 :::6001                     :::*                        LISTEN
    tcp        0      0 :::22                       :::*                        LISTEN
    tcp        0   1364 ::ffff:172.200.102.3:22     ::ffff:181.181.181.51:1599  ESTABLISHED
    [root@localhost /]#

#Step 7:在防火墙上打开VNC用到的上面三个端口
以root权限修改/etc/sysconfig/iptables

[root@localhost /]# cd /etc/sysconfig

[root@localhost sysconfig]# vi iptables

打开后修改到与下面一样
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5903 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5904 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5905 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5906 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5907 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5908 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5909 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5910 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5911 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5912 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

注意红色部分为新增加的内容!

 

重启动iptables:
[root@localhost sysconfig]# /etc/rc.d/init.d/iptables restart

写道:

Flushing firewall rules: [  OK  ]
    Setting chains to policy ACCEPT: filter [  OK  ]
    Unloading iptables modules: [  OK  ]
    Applying iptables firewall rules: [  OK  ]
   (Loading additional iptables modules: ip_conntrack_netbios_ns ip_conntrack_ftp [  OK  ])
    [root@localhost sysconfig]#

 

#Step 8:设置开机自启动

以root用户输入 ntsysv  在开机启动项里选中vncserver(空格)按Tab键确定保存即可。

 

VNC Server VNC Viewer的登录

使用VNC VIEWER连接VNC SERVER
   下载VNC VIEWER运行,然后输入IP:端口号,输入刚才设定的密码,进入REDHAT桌面。

注:如果在浏览器中通过web方式访问VNC则 端口为:5801,如果通过VNC客户端(比如VNC Viewer)来访问VNC则端口为:5901。

VNC的安装与配置