使用VNC Server连接Linux图形界面
对于目前的企业应用操作系统而言,Unix和Linux应该是占到主流地位。无论是管理员还是开发人员,都已能操作一手流利的字符命令行“为荣”。虽然经过若干年的改进优化,Linux GUI图形界面无论是操作性上还是运行效率上,都有了很大进步,但是字符命令行界面操作方式,依然是服务器的主流。
但是,很多时候,我们又不能避免使用GUI界面。比如在安装Oracle的时候,如果不使用图形界面,就只能使用slient模式配合response file,配置复杂而且很不方便。这个时候,有一个图形界面还是很方便的。
和桌面PC不同,我们访问服务器一般都是通过命令行远程登录连接,如ssh协议等,直接图形桌面只能到“高辐射”的机房去使用。怎么样能够在远程使用到Linux的GUI界面?
比较常见的是两个方案,XWindows软件和VNC Server远程联入。XWindows产品的典型代表是XManager,这个软件套件中包括了很多系统运维人员常用的远程登录和FTP工具。最重要的软件是其中的Passive模式,启动该模式之后,配合DISPLAY环境变量,就可以接受远程Unix/Linux传入的图形信息。VNC Server是另一种轻量级的解决方案,相对于XManager收费软件,VNC Server是一种不错的选择。
本文主要介绍一下在Oracle安装过程中VNC Server的配置过程。
相关阅读:
1、VNC Server基本配置
VNC Server是Linux一个后台服务项目,当前的Linux版本很多时候都是默认安装这个服务的。我们可以通过rpm –qa进行检查。
[root@bspdev ~]# rpm -qa vnc
vnc-4.1.2-14.el5_6.6
如果没有查到这个结果,说明vnc没有安装上。可以从Linux安装盘上找到对应的rpm包,使用rpm –ivh命令安装。
在确定安装之后,可以针对一个特定的用户(当前用户)远程联入时候的桌面,我们称为“桌面”。
[root@bspdev ~]# vncserver :1
You will require a password to access your desktops.
Password:
Verify:
New 'bspdev.localdomain:1 (root)' desktop is bspdev.localdomain:1
Creating default startup script. /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/bspdev.localdomain:1.log
密码部分,要对这个用户(root)使用vncserver联入的时候设置一个密码。联入过程中的一些参数,都在/root/.vnc/xstartup文件中进行配置。
启动之后,我们可以在后台看到vncserver启动的进程信息。
[root@bspdev ~]# ps -ef | grep vnc
root 3282 1 0 05:46 pts/0 00:00:00 Xvnc :1 -desktop bspdev.localdomain:1 (root) -httpd /usr/share/vnc/classes -auth /root/.Xauthority -geometry 1024x768 -depth 16 -rfbwait 30000 -rfbauth /root/.vnc/passwd -rfbport 5901 -pn
root 3291 1 0 05:46 pts/0 00:00:00 vncconfig -iconic
root 3318 3244 0 05:47 pts/0 00:00:00 grep vnc
vncserver也是在主机host的特定端口进行等待联入。一个VNC Server能够开启多个桌面,分别使用:1,:2来表示。每个桌面对应不同的端口。
客户端连接的时候,VNC Server可以支持两种类型的客户端。一种是Windows的客户端,通常是绿色软件。另一种是基于Web浏览器的Java客户端。
在联入的时候,要注意端口的使用。VNC使用TCP端口从5900开始,桌面1对应5901端口,桌面2对应5902端口,依次排序。
如果使用Java Web浏览器的方式,端口则是从5800开始。
如果我们使用Windows客户端连接,使用地址<IP Address>:<Port>进行访问。例如:192.168.0.88:1。
2、防火墙配置
如果我们的Linux是开启了网络防火墙,则需要将指定端口打开。
[root@testdb ~]# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT
[root@testdb ~]# iptables -I INPUT -p tcp --dport 5801 -j ACCEPT