我有计算机 1 和计算机 2。计算机 1 有 KVM(键盘视频鼠标),而计算机 2 只有视频。我想将计算机 2 用作计算机 1 的远程显示器,仅此而已。使用 ssh -x user@host 只会在计算机 1 的显示器上显示来自计算机 2 的程序,这与我的需求完全相反。我阅读了其他类似的问题,其中涉及一种称为“.Xauthority”的东西,它应该是 X 服务器的“cookie”,但它的含义很模糊。我该如何使用 X 服务器在计算机 2 上显示来自计算机 1 的程序,而不使用 SSH?
答案1
X 在网络上
虽然通过 TCP 连接到 X 服务器会稍微影响性能,但比通过加密 (ssh) TCP 连接隧道传输 X 的性能损失要小得多。对于 2D 和轻量级 3D 图形应用程序,在 LAN(例如 100Mbps / 1Gbps 以太网)上应该没问题,我相信提出的问题就是这种情况。
在 X Window 系统中服务器是提供显示的系统,因此在您的情况下,那将是计算机 2(仅视频)。
一个问题是,X 通常认为服务器也位于用户坐着/操作的地方,因此它认为键盘和鼠标也连接到服务器。埃夫德夫(Linux)或可能新输入2输入驱动程序可能提供一种利用远程键盘和鼠标的方法,我不确定。
默认情况下,X 服务器不再侦听 TCP 端口,所以必须启用也就是说,大多数情况下应该这样做合作中与您的窗口显示管理器(XDM、GDM、KDM 等)配合使用,有多种方法可以启用它。请参阅您使用的窗口管理器(KDE、GNOME、Xfce 等)的发行版文档。否则,您只需-nolisten tcp
从启动脚本中删除参数即可X服务器。
然后,您应该能够在计算机 1 上启动应用程序(host1
为简单起见,我们这样称呼它),并将它们显示回计算机 2(亲切地称为host2
)。
user@host1$ xclock -d host2:0.0
或者
user@host1$ xclock -d host2
或(假设类似 Bourne 的 shell)
user@host1$ export DISPLAY=host2:0.0
user@host1$ xclock &
替代解决方案
由于我不确定您是否能够按照自己的意愿成功使用 X11,因此我将回应并评论@user2986553 的回答. 我相信您可能希望使用远程桌面连接,例如 VNC。
对于大多数 VNC 服务器和客户端,你可以将显示器导出为“仅查看”,而无需采取控制鼠标或键盘,这适合您的设置。我曾见过它用于校园网络的远程演示系统。计算机 1 将运行 VNC 服务器,而计算机 2 将使用 VNC 客户端,并具有仅查看特权。
答案2
我认为远程连接到 X-server 的性能很差。您可以在计算机 1 上设置一个 vnc 服务器(类似于 Windows 上的 RDP),并通过 VNC 连接到计算机 2。以下是例子适用于 RedHat Linux。