虚拟网络计算

在当今瞬息万变的世界中,越来越多的 UNIX 系统管理员发现他们需要在工作环境中支持 Windows NT 服务器。无论是 Exchange 服务器还是应用服务器,NT 服务器都开始悄然进入曾经是纯 UNIX 的领域。对于任何 UNIX 大师来说,管理 NT 服务器的责任都可能令人沮丧。UNIX 用户已经习惯了 X Window 系统的灵活性——能够在任何 UNIX 服务器上轻松运行应用程序,并在本地桌面上显示远程 X 应用程序。远程管理 NT 服务器要困难得多,管理员通常需要在系统控制台才能运行大多数 NT 应用程序。
一些商业产品允许从 X 桌面远程控制 MS Windows 应用程序。此外,还有一些用于 MS Windows 的商业 X 服务器,可以实现相反的功能。然而,直到最近,还没有可用的等效免费软件包。
Olivetti & Oracle Research Laboratory (ORL) 的研究人员已在 GNU 通用公共许可证下发布了 VNC 软件包。VNC,即虚拟网络计算 (Virtual Network Computing) 的缩写,是由 ORL 开发的基于客户端/服务器、无状态、平台无关的协议。该协议实现了一个远程显示系统,用户可以通过从名为“查看器”的 VNC 客户端应用程序连接到 VNC 服务器来控制由 VNC 服务器管理的计算“桌面”。目前存在适用于 Windows 95/NT、Macintosh 和 UNIX 的 VNC 服务器。也有各种适用于多种操作系统的 VNC 客户端。图 1 显示了当前 VNC 协议可能实现的所有连接。许多 VNC 查看器是由互联网上的用户移植的。ORL 提供适用于 Windows 95/NT、Macintosh、Linux、Digital UNIX 和 Solaris 的预编译服务器和客户端二进制文件。此外,ORL 还提供 Windows CE 客户端。
在本文中,我将讨论如何设置 VNC 软件,使您能够从运行 X Window 系统的 Linux 控制 Windows 桌面(这可能是 Linux 用户最常见的 VNC 用途)。
ORL 提供了一个 x86 Linux 2.0 二进制文件,该文件与 Red Hat 5.1 配合良好,可以从他们的下载页面(请参阅“资源”)检索。获得软件包后,使用 gunzip 和 tar 解压缩它。二进制发行版不提供安装脚本,但为了我们的目的,我们只需要让 root 用户将查看器二进制文件 vncviewer 复制到其他人可以访问的合适位置,例如 /usr/local/bin。
ORL 提供了一个预编译的 Windows 95/NT 二进制文件,作为一个软件包提供,也可以从他们的下载页面下载。该软件包的安装方式与大多数其他 Windows 软件包类似,即使用 InstallShield。VNC 服务器 (WinVNC) 可以作为常规应用程序安装(由当前登录到控制台的用户启动/停止),也可以作为 NT 服务安装(在 NT 启动时自动启动;在用户注销时不会退出)。作为服务安装是 WinVNC 最新版本中的新功能。撰写本文时,最新版本是 3.3.2R5。VNC 正在积极开发中,因此当您阅读本文时,很可能已经可以下载更新版本的软件。我建议将 WinVNC 安装为服务,以便 VNC 服务器始终运行,并且您不必始终保持在 Windows 控制台上的登录状态。
要将 WinVNC 安装为服务,只需像正常安装任何其他 Windows 应用程序一样安装该软件包,然后在命令窗口中键入
cd WinVNC.exe -install WinVNC.exe -run # or reboot NT to have the<\n> # service start automatically
Linux VNC 查看器无需配置即可使用。但是,Windows VNC 服务器确实需要一些小的配置。要调出配置窗口,可以右键单击 Windows NT/95 系统托盘中的 WinVNC 图标,然后选择 属性,或者打开 DOS 命令窗口并键入
cd WinVNC.exe -settings
在配置窗口中(如图 2 所示),可以设置以下选项
确保选中“接受套接字连接”。如果未选中此选项,则所有传入连接都将被禁用。
“显示编号”可以保留为 0。当使用 VNC 查看器连接到此服务器时,将指定此值。
设置“密码”以保护对此 VNC 桌面的访问(这是一个好主意)。当通过查看器连接到此 VNC 服务器时,系统将提示您输入相同的密码。
如果选中“禁用远程键盘和指针”,则所有传入的查看器连接都将能够看到桌面,但将无法移动鼠标或键入任何内容(只读连接)。
在“更新处理”部分中,可以打开/关闭各种选项来控制 VNC 服务器如何将“桌面更改”发送到 VNC 查看器。有关每个选项的优缺点的深入解释,请参阅 http://www.orl.co.uk/vnc/winvnc.html。
按“确定”或“应用”按钮以应用您的配置更改。
在 Windows 服务器上运行 WinVNC 后,尝试从 Linux 桌面连接到它,方法是(在 X 环境中)键入以下命令,然后输入您在配置 WinVNC 时提供的密码(如果有)
> vncviewer vncviewer: VNC server supports protocol version 3.3 (viewer 3.3) Password: vncviewer: VNC authentication succeeded vncviewer: Desktop name "boxster" vncviewer: Connected to VNC server, using protocol version 3.3 vncviewer: VNC server default format: 16 bits per pixel. Least significant byte first in each pixel. True color: max red 31 green 63 blue 31 shift red 11 green 5 blue 0 Using default colormap and translating to BGR233 Creating window depth 8, visualid 0x22 colormap 0x21
如果您正确输入了密码,则会显示几行信息,并且会弹出一个新的大窗口,显示整个远程 Windows 桌面。当您完成使用 VNC 查看器后,只需关闭查看器的窗口即可关闭连接。远程 Windows 桌面将保持查看器离开时的最后状态。
图 3 显示了一个示例 Linux 桌面,其中新打开的 VNC 查看器连接正在“查看”Windows NT 桌面。
最新 VNC 版本中提供的一个不错的功能是能够将臭名昭著的 ctrl-alt-del 键序列发送到 VNC 查看器中显示的 Windows 桌面。当 VNC 服务器作为服务安装时,此功能具有明显的优势
如果 VNC 服务器作为 Windows NT 下的服务安装,则您无需始终让用户登录,并且 VNC 服务器作为 Windows 应用程序运行。当需要远程使用该服务器时,只需使用 VNC 查看器连接到它,按 ctrl-alt-del 以获取 NT 登录窗口,然后像往常一样登录到 NT 计算机即可。
如果您需要保持登录到 NT 服务器,但想退出本地 X 会话,则可以按 ctrl-alt-del 以获取“Windows NT 安全”弹出窗口,单击“锁定工作站”以锁定控制台,关闭 VNC 查看器连接,然后退出您的 X 会话。您仍将保持登录到 NT 服务器;其屏幕现已锁定。
VNC 协议有几个优点。主要的优点是它是无状态的。用户可以从一个 VNC 查看器关闭与远程桌面的连接,稍后从相同或不同的 VNC 查看器重新连接到同一远程桌面,并且它将处于相同的状态。
当使用 Java VNC 查看器时,系统管理员可以使用支持 Java 的浏览器从世界任何地方控制 Windows 95/NT、Macintosh 或 UNIX 桌面。可以将 VNC 服务器配置为所有传入的查看器连接都能够看到桌面,但将无法移动鼠标或键入任何内容(只读连接)。此选项在教学环境中非常方便,在教学环境中,班级中的每个学生都连接到讲师的“桌面”,并在自己的计算机上观看演示,而不是在连接到讲师计算机的顶置投影仪上观看。
在工作中,我有一台运行 Digital UNIX 的 Alpha 和一台运行 Windows NT 4.0 的 P133。虽然我严格来说是一名 UNIX 系统管理员,但我公司的电子邮件标准是基于 Microsoft Exchange 的。因此,我需要办公桌上有一台 Windows 桌面才能阅读 Exchange 电子邮件。但是,在家里我只运行 Linux。我一直在寻找一种从家里阅读我的 Exchange 电子邮件的方法。在阅读了有关 VNC 的文章后,我知道我找到了我想要的东西。
我在家中使用 Linux VNC 查看器通过 PPP 连接连接到我在工作单位办公桌上的 Windows NT 计算机。图 4 显示了我使用这种设置阅读我的 Exchange 电子邮件。虽然 VNC 在 PPP 线路上的性能不是很好,但它非常实用,并解决了我无法从家里阅读 Exchange 电子邮件的问题。
