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。