LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 993|回复: 5

Xmanager 访问Linux遇到问题:

[复制链接]
发表于 2005-8-10 11:46:12 | 显示全部楼层 |阅读模式
我从网上找到这篇文章:


************************************************************************************************************


使用图形客户端远程访问Linux服务器

一、引言
我们可以通过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,100

# 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
可以在http://www.starnet.com处下载X-Win32...略厍靶枰⒉帷?

2、X Window客户端和Windows相互粘贴拷贝
X-Win32还提供了让X Window和Windows中内容相互粘贴拷贝的功能,这样就方便多了。

五、参考资料
http://www.tldp.org/HOWTO/XDMCP-HOWTO/index.html
http://www.tldp.org/HOWTO/mini/Xterminals/index.html
************************************************************************************************************

问题出现在下面这里:

> 接下来修改/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



下面是我的 xfs 文件内容:
************************************************************************************************************
#!/bin/sh
#
# xfs: Starts the X Font Server
#
# Version: @(#) /etc/init.d/xfs 2.0
#
# chkconfig: 2345 90 10
# description: Starts and stops the X Font Server at boot time and
shutdown. \
# It also takes care of (re-)generating font lists.
#
# processname: xfs
# config: /etc/X11/fs/config
# hide: true

# Source function library.
/etc/init.d/functions

umask 133

prog=xfs

# Make sure that xfs has "/" as the CWD
cd /

buildfontlist() {
pushd . &> /dev/null
for d in $(/usr/sbin/chkfontpath --list | cut -f 2 -d ':') ;do
if [ -d "$d" ]; then
cd $d
# Check if we need to rerun mkfontdir
NEEDED=no
if ! [ -e fonts.dir ]; then
NEEDED=yes
elif [ "$(find . -type f -cnewer fonts.dir 2>/dev/null)" != ""
];then
NEEDED=yes
fi
if [ "$NEEDED" = "yes" ]; then
rm -f fonts.dir &>/dev/null
if ls | grep -i "\.tt[cf]$" &>/dev/null; then
# TrueType fonts found...
ttmkfdir -d . -o fonts.scale
mkfontdir . &>/dev/null
[ -e fonts.dir ] && chmod 644 fonts.scale fonts.dir
fi
if [ "$(ls |egrep -iv '\.tt[cf]$|^fonts\.|^encodings\.')"
!= "" ]; then
# This directory contains fonts that are not
TrueType...
mkfontdir . &>/dev/null
[ -e fonts.dir ] && chmod 644 fonts.dir
fi
fi
fi
done
popd &> /dev/null
}

start() {
if [ -L /usr/X11R6/bin/X ]; then
echo -n $"Starting $prog: "
[ -x /usr/sbin/chkfontpath ] && buildfontlist
rm -fr /tmp/.font-unix
daemon xfs -droppriv -daemon
ret=$?
[ $ret -eq 0 ] && touch /var/lock/subsys/xfs
echo
return $ret
fi
}

stop() {
echo -n $"Shutting down $prog: "
killproc xfs
ret=$?
[ $ret -eq 0 ] && rm -f /var/lock/subsys/xfs
echo
return $ret
}

rhstatus() {
status xfs
}

reload() {
if [ -f /var/lock/subsys/xfs ]; then
echo -n $"Reloading $prog: "
[ -x /usr/sbin/chkfontpath ] && buildfontlist
killproc xfs -USR1
ret=$?
echo
return $ret
else
stop
start
fi
}

restart() {
echo $"Restarting $prog:"
stop
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
condrestart)
[ -f /var/lock/subsys/xfs ] && reload || :
;;
status)
rhstatus
;;
*)
echo $"Usage: $prog {start|stop|status|restart|reload|condrestart}"
exit 1
esac

exit $?
************************************************************************************************************
 楼主| 发表于 2005-8-10 11:48:20 | 显示全部楼层
我的xfs里面没有那个“port -1”的字符串。
回复 支持 反对

使用道具 举报

发表于 2005-8-10 11:53:47 | 显示全部楼层
这个太老了吧,没什么参考价值
现在要连远程桌面,只要在GMD里点下鼠标,打开XDMCP就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-11 11:23:38 | 显示全部楼层
GMD? 什么东西?
回复 支持 反对

使用道具 举报

发表于 2005-8-11 11:34:06 | 显示全部楼层
不好意思,写错了,是GDM,呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-11 16:14:53 | 显示全部楼层
哦,找到了。再研究研究。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表