荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: xxxss.bbs@bbs.chenguang.org (1/2), 信区: Linux
标  题: 用win32远程x-windows
发信站: 交大晨光 (Wed Oct 23 21:39:14 2002)
转信站: SZU!news.tiaozhan.com!news.happynet.org!chenguang

发信人: risker (gone with wind), 信区: Linux
标  题: 用X-win32实现远程X-Window, 再一次被linux感动!!
发信站: BBS 水木清华站 (Wed Oct 23 21:35:21 2002), 站内信件

用X-win32实现远程X-Window, 再一次被linux感动!!
risker@BUAA, 2002/10/23

不知为何对X-window有一定的偏见,可能是一开始总用些破机器装Linux,
想用X-window有一定的困难,X-window就不在研究之列。以致,即使现在
有了1.7GHz的机器(前两天刚帮人装的一台服务器),也是直接把x-window
排除在安装之外。用命令行配置起来,也是小case了。暂时还没找到用
x-window的理由,研究、开发都是Windows下的。

看书之余,闲来无事。记得N年接触x-window时,听说一个X-window的远端软件
x-win32,网上一看,居然已经是5.40版(需要者,找个FTP搜索引擎,找
"x-win540.exe",保证一堆一堆的)。再在网上查了下资料,听起来真的很是简
单。用起来,的确也是简单。当看到KDevelop的PP窗口时,再一次被linux所感
动。看来linux,真是一个很有前途的职业。

----“搬门”的理论

稍微多说一点点,X-window系统主要包括三个部分x-server, x-client,
x-protocol。x-server负责输入、输出、显示等等,x-client就是后台
计算、程序执行等等,x-protocol就是x-server和x-client间的通信协议了。
(凭记忆,可能不准确,大概是这样)。

安装在你的Windows下(2000,98,NT)的x-win32,相当于X-Server(呵呵,
这个没错,就是Server,负责输入、输出,显示等等), linux端的叫Client.

---实验环境:

远端linux主机: OS: Redhat 7.2; IP: 10.0.0.58
        登录用户名: risker
           (安装了x-window,  KDE, GNOME);

本地主机: OS: windows 2000; IP: 10.1.0.5
           (安装x-win32 version 5.40)
(实际应用中,请将下面用到主机地址替换为你的IP)

 (两机之间经过了路由器。看到一个论坛上有人说,XDMCP不能经过路由器,
这怎么可能?那X-window也太弱了。当然,如果中间有防火墙又另当别论,
至少需要打开到本地主机,端口6001的连接。)

---------各种实现方法(in x-win32)

X-Win32有3种连接方法:rsh, rexec, XDMCP。先简单说前面两种。
(对x-window的原理没时间去仔细琢磨,可能下面说法有些不准确,不要太在
意,能理解就行了)。

1. rsh & rexec

其实简单说就是通过rsh或rexec,在远程Linux主机上执行xterm命令,xterm的
输出定向到你的本地机器,得到一个xterm的窗口,从而进一步执行其他的程序,
比如运行"kdesktop", 得到一个KDE的桌面.

在x-win32用Wizard添加rsh或rexec连接方法,可以看到其执行的远端命令分别
为:
rsh方法:/usr/X11R6/bin/xterm -ls -display $MYIP:$DNUM
rexec方法:/usr/X11R6/bin/xterm -ls -display $MYIP:$DNUM
(其中,$MYIP, $DNUM,由x-win32自动决定,我这儿的就是
$MYIP=10.1.0.5, $DNUM=0)

很多人这个用不起来。那是rsh, rexec设置不对的缘故。需要注意的是,缺省条
件下(Redhat 7.2)的rsh, rexec都是关闭的,可以编辑:
/etc/xinet.d/rsh
/etc/xinet.d/rexec
中的"disable=yes"改成,"disable=no",打开rsh, rexec服务. (应该需要重起
一下xinetd服务,"service xinetd restart")

另外,还要防火墙放开相应端口(512, 514)。试过用rexec实现了X的连接,而rsh
平时不用,用起来居然有些茫然,步骤如下:

在/etc/hosts中加入:
10.1.0.5 risker2

