在本地计算机上运行应用程序并在远程显示器上显示GUI

是否可以在我的本地桌面上运行应用程序,但在我的笔记本电脑上显示GUI(远程X)?

我想知道是否可以使用2个不同的局域网连接机器来模拟双显示器设置。

我已经安装了synergy,我可以用桌面键盘/鼠标轻松控制我的笔记本电脑,但我还想在桌面上运行一些东西并在笔记本电脑屏幕上显示GUI。

根据我对X的有限经验,我知道我可以在远程机器上运行程序并使用第一个显示输出,但不是相反。

任何指针都会有很大的帮助。 谢谢

PS在Ubuntu 12.10上运行XFCE 4.10

变种A – 将X Windows拍摄到另一个显示:

  1. 请确保您的笔记本电脑上的Xserver启动了tcp连接。 可悲的是,大多数发行版中默认禁用X11-Networking。 由于Xserver由您的显示管理器(gdm,lightdm)启动,因此必须在那里进行配置:

    无论您使用什么显示管理器,/ etc /中的某些配置文件可能包含负责的XServer参数。 在你的笔记本电脑上运行grep -r 'nolisten tcp' /etc/ ,找出哪个配置文件负责,并删除它所说的-nolisten tcp的部分(不是整行,只是这个参数)。 在笔记本电脑上重启X.

    您的笔记本电脑现在应该在tcp端口6000上运行显示器(尝试在台式机上运行nmap -p6000 Laptop电脑,如果端口报告为“打开”,那么你就来了)。

  2. 使您的X-display可用于台式计算机。 X11使用身份validation机制授予对显示的访问权限。 您必须允许台式PC在笔记本电脑上拍摄Windows。 通常通过交换显示cookie。

    对于初学者,请用手踩下笔记本电脑执行此步骤。 一旦你获得了DISPLAY变量和所有内容的概念,你可以通过ssh完成。

    快速和脏:您可以在笔记本xhost +desktops.computers.ip.address上运行xhost +desktops.computers.ip.address以授予对桌面计算机的X访问权限。 请注意,笔记本电脑上的每个用户都可以通过这种方式使用笔记本电脑X显示屏。 请注意,这足以在笔记本电脑显示器上安装键盘记录器。 仅将此方法用于测试。

    正确和安全:在笔记本电脑上运行xauth extract cookie-file :0 ,将显示访问密码导出到“cookie-file”。 将cookie传输到台式机。 运行xauth merge cookie-file 。 或者在一个简短的步骤(从您的桌面) ssh Laptop xauth extract - :0 |xauth merge -注意:如果您的笔记本电脑和桌面共享主目录,即通过nfs,您不需要交换任何凭据。 凭证数据库是主目录中的.Xauthority文件,可以在不同的计算机之间共享。

  3. 运行程序:在桌面PC的终端上运行export DISPLAY=Your.Laptops.IP.Address:0 ,在同一终端运行任何X程序。 它应该出现在笔记本电脑的显示屏上。

变体B – 使用SSH扭曲。

SSH通过将本地X11套接字(通常是Unix域套接字)转发到远程计算机上的本地TCP套接字,然后协商显示cookie,然后在远程计算机上设置DISPLAY-Environment来完成X11转发。 这样,所有X11流量都通过ssh隧道加密。 正常使用情况是将本地显示转发到远程计算机(意味着允许远程应用程序在本地显示x窗口)。

