如何从远程机器显示 X11 屏幕? (替代 ssh -X)

如何从远程机器显示 X11 屏幕? (替代 ssh -X)

我在本地一台没有 root 权限的机器上。 X 转发已禁用。

我在没有屏幕的机器上远程运行一个进程,使用Xvfb虚拟帧缓冲区模拟 X 服务器,但丢弃任何显示的图像。这相当有效。

现在,有些东西不起作用,我需要通过查看 X 屏幕进行调试。我确实Xvfb截取了屏幕截图xwd -display :99 -root -out /tmp/screenshot.xwdump,但按顺序查看其中许多内容非常复杂。

有没有办法从我的客户端连接到服务器,然后连接到帧缓冲区以便在本地显示远程 X 窗口?

这可能是第二个ssh渠道。理想情况下,X 程序应该在断开连接后继续运行,如果可能的话,我希望能够在第二次连接之前启动它(想想spice)。

我只有到服务器的传出连接,并且只有端口 22。在两台机器上根权限都不可用。

PS:这个问题类似于通过 ssh 运行程序但我的要求是,不能在客户端或服务器上安装任何程序root,这似乎排除了xpra(那里给出的答案),除非我找到一种简单的方法来使用它。

答案1

xpra是你的朋友:http://xpra.org/。安装xpra在服务器和客户端上。

xpra通过 ssh启动服务器

xpra start-desktop ssh:user@server:XVFBDISPLAY --use-display --start-via-proxy=no

或者:如果您已经登录到服务器,您可以使用以下命令启动 xpra 服务器

xpra start-desktop :XVFBDISPLAY --use-display --start-via-proxy=no

xpra从客户端开始

xpra attach ssh:server:XVFBDISPLAY

您可以稍后再分离并重新连接:

xpra detach ssh:server:XVFBDISPLAY

(替换XVFBDISPLAY为 的显示编号Xvfb。)

相关内容