系统管理变得更简单,第 4 部分

作者:Marcel Gagné

谁说系统管理不能很有趣?我可爱又贤惠的妻子 Sally 正忙于使用本周的系统管理功能来玩 Kpoker,KDE 桌面环境的扑克游戏。她没有忙着检查日志、管理打印队列,甚至没有运行进程分析器。她在玩扑克。当然,早些时候,我控制了她的 Windows 95 PC 并开始编辑她正在撰写的一封信,所以这可能是我活该。为了告诉大家关于这个神奇工具的一切,我决定连接到她的 Windows 95 会话,看看她在我们的服务器上玩的 KDE 扑克游戏进行得如何。结果证明她输光了我们所有的钱。好吧,这就是赌博。

哦——我有没有提到我正在谈论一个出色的远程管理工具,它不仅适用于 Windows、Solaris、运行 OSF1 的 DEC Alpha,甚至适用于桌面出版界的老朋友 MacIntosh?

这个伟大的工具是 VNC(虚拟网络计算),来自英国剑桥的 AT&T 实验室。VNC 是一个软件包,允许您从自己的桌面查看其他计算机的桌面。例如,我可以在 Windows 95 或 NT 机器上运行 X 服务器,从 Linux 机器上运行,或者反过来。我可以在我的内部网络或跨互联网进行操作。

在一个拥有大量 Windows 工作站的大公司中,系统管理员知道所有简单的“操作员”错误呼叫带来的麻烦,这些呼叫仍然需要大量的工作和时间,因为您需要引导用户完成正确的步骤来解决他们的问题。如果您可以控制他们的桌面并在他们观看和学习的同时为他们完成,那不是很好吗?现在,我知道有一些商业软件包可以做到这一点,但不一定是从您的 Linux 桌面。而且它们也比 VNC 贵。

没错。VNC 是 免费 分发的。

图片警告! 你知道那句老话,“你一定要看看这个”,被世界各地的销售人员和推销员使用,历史悠久。对于 VNC 而言,请相信我。你一定要看看这个。我在这里告诉你的任何事情都比不上实际使用该产品(尽管我讲得非常好 <此处插入合适的笑脸>)。在我介绍如何设置这个产品之前,我先告诉你它的藏身之处。要获得免费的 VNC 副本,请访问 www.uk.research.att.com/vnc/

从下载页面,选择适用于您系统的版本。我同时选择了 Linux 和 Windows 版本。安装非常简单。对于 Linux,只需解压 tar 存档并按照随附的 README 中描述的安装步骤进行操作即可。对于没有耐心的人,这里有一个概要。

   # tar -xzvf vnc-3.3.3_x86_linux_2.0.tgz
   # cd vnc_x86_linux_2.0
   # cp vncviewer vncserver vncpasswd Xvnc /usr/local/bin
   # mkdir -p /usr/local/vnc/classes
   # cp classes/* /usr/local/vnc/classes

最后两行将 Java 类复制到与 Java VNC 查看器一起使用。您不必这样做,但考虑到我稍后会告诉您关于 VNC 浏览器端的内容,您会很高兴您这样做了。对于安装部分,没有太多其他事情要做。让我们从 VNC 的核心——服务器开始。

   vncserver

这实际上是一个运行 Xvnc 服务器的 Perl 脚本。使用它来运行 Xvnc。 您可能需要更改脚本的第一行以反映您的 Perl 二进制文件的位置。

您可以通过登录到您要远程管理的 Linux(或 UNIX)系统来启动 vncserver。要启动命令,请输入以下内容

    # vncserver hostname:session_number

使用 VNC,您可以运行多个会话并连接到不同的服务器。默认情况下,会话号从 1 开始并向上递增,但您可以从一开始就指定会话 3(例如),方法是输入 vncserver hostname:3。这突出了 VNC 的另一个好处。在您终止 VNC 会话之前,它会保留其当前状态。这意味着您可以断开与会话的连接,稍后重新连接,并从您离开的地方继续。事实上,您甚至可以共享会话,以便多个用户可以访问它。稍后会详细介绍。

当您第一次启动 vncserver 时,系统会提示您输入访问服务器的密码。您可以随时使用 vncpasswd 命令稍后更改密码。服务器激活后,您可以使用 vncviewer 命令连接到它。格式如下

   # vncviewer host:session_number

要退出查看器(或发送特定的按键序列),请使用 F8 键。然后单击“退出查看器”以关闭会话。您也可以启动共享会话,以便其他人可以使用此版本的命令使用相同的 X Window 会话

   # vncviewer -shared host:session_number

