我正在使用 ssh -X 在笔记本电脑(ubuntu 上的 ubuntu)上的虚拟机上运行程序(intellij),但它有点太慢了。我想做点什么来减少 ssh 的开销(也许使用其他东西?)
vnc 也好不到哪里去,而且不能很好地与剪贴板等配合使用。
答案1
如果安全性不是必需的,例如在运行虚拟化操作系统的情况下。您可以直接在非虚拟机 Ubuntu 屏幕上打开 X11 窗口。理论上,这应该可以为您提供最佳速度和最低延迟,尽管在某些情况下我注意到 VNC 做得更好。唯一的缺点是,如果没有一些额外的辅助应用程序,您无法关闭应用程序的连接并稍后重新连接。
假设您的 VM Ubuntu 的 IP 地址为 10.0.0.2,而“真实”的 Ubuntu 的虚拟接口 IP 为 10.0.0.1,并且是虚拟机的网关(这是您在 NAT 模式下会遇到的情况。在桥接模式下,两个操作系统的 IP 都是由某个外部 DHCP 服务器提供的,或者是手动设置的)。
在非虚拟机 Ubuntu 上,您需要使用 xhost 命令来允许来自虚拟机的传入 X11 连接,为此请在终端应用程序上写入:
xhost +10.0.0.2
然后使用 ssh 或虚拟机终端连接到虚拟机并打开终端应用程序并写入:
export DISPLAY=10.0.0.1:0.0
然后,当您从该终端窗口运行应用程序时,它会直接在非虚拟机 Ubuntu 上打开其窗口。
答案2
您可以使用 -C 请求 ssh 压缩:
ssh -X -C 我的主机
-C 请求压缩所有数据(包括 stdin、stdout、stderr 以及转发的 X11 和 TCP 连接的数据)。压缩算法与 gzip(1) 使用的算法相同,并且“级别”可以由协议版本 1 的 CompressionLevel 选项控制。在调制解调器线路和其他慢速连接上需要压缩,但只会降低快速网络的速度。默认值可以在配置文件中逐个主机设置;请参阅 Compression 选项。
或者你也可以尝试 FreeNX,它比 VNC 更快