更多使用技巧
使用标准组件和协议的一个优点是它们可以非常简单地进行替换。例如,我们的开发大部分都采用了 Xvnc 服务器,还有一些方法可以取代上面方法中的 TightVNC。注意这些替代方法使用的命令行参数可能会稍有不同;不过,在所有情况中,原理都是相同的。几乎所有的 Linux 发行版都提供了根据发行版标准进行封装的 VNC 服务器,一些开源 VNC 项目甚至很容易从源代码进行安装。任何 VNC 服务器安装中最困难的部分是需要特定的默认字体。不过,即使在这种情况下,至少提供了明确的补救措施。
在浏览器中使用启用 SSL 的 VNC 查看器至少存在一点风险。它在所有主要浏览器中都可以使用,包括 Mozilla Firefox、Internet Explorer 和 Opera,不过所有浏览器都需要使用 Java runtime 1.4 或更高版本。当用户使用旧版本的 Microsoft Windows 操作系统时就会出现问题,旧系统仍然依赖于 Microsoft JVM 1.1。在这种情况下,VNC 查看器无法在 Internet Explorer 上运行,并发送报告表示找不到 VncViewer 类。惟一的解决方案是为 VNC 服务器提供一个非 SSL 的连接,并建议将 Java 升级到任何最新的 Java 运行时上。
默认情况下,大部分 VNC 服务器都 不 共享桌面;即任何连接都会关闭之前的连接。要进行协作、技术支持以及类似的应用,使用一个命令行参数 -alwaysshared 或类似方法来启动服务器,按照文档规范来执行。这样允许多个用户同时连接到同一个桌面上。
重点是什么?
尽管您可能已经使用了 VNC、Web 服务、Java、SSL、浏览器等等,不过您可能从来没有将它们结合在一起使用。现在您究竟获得了什么呢?
|
实际上,您现在获得的东西非常多。首先,这是一个非常类似于 GUI 的 screen;也就是说,您可以在工作时启动 GUI 会话,并结合使用您具有的所有功能和性能,离开会话并通过任何一个具有 Java 功能的 Web 浏览器重新连接到相同的会话。这是一个功能非常强大的工具。
不过,您还获得了更多内容。VNC 对于电话会议来说非常方便。例如,我们使用它来为非技术用户建立一个复杂图形应用程序的展示。原则上来说,远程 X 服务器也可以执行相同的功能,但是 VNC 提供了很多优点:
- 安全性更具有可管理性。
- 与 X 相比,VNC 通常更容易通过防火墙。
- VNC 查看器比 X 服务器更容易安装 —— 尤其是那些免于安装的基于浏览器的查看器。
- 很容易通过 VNC 为多个查看器提供一个桌面。
- VNC 通常较少受到网络延迟的影响。
- X 认证(和 ssh 隧道)通常都是基于 /etc/passwd 级的帐号的,而基于 Web 的访问使用的则是 HTTP(S) 认证。创建并维护这种帐号需要很多经验,即使对于临时使用(例如电话会议演示)也是如此。
- 与 X 服务器相比,VNC 查看器需要更少的内存和相关硬件。
- VNC 服务器通常为只读访问提供了非常有用的配置。
另外使用该技术的例子的一个关键点是最繁重的加密计算负载是由 “本地” 代码非 Java 运行时来执行的。尽管假设网络延时是决定性能的第一个因素是非常安全的,但是加密和解密的代价太高,使得无法使用其他替代技术(除非使用具有极高性能的计算机)。通过 SSL 使用 VNC 的一个令人愉悦的优点是,在旧硬件甚至非常简单的硬件上使用标准软件就可以快速产生可以接受的响应能力。
您可能还有一些不同的需求和资源。您需要自己确定 VNC 与 Citrix、Windows Terminal services、 WebEx、Hamachi 以及其他 “远程” 解决方案所提供的商业软件相比到底如何。不过,我们已经看到通过 SSL 使用 VNC 已经解决了相当多的问题。
在后续文章中,我们将展示如何将 VNC 与其他虚拟化技术组合在一起实现功能强大的资源共享技术。不过在结束本文之前,有一点重要的问题需要提醒读者:VNC 存在非常严重的安全问题。由于 VNC 只使用一个会话密码进行保护,如果对标准 VNC 服务进行几个小时或几天的蛮力攻击,很可能就会破解。对 VNC 感兴趣的 “坏家伙们” 的数量正在迅速增加;请 确保 您对 VNC 使用了一个非常强壮的密码,至少有 8 个字母,最好是数字、字母和其他符号的组合。SSL 提供了很多保护机制,如果每次会话时间要持续几个小时,就应该考虑使用这些保护机制。在后续文章中我们将更详细地介绍安全性问题。
上面的方法利用了几个功能强大的开源示例,但是它本身几乎没有实现独创的编程。居然没有人编写文档来论述将这些组件组合起来,而这种组合非常的方便,这实在令人惊讶。有关 VNC、SSL 和其他内容的更详细介绍请参看 参考资料 一节的内容。
结束语
在下一篇文章中,我们将更详细介绍两个通过 SSL 使用 VNC 可以大展宏图的特定工作场所,以及如何在自己的环境中采用这种技术,包括如何与防火墙和代理协作使用。我们还将介绍使用 “本地” VNC 查看器与本文提到的承载浏览器的客户机协同工作何时能够成为一个优点。
这里要特别感谢 Matt Kennel,他和我们一样担心安全性问题,并对如何实际应用通过 SSL 使用 VNC 的技术与我们进行了讨论。
原文链接:http://www.ibm.com/developerworks/cn/linux/l-sslvnc.html


