红联Linux门户
Linux帮助

配置VNC服务实现红旗Linux远程桌面访问

发布时间:2014-12-03 09:36:21来源:linux网站作者:jrq

VNC (Virtual Network Computing)是虚拟网络计算机的缩写,是一款优秀的远程控制工具软件,由著名的AT&T的欧洲研究实验室开发。

下面介绍在“红旗Linux DC Server 5.0”和“红旗Linux 桌面版 6.0”操作系统中,配置VNC服务,实现客户端以“远程桌面”方式的连接访问。


一、红旗Linux DC Server 5.0下提供远程桌面服务:

服务器:RedFlag Linux DC Server 5.0

说明:RedFlag Linux DC Server 5.0已自带安装VNC Server的rpm包。无须单独安装。


配置和操作如下:


1. 配置VNC Server

编辑/etc/sysconfig/下的vncservers文件,添加VNC用户。

在vncservers文件末尾,加入如下一行:

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

VNCSERVERS="1:root"

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

注意:

*. 添加的用户(此处是根用户root),需是已经存在用户。

*. “1”为会话编号。可以添加多个会话,提供同时多个远程桌面服务。

2.  配置VNC Server密码

运行命令:#vncpasswd,设置vnc登录的密码。

设置完密码后,会在路径/root/.vnc/下生成一个名称是“passwd”的文件。

如果想更改VNC Server密码,再次执行#vncpasswd命令即可。

3.  启动vncserver服务

运行命令:#/etc/init.d/vncserver start
或:#service vncserver start

vncserver启动后,会在/root/.vnc/下生成xstartup文件和1.log文件。

xstartup文件中,最主要的是定义了VNC Server在提供服务时,客户端会话中所能看到的远程桌面的显示方式。

可以针对xstartup做编辑修改,加入自定义内容。

1.log文件是会话编号为“1”的VNC Server的日志文件。

如VNC Server启动失败,可以根据日志查找原因。

4.  修改VNC服务远程桌面启动方式

默认情况下,远程桌面VNC启动的是TWM窗口管理器(TabWindow Manager for the X WindowSystem)。

客户端所能看到的远程界面(TWM窗口)比较简单,虽系统各功能均可在命令行下得到执行,但是缺乏高效的人机交互功能。
 
(当然,并无贬低TWM的意思--TWM 短小精悍。 )
  
如果要VNC Server启动KDE界面服务,需修改 /root/.vnc/xstartup文件。

修改方法如下:

打开/root/.vnc/xstartup文件,注释掉最后一行twm &,改如下这样:

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

#twm &
startkde &

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

保存xstartup文件,再次启动vncserver服务后,客户端即可访问到友好的KDE界面。^_^

5.  VNC Server常用命令

*. vncserver重启服务命令:

#service vncserver stop
#service vncserver start
或:
#service vncserver restart

*. 查看vncserver服务状态的命令:

#service vncserver status

*. 查看vncserver服务侦听端口命令:

#netstat -tlnp |grep vnc

默认情况下,VNC Server提供通过浏览器方式访问的端口是:5800 +会话编号,提供通过VNC Viewer客户端方式访问的端口是:5900+会话编号。
  
如果需要提供跨防火墙的服务器,则防火墙需打开相应的端口。

*. 结束提供会话服务命令:

#vncserver -kill :会话编号
如:#vncserver -kill :1 //结束会话编号为1的服务

6.  VNC客户端及使用:

有三种客户端可供选择:

A.客户端是Linux环境

运行如下命令即可:

#vncviewer VNCServerIP:1
 
然后输入VNS Server的登录密码,即可连上VNC Server,打开并显示远程桌面。

前提是客户端需要安装VNC Client的rpm包,可下载并安装的包:vnc-4.0-8.1.i386.rpm。

VNCServerIP为服务器的IP地址,“1”是会话编号。
  
B.客户端是Windows环境

需要运行VCN的客户端工具,如VNC Viewer等。可到 www.realvnc.com/ 去下载。
 
访问地址形式如下:

VNCServerIP:5900+会话编号。(注意:VNC Server提供的通过VNC Viewer客户端方式访问的端口是:5900+会话编号)

例如访问地址为:192.168.100.82:5901。


注意此处一定要写正确会话编号,否则会如下报错:
---------------------------

failed to connect: Connection refused (10061)

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

然后输入VNS Server的登录密码,即可连上VNC Server,打开并显示远程桌面。

C.用浏览器作为客户端访问VNC服务器,以JAVA Applet方式显示远程桌面

在浏览器地址栏中输入服务器的访问地址,如下:
 
http://VNCServerIP:5801/

注意,此时端口号为:5800+会话编号。(注意:VNC Server提供的浏览器方式访问的端口是:5800 +会话编号)

