vncserver 图形界面显示

1、安装XVNC。

 

安装Linux时,可以从安装包中选中。若没有安装,可以从安装盘中找到。

 

服务器的组件名叫vnc-server。请执行rpm -q vnc-server 这个指令。

 

它的输出应该是package vnc-server is not installed 或类似vnc-server-4.0-11.el4。

 

假如服务器未被安装,请用这个指令来安装它:yuminstall vnc-server。

 

 

 

2、启动vncserver。

 

在终端中输入:

 

vncserver :1 -geometry 1280x1024 –depth 24  注::1指1号窗口,-geometry指窗口分辨率,-depth指色彩数

 

也可以简单的指定:

 

vncserver :1  注:使用RealVNC的客户端,窗口分辨率与色彩数可以在客户端指定

 

当你第一次启动vncserver时,会要求指定密码,该密码是VNC客户端连接时要输入。

 

窗口可以从0开始指定,如果Linux本地端已经启用图形环境,则必须从1开始指定,因为窗口0被X11占用。

 

 

 

3、配置xstartup

 

XVNC默认采用twm做为图形环境,如果你安装了KDE或Gnome也可以启动。

 

vi ~/.vnc/xstartup

 

显示如下内容:

 

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

 

#twm &

 

 

 

最后一行twm &表示启动twm,修改成gnome-session&启动Gnome,修改成startkde&启动KDE。

 

如果Linux本地端已经启用Gnome或KDE图形环境,当VNC客户端连接服务器后,可能会只显示灰屏,没有正常启用图形环境。查看~/.vnc下的日志时会提示错误:You arealready running a session manager。

 

这时需要去掉xstartup文件中的

 

# unset SESSION_MANAGER

 

# exec /etc/X11/xinit/xinitrc

 

这两行前的#,再重启vncserver。如果Linux本地端是init 3模式,则不需要修改这两行。

 

当vnc客户端连接服务器时显示的界面是英文的,主要是中文环境还没有装入,而且没有中文输入法。在# exec/etc/X11/xinit/xinitrc行后添加下面内容:

 

export .UTF-8  注:启用中文环境

 

scim –d  注:加载scim输入法

 

 

 

4、关闭vncserver

 

vncserver –kill :1  注:关闭窗口1,以此类推关闭窗口2就为:2

 

当所有窗口都关闭vncserver服务就关闭了。

 

 

 

5、客户端使用

 

XVNC不仅支持vncview等客户端程序,还支持浏览器控制。

 

浏览器直接输入地址http://IP:5800,就会启动Java客户端连接。

 

窗口0占用TCP 5900端口(VNC客户端),TCP 5800端口(浏览器)。

 

窗口1占用TCP 5901端口(VNC客户端),TCP 5801端口(浏览器)。

 

窗口2、3以此类推。

 

 

 

6、开机自启动vncserver

 

上面的操作都是要先登录Linux端,然后手动启动vncserver服务后,才能使用VNC连接。如果你想开机自启动vncserver服务,必须这样做。

 

先按上面的步骤启动一次vncserver,确保密码和xstartup文件都建立了。

 

然后,vi/etc/sysconfig/vncservers,添加如下内容:

 

VNCSERVERS="1:root 2:zhang 3:li"  注:1、2、3代表窗口,比如root用户用窗口1,zhang用户用窗口2,这里的用户是指Linux中的正规的用户帐户

 

VNCSERVERARGS[1]="-geometry 640x480 –depth 24"  注:为root用户指定分辨率和色彩数,这里的[1]指上面的“1:root”

 

VNCSERVERARGS[2]="-geometry 640x480 –depth 16"  注:为zhang用户指定分辨率和色彩数

 

VNCSERVERARGS[3]="-geometry 800x600"

 

注:上面的这三行可以不添加,由vnc客户端自行控制分辨率和色彩。上面的root、zhang、li用户必须确保密码和xstartup文件都建立了,你可以分别登录先执行一次vncserver:1。

 

最后,执行/sbin/chkconfigvncserver on指令。

 

 

 

7、安全

 

XVNC的数据传输都是明文的,因涉及服务器的管理,使用明文是不可接受的。

 

我们可以使用SSH加密VNC数据。

 

首先,开启Linux端的SSH服务。

 

第二,在Windows端下载一个SSH telnet工具。推荐的有PuTTy,SecureCRT。

 

第三,启用SSH隧道。下面以SecureCRT为例,PuTTy操作类似。

 

先建立一个连接到Linux端的普通SSH会话。

 

在该会话选项中“端口转发”中,添加“本地端口转发属性”。

 

 

 

见右图中,在“本地”中输入一个端口,这里选择了5901,也可以选择5801或其他端口,只要不与本地的服务相冲突,这个本地端口与Linux中vncserver监听的窗口端口无关,在“远程”中输入5901,这个端口是Linux端的vncserver监听的端口,这里是启动窗口1,如果启动窗口2则这里要输入5902。确定。

 

设置完后,在SecureCRT中启动与Linux的SSH会话,正确登录Linux后。打开vncviewer。

 

 

 

在VNC服务器中输入:localhost:5901(这里的端口就是上面指定的本地端口,而非Linux端的端口),因为这里要连接的是本地的SecureCRT启动的SSH隧道。在VNC运行过程中SecureCRT不能关闭。

 

这样,在Linux端的防火墙就可以只开放SSH端口,关闭掉有关VNC的所有端口。

转载:http://hi.baidu.com/itnote/item/0e30cf320433edc11b9696c0

你可能感兴趣的:(服务/协议)