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

我有一台Ubuntu的Linux机器,我已经login,X服务器正在运行(它是通过loginpipe理器像gdm)。 我可以通过SSH访问这台机器。 我的目标是在这台机器上启动x11vnc并将其连接到已经运行的X服务器上。

当我进入机器并启动x11vnc时,它说:

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

如果我没有物理访问权限并且Xserver已经启动,如何在远程机器上启动x11vnc。 我想这样做的原因是因为远程机器有几个窗口打开,我想工作。

编辑:我也试过x11vnc -find。 这一次它没有给我这个错误信息,并能够检测到客户端连接:

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

所以看来命令只是延迟了不可避免的。

谢谢,

我在gentoo kde桌面上find了这个工程,当kde已经在运行的时候,这个工程很好用。

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

我正在使用GNOME,所以我只是简单地给x11vnc x权限文件gnome使用。 这是通过:

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

为了我

 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远程login:

 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脚本中的“Use SSH”,它将通过ssh连接,所以x11vnc不需要全局监听!

我以非常迂回的方式解决了这个问题,所以我只想详细说明我是如何做到的,这是非常不理想的。 其他人已经给出了优雅和短的解决scheme。

我面临的问题是,x11vnc拒绝通过SSH启动,说它没有find任何graphics显示。 所以我的解决scheme是….

首先,通过SSH作为根用户,我在机器上启动了一个TigerVNC服务器:1

 # vncserver :1 

(从根开始是愚蠢的)

然后我使用我的客户端计算机上的TigerVNC连接到此显示器

 Connect to: abcd:1 

现在我在GUI中(非常愚蠢)。 我打开了一个terminal,并以我的原始用户身份启动x11vnc

 # sudo -u milind x11vnc -many -display :0 

现在我能够

 Connect to: abcd:0 

完成! 尽pipe以非常迂回的方式。