在用户目录下(我用的用户名字是risker),即在/home/risker下,创建文件
/home/risker/.rhosts
文件内容为:
risker2  risker

并且,改文件权限为:
chmod 0600 .rhosts

另外,用rsh方法时,注意你的Windows登录用户名最好也和其一致,我的是'risker',
不然会有问题了。

(rsh看来简单,居然设置起来,还这么多“曲里拐弯”,如果你实在没搞懂,那先
跳过这种“没什么实现前途”的方法算了)。

rexec, rsh可以了。不过,打开rsh, rexec会可使得系统安全系数降低,有些得不偿
失。我一般就不打开了。

其实,可以用SSH(或telnet)登录到linux主机,直接执行命令,可以得到rsh, rexec
一样的效果,也觉得“安全”了许多。如,用SSH登录到linux主机后,
执行:
/usr/X11R6/bin/xterm -ls -display 10.1.0.5:0

^_^,在你的本地机器同样得到了xterm的窗口(当然,此时x-win32提前运行中,
不然,没有X-server,那怎么玩?)。“说通了”,就是一个“定向问题”。

你还可以在你的SSH(telnet)的文本终端窗口,运行任何X程序,X程序自动会连接
由用户变量DISPLAY指向的X-Server。 (xterm可以通过命令行指定跳过$DISPLAY变量)

编辑你用户目录下的.bash_profile,加入:
DISPLAY=10.1.0.5:0
export DISPLAY

这样,重新登录后(用SSH,或telnet),执行任何X程序就在本地机器上(x-win32
已运行)得到相应的X应用窗口,试试"kdevelop", 哇,好让人惊叹!:)

用这种方法,可以运行各种X程序,或者直接得到一个xterm,然后进一步“活动”,
不过我没发现得到GNOME,KDE桌面的程序(得到一个KDE桌面,可没有“Start”菜单,
//shy,还是不熟悉的缘故)。

那就用下面这个方法去得到的GNOME,KDE桌面了,还能得到PP的登录界面,:)

-----------
2. XDMCP

XDMCP(=The X Display Manager Control Protocol), 即X显示管理控制协议。:P
对这个东东没有深入的了解,也不用解释了。简单说一下步骤。(深一步:通过配
置它,可以实现远端X-win32的X-window的汉字显示等等。以后有空再研究了。)

本地(Windows端):

先在本地机器的X-win32中添加一个XDMCP的连接,类型选“Query”(因为我已经
知道了目标主机未知,就是10.0.0.58)。。这边就OK了,先等等。

远端(Linux端):

需要修改以下几个地方:
1) /etc/X11/xdm/Xaccess
放开其中这一行
#*                             #any host can get a login window
改为:
*                             #any host can get a login window
(即允许任何主机登录)

2) /etc/X11/xdm/xdm-config
找到如下行:
DisplayManager.RequestPort: 0
注释掉,即
#DisplayManager.RequestPort: 0

3) /etc/X11/gdm/gdm.conf
找到[XDMCP]一节,将
Enable=false
改为:
Enable=true

4) /etc/kde/kdm/kdmrc
找到[XDMCP]一节,将
Enable=false
改为:
Enable=true

OK,重新启动xdm即可。

killall -9 xdm
xdm
(可靠些)

好了,用x-win32中刚添加的XDMCP连接试试。呵呵,是不是看到了熟悉的
登录画面。恭喜!恭喜!

有关用xfs,实现汉字显示等等。这个大家自己  磨琢磨去吧。下?这篇文章给出
了一些配置方法。具体如何,我也没试过。
http://www.linuxforum.net/docnew/showthreaded.php?Cat=&Board=sys&Number
=298&Search=true&Forum=sys&Words=XDMCP&Match=Entire%20Phrase&Searchpage
=0&Limit=25&Old=allposts&Main=298
(上面为一行)
好了,挖个地雷试试, :)
gnomine

risker@BUAA, 2002/10/23 (想转载就转吧,:)

--

※ 来源:·BBS 水木清华站 smth.edu.cn·[FROM: 211.71.3.195]
--
※ 来源:·交大晨光 bbs.chenguang.org·[FROM: 172.16.15.10]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店