X11如何工作?

Ton*_*ark 5 centos xorg macos

我试图让 X11 在连接到远程计算机时在我的 mac 上工作,但遇到了很多麻烦。我花了一整天的时间谷歌搜索毫无结果。这是我的主要问题:

  1. ssh -X、ssh -Y 之间有什么区别?当我执行此操作时,哪台计算机(本地或远程)拥有 x 服务器,哪台计算机拥有客户端?

  2. startx 命令是否启动 x 服务器?那么,如果我进入终端并点击 startx,我所做的就是启动 xserver 吗?

  3. 为什么我想要 ssh 到远程计算机并使用 startx?我需要 -X 或 -Y 才能使用 startx 吗?看来我读到的有关在远程计算机上为 gnome/kde 启动桌面的所有内容都需要您使用 startx。如果我在这种情况下使用startx,谁是xserver,谁是xclient?

  4. 在远程计算机上使用 startx 的 gnome/kde 窗口管理器是否会干扰 mac 自己的 x11 窗口管理器的实现?有办法解决吗?

  5. 像 VNC 这样的东西是如何参与这一切的?远程 X 会话与仅 sshing 到远程计算机并使用 startx 之间有区别吗?

  6. 让 gnome/kde 在服务器的远程计算机上运行 GUI 桌面的正确方法/命令是什么?(所以我电脑上显示的桌面就是服务器的桌面)?说到桌面,我的意思是我想要壁纸、文件夹、回收站等。

  7. 如果 NX/VNC 是从 #6 意义上正确拥有真正远程桌面的唯一方法,为什么命令 $gnome-session 或 $startkde 使用 ssh -X 调出我想要的桌面,即使它们不起作用正确吗?

如果每个问题都单独解决,那将会很有帮助,但如果你能引导我找到一些清晰的文档,那也会很有帮助!

And*_*ehm 2

  1. 如果我没记错的话 ssh -X 将 X 服务器映射到目标计算机,然后通过 SSH 创建的通道将连接路由到终端(即您的计算机)。“X 服务器”是为“X 客户端”绘制窗口的软件,“X 客户端”是使用这些窗口的程序。

  2. 是的,startx 启动 X 服务器。但在 Mac OS X 上,您可以通过在实用程序中启动 X11.app 来启动 X 服务器。

  3. 除非您尝试在通过 SSH 访问的计算机上重新启动 X 服务器,否则您不会真正希望这样做。但这与您与该计算机的连接或您想要通过该连接运行的程序没有任何关系。

  4. 不确定我理解这个问题。远程服务器运行什么窗口管理器对于您的连接来说并不重要。窗口管理器在 X 服务器上运行(它们是特殊的 X 客户端),Mac 上的 X 服务器和远程计算机上的 X 服务器是两个独立的野兽。

  5. VNC 是解决远程显示 GUI 应用程序问题的另一种解决方案。您可以将两者结合起来,但我建议您尝试分别理解它们。

  6. 让 Paul 成为您的 Mac,Peter 成为您连接的 (Linux) 机器:

Paul:startx(或者更确切地说,启动 X11.app 并使用它为以下内容创建的终端窗口)

保罗:xhost +彼得

保罗: ssh -X 彼得

Peter:xlogo&(现在应该显示在 Paul 的屏幕上,如果没有,请继续)

彼得:导出 DISPLAY=保罗:0

Peter:xlogo&(现在应该显示在 Paul 的屏幕上)