扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
不容错过的虚拟化工具
Virtual Network Computing (VNC) 的使用非常广泛,但人们对它还是存在很多误解。本文将仔细描述令 VNC 成为日常开发和管理工作中不可或缺的因素的基本功能,同时介绍 VNC 的一些最新进展。
您擅长使用 Virtual Network Computing (VNC) 吗?如果不擅长,您将发现,即使对此桌面共享系统 有些许了解,也会为您在履行日常开发或系统管理职责时带来莫大的帮助。
如果您已经熟悉 VNC,那就更好了:您尽可欣赏并体验基于 VNC 的最新创新。无论您从何处开始,下面的教程:
* 只需回头即可查看远在 5000 公里以外的同事的工作;
* 在周末从家中连接到办公桌面,查看花费了一个星期才设置好的进程;
* 通过指向-点击序列轻松指导位于异地的 AIX 新手,省去电话徒说之苦;
还有更多。开始之前,最好先做些准备工作,这只需几分钟即可。
为完成第一次试验,您需要:
* 安装 VNC 服务器(假定在 AIX 主机上);
* 启动服务器和查看器;然后
* 启动在一台计算机上运行、而在另一台计算机上显示结果的测试应用程序。
服务器安装及其他事项
VNC 基于一个名为 RFB 的公共网络协议(要进一步阅读有关本文中提到的技术主题的信息,请参见下面的参考资料)。VNC 软件分为专有版本和免费版本,可供多种平台使用;无论是大型机,还是手表般大小的小工具,VNC 都同样适用。具体对 AIX 而言,开始试验的一种简便方式是使用 Toolbox for Linux
让我们来明确一下第一次试验将提供哪些内容。“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 有效运行。
下面是要考虑的另外一些可能性:
* 如果您的 AIX 安装足够新,您甚至无需安装查看器即可使用 VNC;您只需将启用了 Java™ 的浏览器指向 http://$AIX_IP_ADDRESS:5802 即可。您意识到这意味着什么吗?您可以向协作者演示最新的应用程序,而根本不需要进行安装。其条件是,这些协作者需要拥有启用了 Java 的 Web 浏览器。在 2007 年,谁还没有这样的浏览器呢?您可以为他们提供一个 URL 并使其指向您基于 AIX 创建的最新应用程序。
* 与 X11 不同的是,VNC 允许同时连接多个不同的远程查看器。有关 *shared 标志的信息,请阅读您使用的 VNC 软件的文档。
* 安全
* 请注意,大多数 VNC 组件都有将显示器和端口号偏移 5800 的约定。例如,引用 X11 服务器的显示器时,:2 通常由端口 5802 提供。与很多 UNIX 实践相似,这种约定也是可配置的,但它有助于您学会识别起点::1-5801、:2-5802,依此类推。
作为配置组件的 VNC
理解 VNC 的最佳方式是仅将它视为实现虚拟化的一个组件。通过将计算、显示、网络和管理标准化,它们将变为“可移动的”,在网络触及的任何地方,您都可以利用它们并对它们进行合理安排,以让它们最适于您的工程或业务条件。如果只是因为母板或显示管在物理上仅限于在某个特定的地区使用,将不能成为无法 工作的原因。
当然,自动化同样适用于查看器端;我在自己的桌面上启动了一些例程,它们会自动连接到我在全球监视的服务器上的会话。我倾向于在查看器端使用一些选项——有时我更改颜色深度来降低带宽要求,有时我会更改输入或共享配置。出于“长期”使用的目的,我特别喜欢关闭指针和键盘事件,以使我的查看器变为只读的。这样可防止我在不经意间覆盖数据或以其他方式影响远程计算机,但我仍然可以监视它所执行的各种操作。
作为开发平台的 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
我在此处提到的大多数功能本应在五年前就已实现:VNC 也类似于 Expect、screen 及其他工作效率方面的奇迹,这表现在:几乎它的所有功能在其创立之初便已昭然若揭,而之后的工作却仅限于细化。VNC 世界的所有新闻几乎都与小幅改进或修正有关。
尽管如此,它最近还是取得了一些重大进展,您应该对此有所了解:
* Synergy 是一种允许多台计算机共享一个鼠标和键盘的软件。这是一种不同于 VNC 的技术,但它将引起某些现在正使用 VNC 的管理员和开发人员的兴趣,进而使他们改弦更张。
* NX 是由某个盈利公司开发的一种开源终端服务器。其作用是加快远程 X11、VNC 或其他一些受支持的技术的传输。如果您的远程查看性能不尽人意,何不尝试一下 NX。
总结
所有这些研究只有一个目的,即让您了解 VNC。您最终将找到最适合您的细化方式。开始体验 VNC 时,请注意以下问题:请不要让您与自己或他人要查看的计算机显示器之间出现物理距离。一旦您开始使用 VNC,就再也离不了它了。另外,正如本文所描述的,您只需稍做准备即可开始体验。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者