我通常会让许多程序在工作站上运行,有时我需要远程使用它。因此我需要连接到现有的 X 会话,同时始终保持物理显示器(工作站的显示器)锁定。
我尝试了 vino(vino-server 和 vinagre 作为客户端),但它们打开了新的、空的 X 会话,因此不允许我访问正在运行的应用程序。
我也尝试了 x11vnc,但它似乎会解锁物理屏幕并在客户端完成时将其保持解锁状态(!),因此存在安全问题...
两端都运行着 Ubuntu 12.04,带有默认 GUI,因此 GNOME 特定的解决方案无法起作用(小程序等)。
理想的解决方案应该让我能够访问两个显示器上运行的所有程序和几个“虚拟桌面”。这可能需要捕获特殊键,如 Crtl+[number] 和 Alt-TAB。
或者...如果可以通过ssh -X
它转发现有窗口(已经运行的程序),将是一个很好的解决方法。
编辑:x1vnc,当然不是“x11server”......
答案1
据我所知,无法通过 SSH 转发已经存在的窗口。
我建议使用x11vnc
。您可能需要先安装它。此命令应启用一次性无密码 VNC 服务器,共享您当前正在运行的桌面(先到先得):
x11vnc -noxdamage -display :0 -safer -nopw -once -xrandr
您可能需要调整显示。您也可以使用 ConsoleKit dbus 接口以编程方式获取它,但这太麻烦了,而且:0
大多数情况下都没问题。如果这不起作用,只需使用:1
等等。
这非常方便,因为您可以在需要它时从其他地方的 SSH 会话运行它。
答案2
你应该看看x2go并直接连接到“连接到本地桌面”,而不是指定窗口管理器或桌面环境。
它使用 SSH,因此一旦您在工作站上安装并启动服务器,如果您已经可以通过 SSH 连接到它,您就应该能够使用 x2goclient 连接到它。
答案3
你应该看看X11RDP。
这确实是 Xrdp 的一次重大更新,此外,您还可以根据需要自定义行为。我以前遇到过与您相同的问题,我安装了 x11rdp 并编辑了 xrdp.conf 文件以启用登录到上一个会话... 无论如何,请查看网站并尝试版本 7。那里的“Kevin Cave”是个天才,现在他做了一些更新,这样您就可以将 x11rdp 安装为 Debian 软件包。