admin 管理员组

文章数量: 887018

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

 

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

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

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

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

    ForwardX11 yes
    ForwardX11Trusted yes

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

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

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

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

 

二、给本地安装xserver服务

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

 

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

 

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

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

:0.0

三、配置环境

1.配置本地

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

将你服务器的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生成图形界面

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

 

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

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

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

 

本文标签: 连接到 图像 服务器 XMing VcXsrv