一、引言
我们可以通过telnet、ssh等远程登录Linux服务器,但都是字符界面的。本文介绍了通过XDMCP+XDM来远程连接Linux服务器上的XFree86Server,可以在图形环境下远程管理Linux服务器。
二、基本概念
1、什么是XFree86
XFree86是XWindow系统的一种开放源代码的实现。它提供了一种对鼠标、键盘、显卡和窗口图形环境的Client-Server接口。所以客户端程序可以运行在不同的主机上,由一台服务器提供XWindow的Server服务。
2、什么是XDMCP
XDMCP即“XDisplayManagerControlProtocol”,是一种网络协议。由它来建立图形客户端程序与XWindow服务器的连接与通信。
3、什么是XDM
XDM即“XDisplayManager”,由它来启动XWindow服务器,并管理图形客户端程序的登录、会话、启动窗口管理器(KDE、Gnome)等。KDE和Gnome也提供了自己的xdm的实现,分别叫kdm和gdm。
4、什么是XFS
XFS即“XFontServer”,可以由由一台服务器来统一提供字体,远程图形客户端程序就不需要单独安装所有的字体了。
三、配置过程
1、我们的环境
我们使用一台装有MandrakeLinux8.1的计算机作为XWindow的服务器,服务器上网卡地址为192.168.0.1/24。并且在安装Linux时一起安装了XFree86相关软件包。
我们在局域网中的另一台装有Windows2000的计算机上安装了X-Win32软件,作为XWindow的客户端。还有很多Windows下的X客户端程序,但大多是商业程序,如exceed只提供30天的试用期。而X-Win32没有天数限制,只是每次只能使用30分钟,这对于大多数基本的服务器维护操作也够了,时间到了再连接就是了。免费使用商业程序不能要求太高了
2、配置服务器
(1)配置xfs
xfs的配置文件是/etc/X11/fs/config,内容如下:
#
#DefaultfontserverconfigurationfileforMandrakeLinuxworkstation
#
#allowamaxof4clientstoconnecttothisfontserver
client-limit=4
#whenafontserverreachesitslimit,startupanewone
clone-self=off
#alternatefontserversforclientstouse
#alternate-servers=foo:7101,bar:7102
#wheretolookforfonts
#Someofthesearecommentedout,i.e.theTrueTypeandType1
#directoriesin/usr/share,becausetheyarentforcedtobe
#installedalongsideX.
#
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
#in12points,decipoints
default-point-size=120
#100x100and75x75
default-resolutions=75,75,100,100
#howtologerrors
use-syslog=on
在配置文件中可以定义最大客户端连接数量,这里缺省是4。配置文件中也指明了字体文件的位置,特别注意包含了中文字体,否则在客户端无法正确显示中文字体。
接下来修改/etc/rc.d/init.d/xfs文件,把所有“-port-1”改为“-port7100”,这是xfs缺省监听的端口。使用如下命令来重启xfs:
servicexfsstop
servicexfsstart
xfs启动成功后,可以使用netstat-ln命令来确认7100端口已绑定:
tcp000.0.0.0:71000.0.0.0:*LISTEN
(2)配置xdm
xdm的配置文件在/etc/X11/xdm目录下。
首先修改xdm-config文件,找到一行:DisplayManager.requestPort:0
注释这行:!DisplayManager.requestPort:0
如果有这行,xdm就不会监听XDMCP的连接了。
接下来修改Xaccess文件,这是控制客户端访问的配置文件,修改内容如下:
#*#anyhostcangetaloginwindow
192.168.0.*
这里允许局域中的计算机都可以连接。
现在可以直接使用xdm命令来启动xdm服务,使用netstat-ln命令来确认177端口(xdm缺省的端口)已绑定:
udp000.0.0.0:1770.0.0.0:*
如果想要在服务器启动后自动运行xdm,就需要修改/etc/inittab文件,使启动后进入“5”运行级别,修改内容如下:
id:5:initdefault:
3、使用图形客户端来测试
我们下载的是X-Win325.4版,在windows中安装完成后,会在“程序组”中生成“X-Win325.4”,在其中有两个可执行程序:X-config和X-Win32。
首先要使用X-config来建立连接配置:在“session”处选择“add”,再选择“XDMCP”连接方法,点“Next->”,在“Sessionname”处输入一个名字,在“XDMCPMode”处选择“Broadcast”,再点“Save”保存配置。然后再选择X-config主界面的“Font”,点击“AddFontServer...”,在“Host”出输入服务器的IP地址192.168.0.1,并确认“Port”为7100。
配置完后就可以启动X-Win32了,启动时当然要选择“Evaluation”因为我们没有注册的。然后选择刚才建立的session名称,就会出现一个窗口显示当前网络中的XWindow服务器名称,选中我们的服务器点“OK”,就会出现xdm的登录界面了,使用你在Linux中的用户帐号登录后,XWindow图形界面就出现了,和在Linux服务器上本地操作一样。中文也显示正常,因为使用的是服务器上的字体。
四、其它问题
1、获得X-Win32
可以在www.starnet.com处下载X-Win32软件,下载前需要注册。
2、XWindow客户端和Windows相互粘贴拷贝
X-Win32还提供了让XWindow和Windows中内容相互粘贴拷贝的功能,这样就方便多了。

2021-03-25 10:14:43