上一篇文章介绍了如何在 Windows 便携式电脑上安装和使用开放源码产品 cygwin
™ 访问 UNIX 工作站(如运行 AIX 5L 的 IBM pSeries 服务器)。方便的是,允许在这两种机器上使用相同的键盘、视频显示屏幕和鼠标(KVM)。
初始设置中缺少的一种功能是,从便携式电脑使用在 UNIX 启动的 X 客户机(如 xterm、xclock 或 smit)的能力。即使是免费的,我仍然建议不要使用 cygwin
X 服务器软件,因为我发现它并不方便。它为 X 根窗口(“桌面”)创建了一个独立的窗口,而不是在熟悉的 Windows 桌面上显示 X 客户机。
直到最近,只有用于 Windows 的商用 X 服务器才能够使用 Windows 窗口管理器。从相对昂贵的程序(如 Hummingbird Exceed)到较为便宜的替代产品(如 LabTam XLitePro(以前称为 XThinPro)和 MicroImages MI/X)都包括在内。然而,目前存在两种免费的替代产品,它们的功能几乎与其对应的商用产品不相上下。cygwin
(Red Hat 提供)和 uwin
(AT&T Research 提供)都支持所谓的“多窗口” Xserver 模式。这允许 X 客户机显示器能够使用与常规 Windows 程序相同的 Windows 窗口管理器。
在开始之前,具有一些在 Unix 下使用 X 窗口操作系统的经验十分重要,特别是 X 窗口能够从远程服务器对客户机应用程序进行身份验证的不同方式。在 Web 上和一些关于 Unix 和 Linux 方面的书籍中提供了这方面的解释,但是超出了本文讨论的范围。
uwin
和 cygwin
目录的层次结构交迭,所以一次只能安装其中之一。但是,两者都不与商用 Xservers 交迭,因此,您仍然可以选择保留基本 uwin
或 cygwin
安装,并添加一个商用 X 服务器。
为简单起见,我假定远程和本地机器上的 /etc/hosts 文件均已向所需网络上的所有 IP 地址分配了名称。这允许方便地使用主机名称,而不是命令中的 IP 地址(虽然可以使用两者之中的任何一个)。
“Explorer”指的是 Windows 文件管理器,而不是 Internet Explorer 浏览器应用程序。
术语“本地主机”和“Windows 计算机”在以下讨论中是指同一个网络节点。任何使用 <…> 的命令都需要一个适当的值来替代 <…> 字符串。例如,应该实际输入命令 xhost <local host>
,将 Windows 计算机的名称替换为 <local host>。
请参阅使用便携式电脑在 UNIX 上工作以获取完整版本的初始步骤。
- 在 Windows 计算机上安装 cygwin setup.exe。您可以从 http://cygwin.com/ 上下载这一程序。单击“现在安装”图标即可。
- 运行
setup.exe
。向导将指导您完成安装过程。最后,向导显示程序包组列表。将 View 菜单选项切换为“全屏”,可以按名称浏览程序包。选择程序包时,确保至少将 xorg-x11 包添加到默认列表中。我还建议添加 openssh 包,这样才能将 ssh 通道用于远程 X 客户机(稍后将解释这一点)。根据需要添加其他程序包,也许还要添加更多字体或窗口小部件软件包(如 lesstif)。我喜欢 wget 和 ncftp 客户机。 - 打开 cygwin 窗口。使用主机名检查本地(Windows)主机的名称。这也应该是您的 LAN 上所有节点的全部 /etc/host 文件中的项。
- cygwin X 服务器支持启动脚本 ——
/usr/X11R6/bin/startxwin.sh
。运行该脚本将得到一个基本的 X 服务器。在该脚本中,调用服务器的行以 Xwin 开头。 - 要从远程机器使用 X 服务器,请使用本地主机名在远程 UNIX 服务器上设置 DISPLAY 环境变量。例如(在 ksh 或 bash 中):
export DISPLAY=<local host>:0.0
- 该脚本还包含其他可用选项的列表。例如,如果您的 Windows 便携式电脑连接着一个以上的显示器,则尝试使用
-multiplemonitors
选项。 - 与其他 X 服务器不同的是,cygwin X 服务器不禁用 X 客户机访问控制。在启动任何远程 X 客户机之前,您通常需要提供使用
xauth
或xhost
的适当权限。要从本地 Windows X 服务器上的 <remote host> 运行 X 服务器,请在本地主机上输入以下命令:xhost <remote host>
- 检查远程主机上的 DISPLAY 环境变量的设置是否正确,并在远程主机上运行 xclock。您将在 Windows Desktop 上看到时钟显示。
- 另一种允许远程 X 客户机访问 cygwin X 服务器的方式是通过 ssh X 通道。在这种情况下,您需要在远程机器上启用
sshd
后台程序来完成 X11 转发操作。例如,假定有一台远程主机,正在运行安装了 openssh 的 AIX 5L。作为根用户,您需要对文件 /etc/ssh/sshd_config 进行更改。查找
#X11Forwarding no
行并将其更改为X11Forwarding yes
。然后,停止并重新启动服务器:stopsrc –g ssh startsrc –g ssh
然后,使用 ssh –X <login ID>@<remote host>
从 Windows 计算机登录远程主机,使用您自己的特定值替代 <login ID> 和 <remote host>。ssh 会话将自动设置 DISPLAY 环境变量以允许远程 X 客户机使用本地显示器。使用 xclock
可以从远程主机测试通道。
- 在 uwin 主页中,转到下载页面,然后选择您需要的许可,通过链接进入二进制下载页面。
- 您至少需要 uwin_base 和 uwin_xbase 下载。我还建议下载 uwin_xfonts 包。包括所需的任何其他包,接受许可,并将其连同关联的 README 文件一起下载到一个目录。附加的(开放源码)程序包位于 http://www.wipro.com/uwin/uwinSuDaPoA.html 和 http://www.pauahtun.org/sshd.html。
- 在 Windows Explorer 中,依次双击每个可执行文件。首先应该安装的文件是 uwin_base。以后的顺序虽然无关紧要,但在进行下一步之前必须安装全部的可执行文件。
uwin
在 Windows 95 和 98 下都能使用,但在 Windows 2000、XP 和其他由 NT 派生的系统中效果最好。要打开命令窗口(又称控制台窗口),请使用 Explorer 进入安装目录(可能为 C:/Program Files/UWIN)。将其更改为 usr/bin 目录并双击 login.exe。此外,README 文件中还包括两个启动uwin
的备选方式。uwin
使用 UNIX 路径名称语法(例如,/usr/bin)。根目录是uwin
的安装目录。可以通过 cd /c 方法切换到 C:/。uwin
创建主目录时可能较为麻烦,可以暂时使用默认的 /tmp。所需的主目录可以稍后手动添加。uwin
默认情况下使用 ksh,尽管 bash shell 也可用。ksh 的默认命令行界面与cygwin
在其 bash shell 中提供的界面极其类似。uwin
文档解释了如何定制类似于其他 UNIX 环境的登录环境(关键文件是 /etc/profile)。- 启动 X 服务器,让它运行 Windows 窗口管理器,其意义现在已经远不如从前了。在
uwin
命令窗口中,命令 /usr/X11/bin/xrun 以“无根”模式启动 X 服务器脚本。服务器的主要命令行参数是-multiwindow
。 - 您将在 Taskbar 中看到一个 X 服务器选项卡,但是不显示 X 根窗口。在控制台窗口中,/usr/X11/bin/xclock 将验证您的 X 显示是否与计划的一致。
- 与大多数其他用于 Windows 的 X 服务器一样,
uwin
运行时,默认情况下禁用 X 访问控制(xhost +)。如果您从与其他用户共享的远程主机上运行,则存在很大的安全风险。我强烈建议启用 X 访问控制,并使用 ssh 通道、xhost 机器身份验证或 xauth 用户标识身份验证。 - 从 UNIX 运行 X 客户机。至于
cygwin
,您可以从控制台窗口利用telnet
、rsh
或ssh
连接到 (UNIX) 服务器。最安全的选项是ssh
通道。连接到 UNIX 服务器,设置相应的 DISPLAY 环境变量(如果您使用的不是 ssh,请参见“安装和配置 Cygwin”中的 步骤 9,然后从远程主机运行xclock
。这时,在便携式电脑的显示器上将出现xclock
显示。应用程序(如smit
)也将正确运行。
![]() ![]() |
![]()
|
最后需要说明的是,远程位置的工作人员通过虚拟专用网(Virtual Private Network,VPN)服务访问公司网络已成为普遍现象。
VPN 在公司网络和远程用户(位于公司防火墙之外)之间创建安全连接(“通道”)。VPN 客户机是通过为将远程计算机添加到公司网络的会话生成可用的 IP 地址而运行的。VPN 可以为访问本地显示的远程机器上的 X 客户机提供一个通道,与 ssh 一样。
要使用 VPN 显示远程 X 客户机,您需要标识首次远程连接时 VPN 生成的地址。从控制台窗口运行命令 ipconfig
将列出 Windows 计算机的所有 IP 地址。正确的地址将被关联到虚拟适配器。这样的地址不会是 Local Area 连接地址。现在,通过 VPN 将 DISPLAY 环境变量设置为任何可到达的远程主机上的 <IP Address>:0.0,即可完成显示远程 X 客户机的本地计算机(例如,运行图形化调试程序)。
下面是 VPN 客户机运行时 ipconfig
的示例输出:
Windows IP Configuration - Ethernet adapter Local Area Connection: - Connection-specific DNS Suffix . : ibm.com IP Address. . . . . . . . . . . . : 192.168.190.100 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.190.1 - Ethernet adapter AGN Virtual Network Adapter: - Connection-specific DNS Suffix . : ibm.com IP Address. . . . . . . . . . . . : 9.65.226.11 Subnet Mask . . . . . . . . . . . : 255.255.255.255 Default Gateway . . . . . . . . . : |
本例中的 VPN IP 地址是 9.65.226.11。注意,其他地址仅用于本地网络,在本地网络之外不可用。
不管决定使用商用 X 服务器还是使用免费 X 服务器,您现在都可以在便携式电脑上运行同一环境,与直接连接到远程机器的控制台终端类似。仅有的区别是窗口管理器和响应时间。