甚至当我读了《Unix Haters》手册中有关 X 的章节后,我仍然认为 X 是 Unix 优于 Windows 的因素之一,因为它使得使用图形用户界面远程操作机器成为“可能”。
但是在大量使用 Windows 远程桌面(甚至具有完全正常运行的 Unix 客户端)之后,我不得不说远程 X 感觉越来越古老了。
今天,我无意中将我的固定 Windows 机器置于睡眠状态,结果丢失了整个工作环境,该环境自今年 5 月以来一直在运行,使用 Xming 通过 X 运行。即使我运行的是 Ubuntu,它也会丢失,因为当 X 服务器消失时,我的工作环境(包括 gnome-terminal 会话和 emacs 会话)立即消失。当然有屏幕如果您可以忍受 Ctrl-A 冲突,它可以保存您的 gnome-terminal 会话,但是对于 X 来说呢?
如果我的远程机器是 Windows 服务器,我只需重新连接我的远程桌面客户端并继续操作,就像什么都没有发生一样。
为什么 Unix 社区允许这种脆弱的远程图形环境持续存在而没有进行适当的改进?我在 Google 上搜索了好几次,也研究过 VNC 和 NoMachine,但它们似乎要么做得不对,要么是出于商业目的,要么在各个方面都受到了损害。
我最近发现了一个在性能方面很尴尬但更优越的解决方案,我没有使用 NX 或 VNC(我甚至尝试了实验性的 xpra 实用程序),而是尝试了一种完全不同的方法,效果非常好:
- 在 Linux 主机上安装 VirtualBox
- 在 VirtualBox 中,安装 WinXP(或者您喜欢的任何 Window XP/Vista/7 版本)。
- 在虚拟 Windows 机中,安装 Xming
- 在虚拟 Windows 机中,启用远程桌面访问。
- 以无头模式重新启动虚拟机(VBoxManage startvm姓名--类型无头)
使用远程桌面,启动 Xming...享受,这是迄今为止我尝试过的最快的、可重新连接的 X 服务器解决方案。
笔记也许可以运行虚拟 Linux 机器而不是 XP,并使用 VirtualBox 中内置的 VRDP 协议,我还没有尝试过。该解决方案不需要基于 Windows/Xming 的解决方案,并且可以完全使用 OSS 构建。
答案1
在远程系统上运行一个 X 服务器,该服务器作为 VNC 服务器呈现给您的工作站。
让远程系统上的 X 客户端连接到该 X 服务器,然后使用 VNC 客户端将您的工作站连接到该服务器。
这虚拟主机X/VNC 服务器是标准 AT&T VNC 发行版的一部分 - 我相信大多数 VNC 发行版仍然附带等效的东西。
为了回答你问题中“为什么它不能按照我的要求做?”的部分,X 本来就不是为你现在做的事情而设计的 - 说得更直白一点,X 就是不是远程访问。它是远程展示。X
是为大型大学设计的,在大学里,数据中心里有大型服务器,没有显示器,计算机实验室里有小型图形终端,没有真正的 CPU 马力,通过以太网相互连接(不太可能出现故障,如果出现故障,问题就大了)。
同样的原则也适用于 X 会话和 telnet 或 SSH 会话 - 如果底层网络链接消失,会话将终止。
X 本身已经很古老了。vi
甚至更古老。 两者都完全按照原始设计者的目的完成工作,功能扩展最少。 这是 Unix 的方式。
答案2
我使用 nxserver http://www.nomachine.com/ 您可以连接到 X 或 Windows rdp 会话,如果断开连接,它将恢复您的上一个会话,重新启动并压缩连接,以便它在慢速连接(gsm/gprs)上运行良好(比 rdp 或 vnc 更好)。