`
阅读更多

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

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

  • 引言
  • 作为配置组件的 VNC
  • 作为开发平台的 VNC
都应至少包括一些场景,以突出 VNC 的不可或缺性。

关于一个重要工具的简介

顺便提一下,用不可或缺 来形容 VNC 再恰当不过了;它与 sshscreenExpect 以及其他一些被广泛应用的工具属于同一类别,这些工具可使工作效率成倍 提升,而不仅仅是小幅提高。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:
    • 服务器显示图形
    • 客户机计算要显示的结果
  • VNC:
    • 服务器呈现图形——通常位于执行计算的同一主机上
    • 客户机或查看器显示图形
从网络角度来看,它们对“客户机”和“服务器”的用法是一致的。但如果稍不注意,这些标签便会让人感到迷惑不解。

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 支持多种不同的选项,还因为它易于配置,可以与您已有的其他实践很好地结合起来。例如,我在大学实验室工作,那里有很多计算机,它们全部被简单地配置为在启动后自动接纳以标准方式运行的 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,就再也离不了它了。另外,正如本文所描述的,您只需稍做准备即可开始体验。

参考资料

学习
  • 您可以参阅本文在 developerWorks 全球站点上的 英文原文

  • Productivity tips”(developerWorks,2006 年 9 月):这篇文章重点介绍了可为日常工作带来重大变化的技术,例如 VNC。

  • Expect exceeds expectations”(developerWorks,2002 年 4 月):了解如何自动处理很多通常仅被视为交互式的任务。

  • 请阅读以下有关安全 Shell (SSH) 的文档:
  • GNU Screen:GNU Screen 的命令行连接功能与 VNC 的视觉显示功能大体相同。通过 screen,您可以使用单个甚至慢速的命令行连接来管理多个面向字符的窗口。您可以浏览这些窗口,也可以断开连接并在以后从其他位置重新连接等等。您会发现,screen 与 VNC、ssh 和 Expect 类似,也是一个不可或缺的程序。

  • RFB:RFB 是一个用于从远程访问图形用户界面的简单协议。作为一项公开发布的协议,RFB 具有多种实现,包括专有版本和免费版本。

  • IBM AIX Toolbox:此网页包括 VNC 以及其他多种有用的软件应用程序。

  • Bull 免费软件:此网站包含可选的 VNC 服务器。

  • 此 Usenet 线程:不同的 AIX 系列具有不同的图形硬件。此讨论说明,只要您愿意,可以方便地将 VNC 服务绑定到主机的主控制台。

  • Create a VNC system with tclRFB”(developerWorks,2003 年 8 月):这篇文章介绍了作为 VNC 编程工具包的 tclRFB。

  • x11vnc:x11vnc 是一个 VNC 服务器,它内置有各式各样的功能,包括 UNIX 帐户和密码支持、服务器端伸缩、文件传输功能和 OpenGL 兼容性。

  • Synergy:Synergy 允许多台计算机方便地共享一个鼠标和键盘。

  • NX:NX 是一种终端服务器,它在提高传输性能方面取得了长足的发展,例如传输 VNC。

  • Remote computing with a Linux application server farm”(developerWorks,2007 年 2 月):这篇文章向 developerWorks 报告了 VNC 的巨大作用:为大学实验室节省了大量资金。

  • SSL secures VNC applications”(developerWorks,2007 年 1 月):请阅读此文章,了解为什么通常都通过 SSH 建立 VNC“通道”来保护连接的安全。

  • AIX and UNIX:“AIX and UNIX developerWorks”专区提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。

  • New to AIX and UNIX:访问“New to AIX and UNIX”页面可了解更多关于 AIX 和 UNIX 的内容。

  • AIX 5L™ Wiki:AIX 相关技术信息的协作环境。

  • 查看 Cameron Laird 撰写的其他文章和教程:
  • 按主题搜索“AIX and UNIX”库:
  • Safari 书店:访问此电子参考资料库可查找特定的技术资源。

  • developerWorks 技术事件和网络广播:了解最新的 developerWorks 技术事件和网络广播。

  • Podcast:收听 Podcast 并与 IBM 技术专家保持同步。
分享到:
评论

相关推荐

    远程桌面 tightvnc

    5. **TightVNC-donate.url**: 这是一个捐赠链接,鼓励用户对开源项目TightVNC进行捐赠以支持其持续发展和维护。 6. **Web**: 可能是一个指向TightVNC官方网站或其他相关网页的链接,用户可以通过这些链接获取更多...

    VNC服务端4.0

    1. **跨平台兼容性**:VNC最初是基于X Window System开发的,但随着时间的发展,它已经支持多种操作系统,包括Windows、Linux、macOS等。VNC4.0特别强调对Windows XP和2003的支持,这表明它可以无缝地在这些Windows...

    远程控制软件UltraVNC 1.0.1(win32)源代码

    开源软件鼓励社区参与,促进了软件的持续改进和定制化发展。 3. **反向连接**:UltraVNC的一个特色功能是支持反向连接,这意味着远程计算机可以主动连接到客户端,而无需暴露客户端的IP地址。这对于防火墙后或动态...

    VNC Central-开源

    总的来说,VNC Central提供了一种强大且灵活的方式来管理和控制远程计算机,而开源特性则保证了它的透明度和可持续发展。通过了解并掌握这些核心组件,用户不仅可以更有效地利用该工具,还可以参与到软件的改进和...

    libvncserver 动态库(包含mips架构、arm架构、x86架构)

    总结,libvncserver 动态库是一个强大且灵活的工具,它允许开发者在多种硬件平台上构建 VNC 服务器,适应各种环境,包括信创领域。它的多平台支持、易用性以及安全性使其成为远程桌面解决方案的重要组成部分。结合...

    VM延伸硬碟空間

    在虚拟化环境中,VMware vSphere的vCenter服务器是一个强大的工具,它允许管理员对虚拟机(VM)进行各种管理操作,包括扩展虚拟硬盘...随着技术的发展,虚拟化管理工具也在不断优化,使得这类操作变得更加直观和安全。

    linux的各种服务器架设总汇

    动态主机配置协议(DHCP)服务器在自动化网络配置中非常有用,它允许计算机自动获取IP地址和其他网络配置信息。Linux环境下,ISC DHCP服务器是比较常见的选择,其配置文件通常位于/etc/dhcp/dhcpd.conf,需要配置的...

    “三网融合”的车联网概念以及在汽车工业中的应用分析.pdf

    车联网,简称为VNC(Vehicle Network Communication),是一种车辆与车载设备利用无线通信技术,在行驶中进行信息交换和管理的网络系统。它涉及车辆间的通信(V2V)、车辆与基础设施间的通信(V2I)、以及车辆与网络...

    2021个人转正述职报告范文.doc

    1. 持续学习,跟进行业发展动态,掌握新的技术和知识,以提升专业素养。 2. 提高工作效率,避免因疏忽或懒散导致的工作延误,通过勤奋学习和实践提高自身技能。 3. 培养更强的决策能力和问题解决能力,以更冷静、...

    AIX\IBM 小型机逻辑分区

    随着技术的发展,IBM在POWER5处理器上引入了微分区技术,这使得DLPAR的资源调整能力不仅限于物理资源,还扩展到了虚拟资源。微分区可以被视为更小粒度的LPAR,它们可以更灵活地进行资源的动态分配,甚至是在微分区...

    论文研究-基于上下文感知的应用共享模型 .pdf

    文中提到的代表性瘦客户计算技术包括Stanford大学的SLIM,它基于X协议,并运行在Unix/Linux系统上,而AT&T剑桥实验室的VNC基于远程帧缓冲协议,提供远程桌面显示环境。这些技术虽然在某些方面取得了成功,但通常缺乏...

    “云+”服务器端+移动端

    在IT行业中,“云+”服务器端+移动端的架构已经成为现代技术发展的重要趋势。这种架构结合了云计算的强大计算能力,服务器端的稳定处理以及移动端的便捷访问,为远程控制PC机提供了全新的解决方案。以下是对这个主题...

    TclRFB-开源

    Tcl 语言以其简洁的语法、动态类型和丰富的库支持而闻名,TclRFB 利用这些优势,使得远程桌面控制变得更加灵活和可定制。开发者可以通过编写简单的 Tcl 脚本,实现对远程机器的自定义操作,如自动化测试、远程监控或...

    论文研究-基于瘦客户计算的多服务集成 .pdf

    瘦客户计算已经发展成为一种重要的计算模式,并且随着瘦客户计算和网络的发展,大范围的瘦客户计算为未来的网络服务提供了可能性。 在适当的远程显示协议支持下,Internet范围的瘦客户计算性能无明显下降。但是,从...

    转正个人述职报告三篇.docx

    - **知识点13**: 掌握最新技术动态,跟进行业发展趋势。 - **知识点14**: 提升项目管理能力,有效规划和执行项目。 - **知识点15**: 加强团队协作能力,与同事高效合作。 - **职业素养**: - **知识点16**: 遵守...

    多功能可移动机械臂平台的研制.pdf

    具体的功能介绍包括能够实时构建3D地图并显示测算方向和行动轨迹,平台数据和图像的实时回传,远程编程能力,远程动态调试PID控制,以及颜色和位置识别功能。 在应用方面,文档说明了如何操作该机械臂平台。使用...

    物联网计算机网络安全与远程控制技术初探 (1).pdf

    3.1 使用安全的远程访问协议:如SSH、VNC等,这些协议提供了加密和身份验证功能。 3.2 实施严格的远程访问策略:例如,只允许特定IP地址或设备进行远程访问。 3.3 监控远程访问活动:通过日志记录和审计,及时发现...

    转正述职报告.doc

    在这一领域,作者通过实际项目和培训,对系统工程有了深入理解,掌握了如INFOTV、VNC4.0等软件的操作,并且能够独立完成一些系统维护和配置工作。然而,他也认识到自己在某些方面的不足,比如软件学习和工程策划,...

    Linux11_InstallGuide.pdf

    它的发展历程,是全球范围内计算机高手通过互联网协同合作的典范,继承并发扬了Unix系统近三十年的技术精髓。从最初的0.02版到如今,Linux已成长为世界上最大的开源软件集合之一,以其高效的核心和海量的应用程序,...

    qemu-0.9.1-windows

    3. **动态翻译**:QEMU使用动态二进制翻译技术将虚拟机的指令转换为宿主机可执行的指令,从而实现高效运行。 4. **图形用户界面**:QEMU提供了一个可选的VGA图形适配器模拟,使得用户可以通过VNC(Virtual Network ...

Global site tag (gtag.js) - Google Analytics