我有一台运行 Windows 10(或 Windows 11)的笔记本电脑。我可以ssh
使用 进入我的 Ubuntu 计算机ssh [email protected]
,但我想 (a) 使用 Windows 中的 GUI 应用程序或 (b) 使用 Windows 中的整个桌面。理想情况下,我想通过 X 转发而不是 VNC 或 RDP 来完成此操作。请注意,我在这里没有使用 Wayland。
我怎样才能做到这一点?
我有一台运行 Windows 10(或 Windows 11)的笔记本电脑。我可以ssh
使用 进入我的 Ubuntu 计算机ssh [email protected]
,但我想 (a) 使用 Windows 中的 GUI 应用程序或 (b) 使用 Windows 中的整个桌面。理想情况下,我想通过 X 转发而不是 VNC 或 RDP 来完成此操作。请注意,我在这里没有使用 Wayland。
我怎样才能做到这一点?
我将从两台机器开始。我将拥有一台最近(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
. 现在做在 SSH 会话中。该应用程序应在 Windows 上启动。请注意,这是您的Windows
192.168.1.141
计算机的 IP ,而不是 Ubuntu 计算机的 IP。完毕!您应该能够使用任何 GUI 应用程序执行相同的操作。请注意,这适用于 Xorg,不适用于 Wayland。另请注意,我选择的显示数量为 3,有些随机。避免使用已使用的号码,因此我选择了三个,但其他未使用的号码应该可以正常工作。