在我的家庭设置中,我在同一个本地网络上有两台计算机,都运行 Ubuntu 20.04。我希望通过切换到新的 TTY 并启动远程 X 会话来设置一种通过主计算机访问辅助计算机的方法。我不想共享屏幕,也不想访问现有的 X 会话。此外,我用来启动远程 X 会话的计算机有两个显示器,我想同时利用这两个显示器。
我尝试了几个选项。我觉得 XDMCP 可以满足我的要求,但目前运气不佳(可以访问,但屏幕只有黑屏和光标)。此外,它似乎占用大量带宽,而且不安全,所以理想情况下我还是会使用其他东西。
我尝试过 X2Go,但我无法找到在单独的 TTY 中启动它的方法,或者让它利用我的两个显示器。
我也听说过 xvnc 和 NoMachine 之类的东西,但我不确定它们是否能按照我希望的方式运行。
有没有现成的方法可以做到这一点?或者,有没有办法压缩和/或保护 XDMCP?我发现 XDMCP 可以通过 SSH 进行传输,这是真的吗?
谢谢!
答案1
X 窗口会话的工作方式与您预期的并不一样。您认为您正在连接的另一端有一个“服务器”,而您想要控制它。
事实上,情况恰恰相反。你连接的机器从充当服务器,当您连接时,您告诉它在另一台机器上显示。
因此,X 需要在您连接的 FROM 机器上运行,然后执行以下操作:
打开 xterm,或者任何您喜欢的终端窗口应用程序。
在本地机器的终端上,允许来自远程主机的连接:
xhost + 192.168.1.2(其中 192.168.1.2 是您要连接的机器到)
在同一个终端中,使用 ssh 打开远程机器(192.168.1.2)的 shell,并使用 X11 转发:
ssh -Y 登录@主机名
在远程机器上,设置您的显示:
export DISPLAY=192.168.1.1:0.0
(这将是您要连接的机器从)现在启动一个程序。只需运行 xeyes、xcalc、chrome 或任何其他程序。一段时间后,该程序应显示在本地 X Window 界面上。它在远程计算机上运行,但在本地显示。
请注意,远程计算机甚至不需要运行 X Window 服务器。它实际上充当本地计算机 X Window 服务器的客户端。
XDMCP 肯定比 VNC 等针对显示更改进行优化的协议“更重”。不过,目标不同:VNC 通常在整个屏幕上运行。没有什么可以阻止您安装 VNC 服务器并走这条路。在这种情况下,任何 VNC 客户端都可以工作。