当您启动 vncserver 时,它会在您的主目录 (/root/.vnc) 下创建一个 .vnc 目录。一些文件保存在这里。您会找到一个与您运行的每个服务器关联的日志文件和一个 .pid 文件,以便删除服务器。顺便说一句(因为我之前提到过),您可以像这样终止 vncserver 进程

   # vncserver -kill :1

请记住,:1 可能是 :2:3,具体取决于您要终止的会话。也就是说,我想让您查看的另一个文件是:—xstartup。如果您对文件执行 cat,您会得到类似这样的内容

   #!/bin/sh

   xrdb $HOME/.Xresources
   xsetroot -solid grey
   xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
   # twm &
   startkde &

请注意,倒数第二行被注释掉了,并且在下面添加了“startkde”行。这是因为 VNC 使用 twm(Tab 窗口管理器)作为其默认桌面。我选择运行 KDE,并添加了后面的行。如果您喜欢其他窗口管理器,请在此处添加启动项。

就在您认为它不可能变得更好时... VNC 查看器也可以通过一个小的 Java 小程序从您喜欢的 Web 浏览器运行。从您的 Netscape 浏览器,使用此 URL(将 hostsession_number 替换为您自己的)来访问 Java 客户端。

   http://server_name:580session_number/

让我澄清一下。我有一台主机名为“gateway”的机器(就像我内网的网关一样)在我的网络上。如果我想连接到该机器上的 vncserver 会话号 1,我的 URL 看起来像这样

   http://gateway:5801/

Java 在您的浏览器上启动,您会看到一个密码提示,这是我们第一次启动服务器时给出的密码。与命令行查看器不同,您不使用功能键来剪切和粘贴或断开与会话的连接。屏幕顶部保留了四个小按钮供您使用。

这是一个小型、快速的客户端,响应速度非常快。使用浏览器客户端,您可以从任何 PC(当然,使用支持 Java 的浏览器)访问您的 Linux(或 UNIX)服务器。

Windows 怎么样?早些时候,我提到 VNC 也为 Windows 提供了服务器。使用此产品,您不再需要花费数小时在电话上引导用户解决 Windows 应用程序的问题;只需控制即可。为此,您需要安装作为 .zip 文件提供的 Windows 产品。该文件的当前版本是 vnc-3.3.3r2_x86_win32.zip。这将适用于所有 Windows 9x、Windows NT 和 Windows 2000 产品。

将文件解压到您选择的目录中(使用您喜欢的 Windows 存档客户端,例如 pkzip 或 WinZip)。将创建两个文件夹。一个是“vncviewer”,包含一个可执行文件 vncviewer.exe,可以运行它来访问您的 Linux 服务器(或任何 VNC 服务器),而无需任何特殊安装。如果您不想在每台 PC 上安装它,您可以将此文件放在软盘上并随身携带。另一个目录是“winvnc”,包含完整的分发包,包括 Windows 的 VNC 服务器。要安装,只需运行文件夹中的 setup.exe 文件。

接下来,单击 开始程序VNC,然后单击 管理工具。单击 安装注册表项 链接,然后单击 安装 WinVNC 服务。要运行服务器,请重新启动或单击 启动 WinVNC 服务。您应该会在 Windows 任务栏的托盘中看到一个小的 VNC 图标(在右侧时钟旁边)。现在,返回您的 Linux 机器并运行您的 vncviewer(从命令行或浏览器),方法是连接到服务号为“0”的主机。换句话说,为了连接到我的名为“natika”的 PC,我将运行以下两个命令中的任何一个,第二个实际上是一个 URL 而不是命令。

   # vncviewer natika:0

   http://natika:5800/

这很重要。与 Linux 服务器不同,您无法从 Windows 运行多个 VNC 会话。您不会神奇地获得多用户 Windows 系统。这严格来说是远程控制(但这仍然很酷)。

我应该提到的最后一件事是,您也可以通过在 VNC 程序组(“开始”、“程序”、“VNC”等)中选择 VNC 查看器来从 Windows 运行 VNC 查看器。

又到了这个时候,我又喋喋不休地说得太久了。这是一个很酷的产品,应该在每个系统管理员的武器库中。去看看吧。

直到下次,请记住 KISS 原则:Keep It Simple, Sysadmin.(保持系统管理简单)

注意:正在寻找第 1-3 部分?访问我们的索引 此处

加载 Disqus 评论