Answers:
变体A-将X Windows拍摄到另一个显示器:
可以看到,笔记本电脑上的Xserver开始侦听tcp连接。遗憾的是,在大多数发行版中,默认情况下都禁用X11网络。由于Xserver由显示管理器(gdm,lightdm)启动,因此必须在此处进行配置:
无论使用哪种显示管理器,/ etc /中的某些配置文件都可能包含负责的XServer参数。grep -r 'nolisten tcp' /etc/
在您的笔记本电脑上运行,找出负责哪个配置文件,然后删除其说明部分-nolisten tcp
(而不是整行,仅删除此参数)。在笔记本电脑上重新启动X。
您的笔记本电脑现在应该在tcp端口6000上运行一个显示器(尝试nmap -p6000 Laptop
在台式PC上运行,如果该端口报告为“打开”,则说明您已经到此为止)。
使X显示器可用于台式计算机。X11使用身份验证机制来授予对显示器的访问权限。您必须允许台式机将Windows投射到笔记本电脑上。通常,通过交换展示Cookie。
对于初学者,请双手在笔记本上执行此步骤。一旦有了DISPLAY
变量和所有内容的概念,就可以通过ssh做到这一点。
快速又肮脏:您可以xhost +desktops.computers.ip.address
在笔记本电脑上运行,以授予X对台式计算机的访问权限。请注意,便携式计算机上的每个用户都可以通过这种方式使用便携式计算机X显示。请注意,这足以在笔记本电脑的显示屏上安装键盘记录器。仅将此方法用于测试。
正确和安全:xauth extract cookie-file :0
在笔记本电脑上运行,以将您的显示访问权限导出到“ cookie文件”。将cookie转移到您的台式机。运行xauth merge cookie-file
。或仅需一小步(从您的台式机)ssh Laptop xauth extract - :0 |xauth merge -
注意:如果您的笔记本电脑和台式机共享主目录,即通过nfs,则无需交换任何凭据。凭据数据库是主目录中的.Xauthority文件,可以在不同的计算机之间共享。
运行程序:在台式机run的终端中,在同一终端上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处理凭据交换。
export DISPLAY=:0
此命令,使笔记本计算机上已经运行的显示器可用于通过ssh获得的外壳程序。如果现在运行任何X命令,该命令将已经出现在笔记本屏幕上,但仍将在笔记本计算机上运行(为安全起见,请尝试使用该命令)。echo $DISPLAY
为您显示名称,您的笔记本电脑X显示屏现在已安装在台式计算机上。即:10或:11。您现在可以最小化终端。现在,无论何时export DISPLAY=:10
在台式机上输入(查看显示的编号),以后在同一外壳中运行的每个程序都会出现在笔记本屏幕上。
由于所有X11流量都是通过SSH转发的,因此此变量很容易但很慢。
变体C-最初的瘦客户端概念:
您可以使用笔记本电脑打开完全在台式计算机上运行的桌面会话。
在桌面上配置显示管理器以回答XDMCP广播。如何执行此操作取决于您的显示管理员。一些显示经理根本不支持此功能,即苗条。XDM,KDM,WDM,GDM确实支持它。
在笔记本电脑上启动X服务器,该X服务器从您的桌面请求显示管理器。嵌套的X:Xephyr :1 -query desktop
或Xephyr :1 -broadcast
通过关闭Notebook X-Server并在系统终端上输入sudo Xorg :0 -broadcast
显示管理员将看到凭证已生成和交换以及所有内容。恭喜,您现在应该看到台式计算机提供的登录窗口。
您可以使用ssh X转发来实现您的目标。如果您位于同一子网中,则退出速度很快。
在笔记本电脑和台式机上安装ssh服务器和客户端
sudo apt-get install ssh
要连接到台式机,请在笔记本电脑上打开一个终端,然后键入以下内容
ssh -X username@desktop_pc_ip
您可以使用终端启动任何软件,例如启动Firefox,只需输入firefox
终端即可。
x2x
软件包,也可以在另一台计算机上使用一个键盘和鼠标。例如:ssh -X user@host x2x -west -to :0
(您只能执行一次)
在您的桌面上安装SSH服务器
sudo apt-get install openssh-server
ssh -X username @ desktop_pc_ip
在终端中,您所运行的所有内容都将显示在桌面上,但显示在笔记本电脑上。如果您想坐在台式机上进行同样的操作(并在笔记本电脑上发送窗口),请继续。
在您的终端上运行
回声$ DISPLAY
这将显示以下内容:
localhost:10.0
打开终端并运行
DISPLAY=:10.0 firefox
这应该会firefox
在笔记本电脑上发送一个窗口,但在桌面上运行。确保您输入的数字(例如10.0
)与echo
结果中的数字相同
您正在考虑结合使用SSH和屏幕来获得所需的情况。
在桌面上,安装屏幕:
sudo apt-get安装屏幕
从那里开始一个新的屏幕会话:
屏幕
并在其中打开Firefox:
火狐
在桌面上全部使用firefox,然后从笔记本电脑SSH到计算机中:
ssh -X用户名@主机名
键入以下命令以查看正在运行的屏幕会话:
屏幕-ls
登录到您的屏幕会话(1234是屏幕-ls给您的数字)
屏幕-x 1234
然后,您可以在笔记本电脑上使用Firefox,然后关闭桌面上的终端。
ssh -X
台式机,在ssh会话中启动屏幕,分离它并保持会话运行。然后用手在台式计算机上重新连接屏幕会话并运行某些程序。这类似于我的“ SSH扭曲”答案。使用屏幕会更加方便。
Virtualgl将创建一个额外的(后台)桌面(TightVNC样式),您可以通过Turbo VNC客户端访问该桌面。它可以用作远程桌面交易->但可以通过网络播放流畅的视频。
如果您正在寻找一种减轻远程连接的CPU开销的方法,那么您可以在笔记本电脑上的计算机上运行应用程序,那么我就会这样做。
您还可以通过SSH以上述的/ dude导出桌面环境。
在网上进行了更多挖掘之后,我遇到了DMX
从首页
Xdmx是代理X服务器,它为连接到不同计算机的多台显示器提供多头支持(每台显示器都运行典型的X服务器)。当Xinerama与Xdmx一起使用时,多台计算机上的多个显示器将作为一个统一的屏幕显示给用户。
对的,这是可能的。我正在将两台装有xclock的linux计算机安装在本地计算机上。我正在尝试在本地运行xclock并在远程linux计算机上显示时钟。
reboot the remote machine
Disable firewall
Disable SELINUX
Check $DISPLAY variable value by command
echo $DISPLAY
Let say its value is :1
run command
xhost +
Now on local computer
xclock -display remote_machine_IP_address:1