我有一台已登录的 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服务器(通常是连接到物理屏幕的那个)。