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. 客户端的远程桌面连接方式,同上。
不再赘述。