云计算百科
云计算领域专业知识百科平台

通过vscode + VcXsrv(or XMing) 来解决通过Remote -ssh连接到服务器无法显示GUI图像的问题

问题描述:博主之前一直是使用mobaxterm远程连接到服务器,最近改用了vscode + Remote – ssh 的方式来连接服务器,但是发现在服务器上无论是通过软件调用或者是用python都无法显示图形,找了一些解决方案并亲自尝试,最后得到一个简洁的解决方案

 

一、确定通过vscode的Remote扩展能接入服务器

这个过程比较简单,配置一下ssh的文件即可(网上有众多教程),生成ssh秘钥来接入服务器,因为这个过程需要将服务器上的图像传输到本地,再在本地调用VcXsrv(or XMing)来显示图形。通过vscode通过ssh连接服务器,并配置秘钥

https://blog.csdn.net/Oxford1151/article/details/137228119

注意:在ssh配置文件中记得加入X11相关服务

ForwardX11 yes
ForwardX11Trusted yes

接下来在本地和服务器上分别都安装上vscode扩展:Remote X11

347cf1f82d9c41ceaaf603f0247adffe.png

记住是本地和服务器都装上,具体操作就是:

1.没通过Remote -ssh 连接服务器时,点击扩展并搜索Remote X11 安装就是在本地

2.通过Remote -ssh 连接服务器,再点击扩展并搜索Remote X11 会有提示安装在服务器

 

二、给本地安装xserver服务

安装xserver的方式有很多种,博主推荐VcXsrv(微软推荐)或者XMing,下载完然后全部默认安装就行,安装完成你就可以看到XLaunch(如下图):

9f8ed8bf19104f9f8934198558a6712d.png

 

打开使用时采用默认端口参数(强烈不建议修改!!!):

43ede398073a4c5da526d3118f8082e1.png

 

打开后就可以在右下角隐藏的任务栏看到启动图标:

80589043b9cb4e0e9c37ea3cbfaa1932.png

记下这个端口号(等会用到):

:0.0

三、配置环境

1.配置本地

在本地安装VcXsrv(or XMing)的目录下会有一个X0.hosts 文件

11d31468b50f4239a2eab56a656e10e9.png

将你服务器的ip地址加在localhost后面(例如XXX.XX.XXX.XX):

localhost
XXX.XX.XXX.XX(服务器ip)

2.服务器上配置

查看你的本机ip地址,也就是IPv4的默认网关地址,可以通过控制面板–网络和共享中心查看;也可以在win的powershell里面输入:ipconfig    查看本地ip地址   这里假设是172.16.157.193

得到本地ip地址后,在你服务器上配置  $DISPLAY  环境,打开.bashrc 文件  

export DISPLAY="172.16.157.193:0.0"

即为本地ip + 刚才配置的Xserver端口号(:0.0)

写入保存后重启服务器客户端或者source一下.bashrc,并尝试输出对应的地址:

echo $DISPLAY

 

四、调试

在服务器终端输入

xclock

在本地会调用Xserver生成图形界面

551d9d30e65041bb820402a49ceab937.png

附:可以正常使用python程序调用plt.show()生成图形界面:

576994f2529842f4a448d3af7e1202bc.png

 

注意: 上述的图形数据传输过程基于本地和服务器之间要能够相互之间ping通:

1.如服务器ip地址和本地电脑ip地址在同一个网段,例如192.168.x.x和192.168.x.x在同一个网段,则一般都是可以相互ping通的。

2.如果本地电脑能ping通服务器而服务器ping不通本地电脑,则将本地电脑的防火墙关闭就好了。

 

赞(0)
未经允许不得转载:网硕互联帮助中心 » 通过vscode + VcXsrv(or XMing) 来解决通过Remote -ssh连接到服务器无法显示GUI图像的问题
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!