科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道VNC 发展动态(实验教程)

VNC 发展动态(实验教程)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Virtual Network Computing (VNC) 的使用非常广泛,但人们对它还是存在很多误解。本文将仔细描述令 VNC 成为日常开发和管理工作中不可或缺的因素的基本功能,同时介绍 VNC 的一些最新进展。

作者:zdnet安全频道 来源:论坛整理 2008年7月3日

关键字: VNC 网络管理

  • 评论
  • 分享微博
  • 分享邮件

    不容错过的虚拟化工具

    Virtual Network Computing (VNC) 的使用非常广泛,但人们对它还是存在很多误解。本文将仔细描述令 VNC 成为日常开发和管理工作中不可或缺的因素的基本功能,同时介绍 VNC 的一些最新进展。

    您擅长使用 Virtual Network Computing (VNC) 吗?如果不擅长,您将发现,即使对此桌面共享系统 有些许了解,也会为您在履行日常开发或系统管理职责时带来莫大的帮助。

    如果您已经熟悉 VNC,那就更好了:您尽可欣赏并体验基于 VNC 的最新创新。无论您从何处开始,下面的教程:

    顺便提一下,用不可或缺 来形容 VNC 再恰当不过了;它与 ssh、screen、Expect 以及其他一些被广泛应用的工具属于同一类别,这些工具可使工作效率成倍 提升,而不仅仅是小幅提高。VNC 的贡献在于,用户可以方便地让计算进程在此处 运行,却在他处 显示结果。使用 VNC 可以:

    * 只需回头即可查看远在 5000 公里以外的同事的工作;
    * 在周末从家中连接到办公桌面,查看花费了一个星期才设置好的进程;
    * 通过指向-点击序列轻松指导位于异地的 AIX 新手,省去电话徒说之苦;

    还有更多。开始之前,最好先做些准备工作,这只需几分钟即可。

    为完成第一次试验,您需要:

    * 安装 VNC 服务器(假定在 AIX 主机上);
    * 在任何便利的网络桌面上安装 VNC 客户机或查看器;
    * 启动服务器和查看器;然后
    * 启动在一台计算机上运行、而在另一台计算机上显示结果的测试应用程序。

    让我们深入考察每个步骤,以确保您取得成功。

    服务器安装及其他事项

    VNC 基于一个名为 RFB 的公共网络协议(要进一步阅读有关本文中提到的技术主题的信息,请参见下面的参考资料)。VNC 软件分为专有版本和免费版本,可供多种平台使用;无论是大型机,还是手表般大小的小工具,VNC 都同样适用。具体对 AIX 而言,开始试验的一种简便方式是使用 Toolbox for Linux® CD 上的副本,此 CD 随 AIX 提供。目前,RPM 还可以通过 IBM AIX Toolbox 获得。虽然您能够以非特权用户的身份启动 VNC,甚至可以安装它的本地副本,但您可能会发现,您只需成为 root 即可进行首次安装,这是最简单的一种方式。

    让我们来明确一下第一次试验将提供哪些内容。“Toolbox”安装将同时提供 VNC 服务器和客户机;后者通常称为查看器。要开始试验,您可能只需在 AIX 主机上安装服务器即可。在查看计算机(可能不是 AIX,甚至可能没有装配 X11)上,您需要选择一个查看器。对于 Windows®、Linux 和 MacOS 等常见的桌面,有多种不同的查看器可供使用。

    VNC 与 X11 之间有很多差异。X11 始终被认为是查看远程计算结果的标准方式,因此从某种角度来讲,X11 和 VNC 存在竞争关系。令人感到困惑的是,这两个工具还使用表面上截然相反的术语:

    * X11:
          o 服务器显示图形
          o 客户机计算要显示的结果
    * VNC:
          o 服务器呈现图形——通常位于执行计算的同一主机上
          o 客户机或查看器显示图形

    从网络角度来看,它们对“客户机”和“服务器”的用法是一致的。但如果稍不注意,这些标签便会让人感到迷惑不解。

    X11 和 VNC 既是对手,也是队友。在下面,您将看到 AIX 下的 VNC 服务通常都依赖于 X11。与单独使用 X11 相比,X11 和 VNC 的组合具有多项优点:例如,与(单纯的)X11 相比,VNC 在较长和/或较慢的连接上工作时运行较好,有时是好得多。另外,VNC 查看器无需进行字体管理,因而比安装 X11 服务器要容易得多。现在,除了在 UNIX® 主机的控制台上外,通常都将 X11 与 VNC 一起使用。

    在选择了各个部分后,请在 AIX 主机上用 vncserver :2 或类似命令以及保障安全的密码启动 vncserver。这会新建一个 X 服务器;另外,请在 AIX 主机上启动 xterm -display :2,以便提供一些用于显示的数据。

    现在,请转到已安装 VNC 查看器的桌面。启动一个指向 $AIX_IP_ADDRESS:2 的新查看器,输入密码。稍等片刻,您应看到 AIX 控制台,其中会显示已弹出的全新 xterm。
    您刚刚取得了一个重要的里程碑。您的 VNC 会话将“类似于”X,其中,您用于查看结果的计算机并不是执行大量计算的计算机。但请注意,它并不同于 X:请关闭查看器。重新启动查看器,并重新连接。您又返回到刚才的桌面,所有程序仍在运行!这说明,与传统的 X11 不同,VNC 是“可恢复的”。

    您将希望进行更多 的试验,以便根据需要对 VNC 进行自定义。请记住,VNC 是一个支持多种实现的开放标准,这一点我已在前面提到。例如,Bull 免费软件网站有一个备选服务器,除其他功能外,它还可以由 inetd 有效运行。

    下面是要考虑的另外一些可能性:

    * 通过 -geometry 参数,您可以设置更大的 framebuffer。大多数服务器的缺省设置都是 640x480,此大小虽然是今天常见硬件上的设置,但它在首次发明 VNC 的大约十年前更为适用。
    * 如果您的 AIX 安装足够新,您甚至无需安装查看器即可使用 VNC;您只需将启用了 Java™ 的浏览器指向 http://$AIX_IP_ADDRESS:5802 即可。您意识到这意味着什么吗?您可以向协作者演示最新的应用程序,而根本不需要进行安装。其条件是,这些协作者需要拥有启用了 Java 的 Web 浏览器。在 2007 年,谁还没有这样的浏览器呢?您可以为他们提供一个 URL 并使其指向您基于 AIX 创建的最新应用程序。
    * 与 X11 不同的是,VNC 允许同时连接多个不同的远程查看器。有关 *shared 标志的信息,请阅读您使用的 VNC 软件的文档。
    * 安全性是一个问题。如果您在网络上公开的 VNC 服务太多,攻击者将 进行探测。如果公开时间过长,攻击者便会用“蛮力”攻破您的密码。有关增强 VNC 安全性的多种可能,请参见本文末尾的参考资料。
    * 请注意,大多数 VNC 组件都有将显示器和端口号偏移 5800 的约定。例如,引用 X11 服务器的显示器时,:2 通常由端口 5802 提供。与很多 UNIX 实践相似,这种约定也是可配置的,但它有助于您学会识别起点::1-5801、:2-5802,依此类推。

    作为配置组件的 VNC

    在与其他组件一起使用时,VNC“表现极佳”。VNC 在使用上之所以更加便利,不仅是因为 VNC 支持多种不同的选项,还因为它易于配置,可以与您已有的其他实践很好地结合起来。例如,我在大学实验室工作,那里有很多计算机,它们全部被简单地配置为在启动后自动接纳以标准方式运行的 VNC 服务器。除其他好处外,这意味着实验室中的任何人都可以随时寻求帮助,支持专家只需“回头”即可了解情况,即使他此时正在跨越国界也能做到。这样,实验室中将无需一直设有各种支持专家,更不用让学生自己动手,从而使可管理性和经济性得到大幅提升。

    理解 VNC 的最佳方式是仅将它视为实现虚拟化的一个组件。通过将计算、显示、网络和管理标准化,它们将变为“可移动的”,在网络触及的任何地方,您都可以利用它们并对它们进行合理安排,以让它们最适于您的工程或业务条件。如果只是因为母板或显示管在物理上仅限于在某个特定的地区使用,将不能成为无法 工作的原因。

    当然,自动化同样适用于查看器端;我在自己的桌面上启动了一些例程,它们会自动连接到我在全球监视的服务器上的会话。我倾向于在查看器端使用一些选项——有时我更改颜色深度来降低带宽要求,有时我会更改输入或共享配置。出于“长期”使用的目的,我特别喜欢关闭指针和键盘事件,以使我的查看器变为只读的。这样可防止我在不经意间覆盖数据或以其他方式影响远程计算机,但我仍然可以监视它所执行的各种操作。

    AIX 专家应该了解的另一个工具是 x11vnc。x11vnc 是一个紧密绑定到物理硬件的 VNC 服务器。它着重于提高性能,这表现在:它不仅可用于通过 VNC 连接来查看 3D OpenGL 图形,其可移植性还允许它通过网络摄像机、电视谐调器及其他不寻常的硬件提供服务。x11vnc 可与目前 AIX 硬件上的大多数或全部 GXT*P 视频适配器兼容。

    作为开发平台的 VNC

    并非所有基于 VNC 的潜在附件都已编写完毕。您很可能遇到所需工具尚不存在的情况,例如罕见硬件上的查看器、有助于存档屏幕快照的录制和播放工具、支持电话会议的专用视频效果、或在建立 VNC 连接之前需要控制台批准的简单的通知小工具。

    开源 VNC 的丰富实现意味着,您可以学习他人是如何编写 RFB 的服务器和客户端的。另外,还有一些类似 tclRFB(请参见参考资料)的工具包可简化 VNC 编程。

    tclRFB 的 0.5 版包括一个示例查看器,其中提供了 500 行代码。只需添加另外几行代码,您就可以让查看器每隔 10 秒便自动保存一次远程连接的映像(请参见清单 1)。

    清单 1. 在示例 tclRFB 查看器中添加记录工具

      proc save_snapshot_and_repeat {canvas_name destination_file delay} {
          set suffix [clock seconds]
          $canvas_name postscript -file $destination_file$suffix.ps
          after $delay [list \
           save_snapshot $canvas_name $destination_file $delay]
      }

      set display_canvas .vp.fb     
      set file           my_snapshot
      set interval       10000            ; # Ten seconds.
      save_snapshot_and_repeat $display_canvas $file $interval
      
    虽然此示例将快照的格式设置为 PostScript,但通过其他可免费获得的库还可以生成 MPEG 和动画 GIF 等格式。

    我在此处提到的大多数功能本应在五年前就已实现:VNC 也类似于 Expect、screen 及其他工作效率方面的奇迹,这表现在:几乎它的所有功能在其创立之初便已昭然若揭,而之后的工作却仅限于细化。VNC 世界的所有新闻几乎都与小幅改进或修正有关。

    尽管如此,它最近还是取得了一些重大进展,您应该对此有所了解:

    * Synergy 是一种允许多台计算机共享一个鼠标和键盘的软件。这是一种不同于 VNC 的技术,但它将引起某些现在正使用 VNC 的管理员和开发人员的兴趣,进而使他们改弦更张。
    * NX 是由某个盈利公司开发的一种开源终端服务器。其作用是加快远程 X11、VNC 或其他一些受支持的技术的传输。如果您的远程查看性能不尽人意,何不尝试一下 NX。

    总结

    所有这些研究只有一个目的,即让您了解 VNC。您最终将找到最适合您的细化方式。开始体验 VNC 时,请注意以下问题:请不要让您与自己或他人要查看的计算机显示器之间出现物理距离。一旦您开始使用 VNC,就再也离不了它了。另外,正如本文所描述的,您只需稍做准备即可开始体验。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章