多个用户可以同时远程使用 X windows 吗?

多个用户可以同时远程使用 X windows 吗?

这是一个显而易见的简单问题,但我在 Google 上搜索过却没有找到答案。

如果我像这样远程设置 X windows:https://fabianlee.org/2018/10/14/ubuntu-x11-forwarding-to-view-gui-applications-running-on-server-hosts/

我可以与另一个 Ubuntu 机器共享一个 Ubuntu 机器吗?我们都运行 X windows,这样我们两个都会使用显卡?

注意:2010 年的类似问题。有什么变化吗?或者那里的答复是最新的吗?

答案1

是的。多个用户可以远程运行程序。但是,我不会说用户正在使用远程 XWindows,因为他们没有。

您必须在计算机上运行 XServer,然后从那里登录远程计算机。远程计算机不需要运行 XWindows,也根本不需要其显卡。它可以处于文本模式。这是 X11 的一项基本功能,早在网络和远程连接变得如此流行之前就已存在。

当您使用 X11 转发远程登录时,您的计算机将充当 XServer。程序在远程计算机上运行,​​但图形命令会发送到 XServer。Xserver 接收 X 图形命令并执行它们。执行 X 图形命令意味着绘制应用程序的窗口及其内容。X 协议非常“智能”,它不会像 VNC 或其他远程桌面应用程序那样发送图片。它发送 X 图形命令来绘制内容,例如绘制线条、弧线、字体等。这意味着,网络流量通常比发送整张图片时要小。应用程序将仅发送窗口内容。您的窗口管理器需要处理窗口边框、标题栏等。

在 Linux/Unix 中运行图形程序时,您始终可以指定要在哪个显示器上运行它。这意味着程序逻辑将在启动它的计算机上执行,而图形命令将发送到运行 XServer 的另一台计算机。命令

DISPLAY=remoteIP:0 xclock

将在执行命令的计算机上运行 xclock。表示将向上的DISPLAY=remoteIP:0显示编号发送图形命令。当然,您必须允许 remoteIP 上的远程图形连接。如果您想尝试,remotIP 上的计算机应允许任何 X 图形远程连接。输入0remoteIPxhost +

set | grep DISPLAY

在您的计算机上以及在您使用ssh -Y或远程登录的计算机上ssh -X。您可能会DISPLAY=:0在本地计算机上看到,这意味着程序将显示在显示器 0 上的默认计算机上。使用 ssh 登录时,您将看到类似 的内容DISPLAY=:11,这意味着 X 协议通过 ssh 重定向到您的计算机。如果您将变量设置$DISPLAY为其他显示器(XServer),应用程序将在另一个显示器上打开。

您也可以从 Microsoft Windows 远程登录。在这种情况下,您必须在 MS Windows 上运行 XServer。

因此,只要使用 X11 转发并在计算机上运行 XServer,尽可能多的能够使用 SSH 远程登录的用户都可以运行图形应用程序并将其显示在他们的屏幕上。

如果您想在远程计算机上使用显卡,则可以使用多座席设置(https://wiki.ubuntu.com/Multiseathttps://www.freedesktop.org/wiki/Software/systemd/multiseat/)。多座席设置意味着一台计算机上运行多个 XWindows 会话。每个 XWindows 会话通常都有自己的键盘、视频和鼠标硬件。在这种情况下,您可以与每个 Xwindows 会话建立 VNC 或类似的连接。然后使用远程计算机上的显卡。

相关内容