我进行了以下设置:
|-----------------| |---------------|
| Windows | LAN (or VPN) | Linux box |
| (local machine) | <--------------------> | |
|-----------------| |---------------|
我想从我的 Windows 机器访问 Linux 机器上的 Emacs 和 Eclipse 窗口最小延迟。
我的选择似乎是:
- 虚拟网络控制器
- 使用 Virtualbox 和 Ubuntu 在我的本地 Windows 主机上虚拟化 Linux 来宾,然后
ssh -X
从它到 Linux 盒子(这里是一个讨论配置的线程)快速 ssh X 隧道) - cygwin 与 X 服务器并
ssh -X
连接到远程盒子。
目前我使用 RealVNC,但我注意到一些值得注意的潜伏。做了一些研究后,我继续阅读维基百科下列:
VNC协议是基于像素的。虽然这带来了很大的灵活性(即可以显示任何类型的桌面),但它通常比更好地理解底层图形布局(如 X11 或 Windows 远程桌面协议)的解决方案效率低
这让我想知道,我必须有哪些选择才能获得最快的访问 从本地 Windows 机器远程 X windows?
答案1
我认为最大带宽的最新技术是NX,一个X11协议压缩程序。它在延迟方面也应该表现良好。尝试使用Windows NX 客户端和免费 NX 服务器在 Linux 上。
如果可能,请使用直接 TCP 连接而不是 SSH。当然,这仅在没有安全隐患的受控环境中可行。
我认为在大多数设置中,本地运行的虚拟机将为您提供最佳的延迟。更好的是,在 Windows 下运行 Emacs 和 Eclipse;让他们编辑远程文件,或者(为了获得更好的结果)让他们编辑本地文件,然后您可以与 Unison 或通过版本控制系统同步这些文件。
答案2
我同意 Mobaxterm 在 x 转发方面速度很快。然后我发现它使用的是基于cygwin的ssh,但它仍然比我的cygwin/ssh快。在查看调试信息后,我发现 Mobaxterm 的秘密在于使用aes128-ctr而不是更常见的aes256-CBC密码,使用hmac-sha1并默认打开压缩。
在 Cygwin 中,
ssh -m hmac-sha1 -c aes128-ctr -C
应该会给你接近 mobaxterm 的性能。如果您仍然认为 mobaxterm 更快,您可以直接使用 _ssh.exe,您可以在 mobaxterm 根目录中找到它。
一些博客/答案建议使用类似的密码弧形四或者河豚鱼。他们应该比aes128-ctr(针对旧CPU),但它们已经过时并且不一定在所有平台上可用。您可以通过以下方式查看所有支持的密码和 MAC:
ssh -Q cipher
ssh -Q mac
这基准表明 aes128-gcm 应在现代 CPU 上为您提供最佳性能。
更新:
有些人建议反对压缩。我想说假设 -C 仍然有帮助,除非你的试验结果相反,即使你相信你的网络是完美的。由于数据传输量非常巨大,并且压缩率令人印象深刻,例如
debug1: compress outgoing: raw data 603154, compressed 141717, factor 0.23
debug1: compress incoming: raw data 67841628, compressed 641357, factor 0.01
实际上,我尝试使用直接 tcp 和 ssh 进行 x 转发,并通过压缩和适当的密码在内部 100Mbps LAN 连接上实现 <1ms 延迟。 ssh 选项显然更快。
答案3
Windows 远程桌面工作得很好——只要您在 Linux 机器上运行 xrdp(根据我的经验,它比 VNC 明显不那么烦人并且响应更快)。
xrdp 在 Linux 机器上运行 X 服务器,然后将其连接到 RDP。
事实上,尽管我通常在这条线路的两端都安装了 Linux,但只要普通的 X11 转发速度太慢,我通常更喜欢 rdesktop,而不是 xrdp,而不是 VNC。 VNC 只是法语“不太好用”的缩写。
答案4
事实上我很震惊地发现莫巴克斯术语速度超快。
我是一名软件开发人员,我使用名为 Qt Creator 的 IDE。众所周知,Qt Creator 非常非常快,但 Putty + Xming 太慢了,我放弃了通过远程 xserver 使用它。最终 Mobaxterm 的速度让我震惊。尝试一下。