使用ssh的优点是,您不需要将X-Server置于tcp侦听模式(因为使用了unix套接字)。 并且ssh处理凭证交换。

  1. 从台式计算机通过SSH连接到您的笔记本电脑(您还不需要使用-X)。
  2. 在远程shell中输入export DISPLAY=:0这使得笔记本上已经运行的显示可用于通过ssh获得的shell。 如果您现在运行任何X命令,它将已经出现在您的笔记本电脑屏幕上,但仍然在您的笔记本电脑上运行(尝试安全)。
  3. 从这个shell ssh回到台式计算机,这次使用-X。 你现在在ssh会话发起的机器上有一个shell,但这次是工作X.运行xeyes或xcalc来测试它。
  4. echo $DISPLAY显示您的笔记本电脑X显示器现在已经在您的台式电脑上。 即:10或:11。
  5. 您现在可以最小化终端。 现在,只要您在台式计算机上输入export DISPLAY=:10 (查看显示的编号),之后在同一个shell中运行的每个程序都会出现在笔记本电脑的屏幕上。

    这种Variant很容易但很慢,因为所有X11流量都是通过SSH转发的。

变体C – 最初的瘦客户端概念:

您可以使用笔记本电脑打开完全在台式计算机上运行的桌面会话。

  1. 在桌面上配置显示管理器以应答XDMCP广播。 如何执行此操作取决于您的显示管理器。 一些显示管理器根本不支持这种情况,即纤薄。 XDM,KDM,WDM,GDM都支持它。

  2. 在笔记本电脑上启动X-Server,从桌面请求显示管理器。 嵌套的X: Xephyr :1 -query desktopXephyr :1 -broadcast或者通过关闭笔记本X-Server并进入系统终端sudo Xorg :0 -broadcast

    显示管理器将看到它,生成和交换凭证以及所有内容。 恭喜,您现在应该看到桌面计算机提供的登录窗口。

您可以使用ssh X转发来实现您的目标。 如果您在同一子网中,则快速退出。

在笔记本电脑和台式机上安装ssh服务器和客户端

 sudo apt-get install ssh 

要连接到台式PC,请打开笔记本电脑上的终端并键入以下内容

 ssh -X username@desktop_pc_ip 

你可以使用终端启动任何软件,例如启动Firefox,只需在终端输入firefox

制备

(你只做一次)

在桌面上安装SSH服务器

sudo apt-get install openssh-server


从笔记本电脑:

ssh -X username @ desktop_pc_ip

在终端中,您可以获得在桌面上运行的任何内容,但显示在笔记本电脑上。 如果你想坐在桌面上做同样的事情(并在你的笔记本电脑上发送窗口),那么继续。

在你的终端上运行

echo $ DISPLAY

这将显示如下:

 localhost:10.0 

从您的桌面:

打开终端并运行

DISPLAY=:10.0 firefox

这应该在您的笔记本电脑上发送一个firefox窗口,但在桌面上运行。 确保放置的数字(例如10.0 )与echo结果中的数字相同

您正在考虑使用SSH和屏幕的组合,以获得您想要的情况。

在桌面上,安装屏幕:

  sudo apt-get安装屏幕 

从那里开始一个新的屏幕会话:

 屏幕 

并在其中打开Firefox:

 火狐 

在桌面上使用firefox,然后从笔记本电脑进入计算机:

  ssh -X username @ hostname 

键入以下命令以查看您运行的屏幕会话:

 屏幕-ls 

登录到您的屏幕会话(1234将是数字屏幕-ls给你)

 屏幕-x 1234 

然后,您可以在笔记本电脑上使用firefox并关闭桌面终端。

Virtualgl将创建一个额外的(后台)桌面(TightVNC样式) ,您可以通过turbo VNC客户端访问。 它将作为远程桌面类型的交易 – >但它将通过网络播放流畅的video

如果您正在寻找一种方法来卸载远程连接的CPU开销 ,那么您可以在笔记本电脑上从计算机上运行应用程序,那么这就是我要做的。

http://www.virtualgl.org/

您也可以通过SSH导出桌面环境/上面提到的/ dude。

经过一些网上挖掘后,我遇到了DMX

从主页

Xdmx是代理X服务器,为连接到不同机器的多个显示器提供多头支持(每个机器运行一个典型的X服务器)。 当Xinerama与Xdmx一起使用时,多台计算机上的多个显示器将作为单个统一屏幕呈现给用户。