当 X 服务器已运行时远程启动 x11vnc

当 X 服务器已运行时远程启动 x11vnc

我有一台已登录的 ubuntu linux 机器,并且 X 服务器正在运行(它通过 gdm 之类的登录管理器)。我可以通过 ssh 访问这台机器。我的目标是在这台机器上启动 x11vnc 并将其连接到已在运行的 X 服务器。

当我通过 ssh 进入机器并启动 x11vnc 时,它显示:

X11 was unable to open the X DISPLAY ":0", it cannot continue.

如果我无法物理访问远程计算机并且 Xserver 已启动,我该如何在远程计算机上启动 x11vnc。我想要这样做的原因是远程计算机打开了几个我想处理的窗口。

编辑:我也尝试了 x11vnc -find。这次它没有给我那个错误消息,并且能够检测到客户端已连接:

Got connection from client x.x.x.x
...
wait_for_client: find display cmd failed
wait_for_client: bad reply '
'

因此看起来 -find 命令只是延缓了不可避免的事情。

谢谢,

答案1

我使用的是 gnome,所以我所做的只是将 gnome 正在使用的 x 权限文件提供给 x11vnc。具体操作如下:

x11vnc -xauth /var/lib/gdb/:0.Xauth -display :0

答案2

我发现在我的 gentoo kde 桌面上,当 kde 已经运行时,这非常有用。

x11vnc -xauth /var/run/xauth/A:0-bHJFac -display :0 -passwd “密码” -forever -shared

答案3

为我

Description:    Debian GNU/Linux 6.0.5 (squeeze)
Release:        6.0.5
Codename:       squeeze

apt-cache policy gdm3
gdm3:
  Installiert: 2.30.5-6squeeze4

即使我通过 ssh 远程登录,这也运行良好:

su -c "x11vnc -auth /var/run/gdm3/auth-for-username*/database -display :0 -forever -passwd foo"

编辑:您也可以使用 ssvnc 等,以便通过 ssh 轻松使用 vnc。只需像上面一样启动 x11vnc,但使用“-localhost”选项:

su -c "x11vnc -auth /var/run/gdm3/auth-for-username*/database -display :0 -forever -passwd foo -localhost"

然后您可以单击 ssvnc 脚本中的“使用 SSH”,它将通过 ssh 连接,因此 x11vnc 无需全局监听!

答案4

使用x0vncserver反而:

x0vncserver 是一个 TigerVNC 服务器,它使任何 X 显示器都可以通过 VNC、TigerVNC 或兼容查看器进行远程访问。与 Xvnc(1) 不同,它不会创建虚拟显示器。相反,它只是共享现有的X服务器(通常是连接到物理屏幕的那个)。

相关内容