raz*_*hka 12 windows remote-server x11-forwarding visual-studio-code vscode-extensions
我使用 Windows VS 代码和此扩展“远程 SSH”、“远程 X11”、“远程 X11 (SSH)”来连接远程服务器并从远程服务器获取图形。
我运行 VcXsrv、Pageant。如果我直接连接 Pageant,X11 转发就可以工作。如果我在远程服务器中设置“export DISPLAY=localhost:10.0”,它甚至可以在 VS code 终端中工作。因此,除了 Remote X11 之外,所有功能都有效,它无法设置 DISPLAY 变量,并显示以下日志: Failed to get DISPLAY: Error: Invalid cygwin unix socket path
小智 11
我在这里找到了解决方案https://github.com/microsoft/vscode-remote-release/issues/4600。我在这里总结一下步骤,因为那里的步骤不是很清楚。在开始之前,请确保您拥有最新版本的 VScode 之一(我使用的是 1.55.2)。
从 Windows 连接到 Linux 的步骤:
ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
如果 x11 转发成功并且设置了端口,您实际上可以检查远程主机的日志。如果设置不正确,它会抱怨显示未设置。一个更简单的检查是查看 Linux 服务器中是否自动设置了 DISPLAY 变量。希望这些步骤之后一切正常。
转载自zhuanlan.zhihu.com见上面评论。基本上,我们需要知道的是,在服务器端(大多数是Linux操作系统),它们使用X11协议来显示GUI。
恕我直言,X11 协议由两部分组成:XServer 和 XClient。XServer实际在显示设备上绘制像素,而XClient则负责处理显示背后的逻辑。
为了从远程服务器显示 GUI,我们需要使用一种称为 X11 转发的技术,这意味着将远程 XClient 的内容转发到本地计算机上运行的 XServer。
配置文件由 SSH 使用。它位于C:\Users\[user]\.ssh\config,其中[user]应该是您的用户名。
要建立基于密钥的 SSH 连接,您应该指定密钥文件的路径。此外,要启用 X11 转发,应将以下两行添加到配置文件中:
ForwardX11 yes
ForwardX11Trusted yes
Run Code Online (Sandbox Code Playgroud)
从这里下载 VcXsrv:VcXsrv Windows X Server 下载 | SourceForge.net
安装后,以下软件应出现在您的菜单中。这正是我们需要的XServer。
authorized_keys如果您配置基于密钥的连接,请记住将您的公钥复制到服务器计算机上SSH。
$DISPLAY通常,该$DISPLAY变量是默认设置的。因此,在服务器的终端中键入以下命令,它将以“IP:D.S.记住D的值”的形式输出一些内容,如下所示10。
> echo $DISPLAY
localhost:10.0
Run Code Online (Sandbox Code Playgroud)
如果输出为空,则应$DISPLAY自行设置该值。
export DISPLAY=localhost:10.0
Run Code Online (Sandbox Code Playgroud)
VcXsrvDisplay number应该是你从步骤3.1得到的值,这里我将其设置为10。

打钩Disable access control
'X'成功运行软件后,任务栏上应该有一个图标。
检查 的值$DISPLAY,应该与您之前设置的一致。
然后输入命令:
xeyes
Run Code Online (Sandbox Code Playgroud)
如果GUI两只眼睛出现,就意味着你成功了!
GUI程序(可选)你甚至可以运行你自己编写的GUI,很酷吧?