一、引言
我们可以通过telnet、ssh等远程登录Linux服务器,但都是字符界面的。本文介绍了通过XDMCP+XDM来 远程连接Linux服务器上的XFree86 Server,可以在图形环境下远程管理Linux服务器。
二、基本概念
1、什么是XFree86
XFree86是X Window系统的一种开放源代码的实现。它提供了一种对鼠标、键盘、显卡和窗口图形环境 的Client-Server接口。所以客户端程序可以运行在不同的主机上,由一台服务器提供X Window的Server服务。
2、什么是XDMCP
XDMCP即“X Display Manager Control Protocol”,是一种网络协议。由它来建立图形客户端程序 与X Window服务器的连接与通信。
3、什么是XDM
XDM即“X Display Manager”,由它来启动X Window服务器,并管理图形客户端程序的登录、会话、 启动窗口管理器(KDE、Gnome)等。KDE和Gnome也提供了自己的xdm的实现,分别叫kdm和gdm。
4、什么是XFS
XFS即“X Font Server”,可以由由一台服务器来统一提供字体,远程图形客户端程序就不需要单独 安装所有的字体了。
三、配置过程
1、我们的环境
我们使用一台装有Mandrake Linux 8.1的计算机作为X Window的服务器,服务器上网卡地址 为192.168.0.1/24。并且在安装Linux时一起安装了XFree86相关软件包。 我们在局域网中的另一台装有Windows 2000的计算机上安装了X-Win32软件,作为X Window的客 户端。还有很多Windows下的X客户端程序,但大多是商业程序,如exceed只提供30天的试用期。
而X-Win32没有天数限制,只是每次只能使用30分钟,这对于大多数基本的服务器维护操作也够了, 时间到了再连接就是了。免费使用商业程序不能要求太高了:-)
2、配置服务器
(1)配置xfs
xfs的配置文件是/etc/X11/fs/config,内容如下:
#
# Default font server configuration file for Mandrake Linux workstation
#
# allow a max of 4 clients to connect to this font server
client-limit = 4
# when a font server reaches its limit, start up a new one
clone-self = off
# alternate font servers for clients to use
#alternate-servers = foo:7101,bar:7102
# where to look for fonts
# Some of these are commented out, i.e. the TrueType and Type1
# directories in /usr/share, because they arent forced to be
# installed alongside X.
#
catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled,
/usr/X11R6/lib/X11/fonts/75dpi:unscaled,
/usr/X11R6/lib/X11/fonts/100dpi:unscaled,
/usr/X11R6/lib/X11/fonts/misc:unscaled,
/usr/X11R6/lib/X11/fonts/Type1,
/usr/X11R6/lib/X11/fonts/Speedo,
/usr/X11R6/lib/X11/fonts/mdk:unscaled,
/usr/share/fonts/default/Type1,
/usr/share/fonts/ttf/big5,
/usr/share/fonts/ttf/gb2312,
/usr/share/fonts/ttf/decoratives,
/usr/share/fonts/ttf/western
# in 12 points, decipoints
default-point-size = 120
# 100 x 100 and 75 x 75
default-resolutions = 75,75,100,1
# how to log errors
use-syslog = on
在配置文件中可以定义最大客户端连接数量,这里缺省是4。配置文件中也指明了字体文件的位置, 特别注意包含了中文字体,否则在客户端无法正确显示中文字体。接下来修改/etc/rc.d/init.d/xfs文件,把所有“-port -1”改为“-port 7100”,这是xfs缺省监听的端口。使用如下命令来重启xfs:
service xfs stop
service xfs start
xfs启动成功后,可以使用netstat -ln命令来确认7100端口已绑定:
tcp 0 0 0.0.0.0:7100 0.0.0.0:* LISTEN
(2)配置xdm
xdm的配置文件在/etc/X11/xdm目录下。
首先修改xdm-config文件,找到一行:DisplayManager.requestPort: 0
注释这行:!DisplayManager.requestPort: 0
如果有这行,xdm就不会监听XDMCP的连接了。
接下来修改Xaccess文件,这是控制客户端访问的配置文件,修改内容如下:
#* #any host can get a login window
192.168.0.*
这里允许局域中的计算机都可以连接。现在可以直接使用xdm命令来启动xdm服务,使用netstat -ln命令来确认177端口(xdm缺省的端口)
已绑定:
udp 0 0 0.0.0.0:177 0.0.0.0:*
如果想要在服务器启动后自动运行xdm,就需要修改/etc/inittab文件,使启动后进入“5”运行级别, 修改内容如下:
id:5:initdefault:
3、使用图形客户端来测试
我们下载的是X-Win32 5.4版,在windows中安装完成后,会在“程序组”中生成“X-Win32 5.4”,在其中有两个可执行程序:X-config和X-Win32。
首先要使用X-config来建立连接配置:在“session”处选择“add”,再选择“XDMCP”连接方法, 点“Next->”,在“Session name”处输入一个名字,在“XDMCP Mode”处选择“Broadcast”,再 点“Save”保存配置。然后再选择X-config主界面的“Font”,点击“Add Font Server...”, 在“Host”出输入服务器的IP地址192.168.0.1,并确认“Port”为7100。 配置完后就可以启动X-Win32了,启动时当然要选择“Evaluation”因为我们没有注册的。然后选择刚才建立的session名称,就会出现一个窗口显示当前网络中的X Window服务器名称,选中我们的服务器点“OK”,就会出现xdm的登录界面了,使用你在Linux中的用户帐号登录后,X Window图形界面就
出现了,和在Linux服务器上本地操作一样。中文也显示正常,因为使用的是服务器上的字体。
四、其它问题
1、获得X-Win32
可以在www.starnet.com处下载X-Win32软件,下载前需要注册。
2、X Window客户端和Windows相互粘贴拷贝
X-Win32还提供了让X Window和Windows中内容相互粘贴拷贝的功能,这样就方便多了。