远程克隆 xorg 会话

远程克隆 xorg 会话

有人知道如何克隆/连接到正在运行的 xorg 服务器,以便实时查看监视器/显示器显示的内容吗(显示器距离几英里,但我可以通过 TCP/IP 访问它)?我有一个小脚本可以获取屏幕截图,但有点受限。

#!/bin/bash
REMOTE_USER=root
IP=$1
IMAGE_FILE=/tmp/host_${IP}_`date +"%Y%m%d-%H:%M:%S"`.png
ssh root@$IP 'xwd -d :0 -root | gzip' | gunzip | convert - $IMAGE_FILE

我认为如果可能的话,以软实时方式查看显示屏上显示的内容会很好。:)

提前致谢,

汉伯

答案1

我的机器的 bin/startvnc 中有这个:

x11vnc -display :0 -localhost -nopw -clear_mods

如果盒子上有其他用户,-nopw如果您对安全性很担心,请将其删除。

我使用如下方式登录:

ssh -C -L 5904:localhost:5900 box

然后运行startvnc

然后在我的本地机器上运行

xvncviewer 0:1

它不像单个命令那样自动化,但无论如何我总是登录到屏幕会话,所以如果我想使用 vnc,我只需打开一个新的屏幕窗口并运行 startvnc,

答案2

如果您想在远程机器上安装 x11vnc,您可以像这样使用它:

ssh 远程 IP 地址 sudo x11vnc -auth /home/some_user/.Xauthority -display :0

记得在 sshd.config 中启用 X11 Forwarding。并且你需要一个 VNC 客户端。

如果您不想使用 VNC,您可以使用任何其他程序,例如 Xnest:

Xnest -geometry 1024x768:1&DISPLAY=:1 ssh -X gnome-session

针对您的特殊情况,需要进行一些修改,但对于使用 xwd 的人来说,这应该不是问题。

答案3

也许这对您的特定情况来说有些过分。但我还是会发布它,以防将来对其他遇到此问题的人有用。

连接到 X 会话的另一种方法是在您希望远程控制的机器上设置 FreeNX。然后在您的本地机器上运行 NX 客户端,请求影子会议

当 NX 客户端连接到远程计算机时,您将看到可用会话列表。如果您选择“X0(本地)”,您将能够查看和控制远程显示。

更多详情,请参阅NX 入门(参见第 4.5 节“桌面共享和会话影子”)

答案4

实际上,对于某些发行版(例如 Opensuse 11.2),如果您要使用 x11vnc,那么您可能需要使用为登录管理器(gdm、kdm)创建的 .Xauthority 文件,而不是为用户本身创建的文件(类似于 /home/user/.Xauthority 等),您可以在 Opensuse 中找到它,查看:

/var/lib/xdm/authdir/authfiles/something-name-psedorandomly-generated

  • 可能您应该在尝试使用 .Xauthority 文件之前清理此目录(它将是许多以前为以前的 X 会话创建的身份验证文件),关闭 X 然后重新启动它,之后,您会发现一个新文件,这是最近启动的新 X 会话的实际授权。

如果您正在使用其他发行版,您可能应该查看 /var/lib/gdm、/var/lib/kdm 和类似的目录。

相关内容