然后输入VNS Server的登录密码,即可连上VNC Server,在JAVA小应用程序中打开并显示远程桌面。


二、红旗Linux 桌面版 6.0下提供远程桌面服务:

服务器:RedFlag Linux Desktop 6.0

说明:RedFlag Linux Desktop 6.0 默认下未安装VNC Server的rpm包。需单独安装VNC Server的rpm包。

配置和操作如下:

1. 安装VNC Server rpm包。

安装包:vnc-server-4.0-8.1.i386.rpm

如果需要Linux下的VNC客户端,则同时安装包:vnc-4.0-8.1.i386.rpm

安装后的rpm包可以在“软件包管理器”中查看到。

2. 配置VNC Server,同上。

编辑/etc/sysconfig/下的vncservers文件末尾,加入如下一行:

-------------
VNCSERVERS="1:root"
--------------

3. 配置VNC Server密码,同上。

运行命令:#vncpasswd,设置vnc登录的密码。

4. 启动vncserver服务

运行命令:#service vncserver start

注意,此时Linux控制台会出现一个提示:

------------------------
启动 VNC 服务器:1:root WARNING: initlog is deprecated and will be removed in a future release
-------------------------

用#service vncserver status 命令查看服务状态,发现VNC Server并未成功启动。

此时,查看/root/.vnc/文件中的日志,会发现报错信息:

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

Couldn't open RGB_DB '/usr/X11R6/lib/X11/rgb'

Xvnc version 4.0 - built Aug  4 2005 10:11:38
Underlying X server release 60801000, The X.Org Foundation

Thu May 20 11:26:06 2010
vncext:  VNC extension running!
vncext:  Listening for VNC connections on port 5902
vncext:  Listening for HTTP connections on port 5802
vncext:  created VNC server for screen 0
error opening security policy file /usr/X11R6/lib/X11/xserver/SecurityPolicy
Could not init font path element /usr/X11R6/lib/X11/fonts/misc/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/TTF/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/Type1/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/CID/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/75dpi/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/100dpi/, removing from list!
 
Fatal server error:
could not open default font 'fixed'
xrdb: Connection refused
xrdb: Can't open display 'localhost.localdomain:2'
xsetroot:  unable to open display 'localhost.localdomain:2'
/root/.vnc/xstartup: line 12: twm: command not found
vncconfig: unable to open display "localhost.localdomain:2"
Warning: This program is an suid-root program or is being run by the root user.
The full text of the error or warning message cannot be safely formatted
in this environment. You may get a more descriptive message by running the
program as a non-root user or by removing the suid bit on the executable.
xterm Xt error: Can't open display: %s

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

根据日志中所写,报错主要是因为无法加载X系统所需的字体,在 /usr/X11R6/lib/X11/ 下无法找到所需字体的路径。

VNC Server默认寻找的X系统的字体路径在/usr/X11R6/lib/X11/fonts/下。

但RedFlag Linux Desktop 6.0,在/usr/X11R6/lib/X11/fonts/下,只有TrueType这个文件夹。

这就是引发问题的所在!

解决方法:

在RedFlag Linux Desktop 6.0中,搜索到在/usr/share/X11/fonts下有 VNC Server所需的misc、TTF、Type1、75dpi、100dpi等字体路径。

在/usr/X11R6/lib/X11/fonts/中,把/usr/share/X11/fonts下的这些路径以链接方式(文件夹快捷方式)加入即可。

建立文件链接的命令,类似的,如下:

#cd /usr/X11R6/lib/X11/fonts/
#ln -s /usr/share/X11/fonts/misc misc
#ln -s /usr/share/X11/fonts/TTF TTF
#ln -s /usr/share/X11/fonts/Type1 Type1
#ln -s /usr/share/X11/fonts/75dpi 75dpi
#ln -s /usr/share/X11/fonts/100dpi 100dpi
#mkdir /usr/X11R6/lib/X11/fonts/CID/

(说明:因没有找到CID这个文件夹,所以此处以命令方式创建立了一个名称为“CID”的空文件夹蒙混过关。
这主要是参考了RedFlag Linux DC Server 5.0的文件夹结构。不过,有没有CID这个文件夹,不受太大的影响。)

然后运行命令重启VNC Server:

#service vncserver restart
 
接下来可用 #service vncserver status 命令查看服务状态,发现VNC Server成功启动,正常了。

5.  修改VNC服务远程桌面启动方式,同上。

打开/root/.vnc/xstartup文件,注释掉最后一行twm &,改如下这样:

--------------
#twm &
startkde &
--------------
  
然后运行命令 #service vncserver restart,重启VNC Server。

6.  客户端的远程桌面连接方式,同上。
 
不再赘述。