如何从 Windows 10 访问运行 X11/Xorg 的 Ubuntu 机器?

如何从 Windows 10 访问运行 X11/Xorg 的 Ubuntu 机器?

我有一台运行 Windows 10(或 Windows 11)的笔记本电脑。我可以ssh使用 进入我的 Ubuntu 计算机,但我想 (a) 使用 Windows 中的 GUI 应用程序或 (b) 使用 Windows 中的整个桌面。理想情况下,我想通过 X 转发而不是 VNC 或 RDP 来执行此操作。请注意,我ssh [email protected]不是这里使用 Wayland。

我怎样才能做到这一点?

答案1

我将从两台机器开始。我将有一台最新的(22H2)Windows 10 计算机和一台 Ubuntu 23.04 计算机。Ubuntu 计算机将运行普通的 Ubuntu 桌面。我将使用最小安装的 Ubuntu,但完整安装应该也可以。我进一步假设您的 Ubuntu 计算机已配置为运行 Xorg,而不是 Wayland这不是默认的。


在 Windows 计算机上,从以下位置下载 VcXsrv这里,然后运行安装程序。在撰写本文时,该文件名为vcxsrv-64.1.20.14.0.installer.exe。不过,版本可能会随时间而变化。在 VcXsrv 安装程序中,接受默认值即可。

在 Ubuntu 上,运行sudo apt update && sudo apt install openssh-server。运行hostname -I以查找您的 IP 地址。让我们选择一个应用程序进行远程运行。我将选择/usr/bin/gnome-text-edit。在实际的 Ubuntu 计算机上(即不是通过 SSH),运行/usr/bin/gnome-text-edit。文本编辑器应该会打开。关闭它。我们只需要确保它能正常工作。

让我们通过 SSH 从 Windows 尝试一下。在 Windows 中,运行ssh -X username@[Ubuntu IP address here]。它要么给出类似 的错误(gnome-text-editor:2524): Gtk-WARNING **: 12:51:24.488: cannot open display:。这不是我们想要的。如果它打开了文本编辑器,但在 Ubuntu 计算机上,请仔细检查您是否没有使用 Wayland。在 Windows 上,运行 XLaunch(它是一个应用程序,而不是 shell 命令)。这是由 VcXsrv 安装程序安装的。选择Multiple windows,以及显示数字三(3)。选择Start no client,并检查Disable access control,然后执行完成。

ipconfig通过在终端中运行来查找 Windows 计算机的 IP 地址(我使用的是 Powershell)。我的 Windows IP 是192.168.1.141。现在执行

DISPLAY='192.168.1.141:3.0' /usr/bin/gnome-text-editor

在 SSH 会话中。应用程序应在 Windows 上启动。请注意,这192.168.1.141是您的视窗计算机,而不是您的 Ubuntu 计算机。

完成!您应该能够对任何 GUI 应用程序执行相同的操作。请注意,这适用于 Xorg,而不是 Wayland。另请注意,我选择的显示编号为 3,有点随机。避免使用已被占用的编号,因此我选择了 3,但其他未使用的数字应该可以正常工作。

相关内容