前言
最近需要使用实验室的服务器训练带有 GUI 画面的 AI 算法模型(pygame),但是我是使用 SSH 连接的,不能很好的显示模型训练的效果画面,所以下面将会讲解如何实现 SSH 连接传输 Linux GUI 画面的
注:我们没有采用直接在 Linux 上搭建远程桌面,是因为我们平时跑模型极少需要用到 GUI,并且安装远程桌面可能影响性能,因此采用上述方式来解决问题
操作系统:Windows 11(本地机) Ubuntu 20.04(远程机)
本文最终效果就是在 VS Code 的 Remote-SSH 连接到服务器显示服务器端 GUI 画面
客户端配置
SSH配置
配置 VS Code 的 Remote-SSH 需要用到的 .ssh\config
文件
Host 主机名HostName 域名或IPUser 用户名Port SSH的端口IdentityFile ~/.ssh/id_rsaForwardX11 yesForwardX11Trusted yes
重点是下面这两行
ForwardX11 yesForwardX11Trusted yes
VcXsrv
官网下载:VcXsrv Windows X Server download | SourceForge.net
安装完会出现XLaunch
在菜单中,这就是我们需要的所谓XServer
软件
服务端配置
配置 $DISPLAY
为 10.0
# 显示
echo $DISPLAY
# 配置
export DISPLAY=localhost:10.0
开始运行
VcXsrv
开始运行 XLaunch
,然后 Display number 需要填写上面我们设定的 $DISPLAY 的值(10),最后勾选Disable access control
,其它按默认即可
VSCode
我们连接服务器之后输入如下代码
xeyes
但是之后我出现了如下问题 Error: Can't open display: localhost:10.0
,解决方案如下
export DISPLAY=localhost:10.0
里面的 localhost 需要替换为 Windows 主机的 IP,命令行输入 ipconfig
即可获取 IP
最后我们输入 xeyes
我们应该就可以看到如下测试画面
下面我再随便编写个 pygame 的游戏界面作为测试,大功告成
参考文章
当通过 VS Code 的 Remote-SSH 连接到服务器时如何显示服务器端 GUI(以 Windows 本地 → Ubuntu 远程为例) - 知乎 (zhihu.com)
解决VScode远程服务器时opencv和matplotlib无法直接显示图像的问题_郭庆汝的博客-CSDN博客
【Linux】解决ssh连接终端无GUI无法显示python图像【服务器】_moba远程服务器plt.show_Jack Lin的博客-CSDN博客
本文由博客一文多发平台 OpenWrite 发布!