• vscode远程连接服务器+Xming:图形化界面


    背景
    用本地电脑连接服务器跑代码,服务器运行出现图形化的界面(例如plt.show()是一张图片),本地电脑端显示不出来。因此,我们利用Xming解决这个问题。

    1. 主要步骤

    主要步骤参考:link

    1. 查看ipconfig命令查看本地电脑ip地址。注意是第一个IPv4地址而不是第二个:
      在这里插入图片描述
      可以看到,第一个ip地址的网段172.18.xx.xx跟服务器的ip地址网段是相同的,这样才能保证连通性(双方都能ping通)。

    2. 找到服务器中的sshd_config文件。步骤:Vscode中File→Open File,选择路径:/etc/ssh/sshd_config
      在这里插入图片描述
      查看端口号:
      在这里插入图片描述

    3. 在本地,C:\Users\用户名.ssh\config中添加如下3行,注意Port端口号就是刚刚上面查看到的,HostName是远程服务器的ip:
      在这里插入图片描述

    4. 在服务器要使用GUI的工程中设置.vscode/launch.json (使得工程中的程序能使用GUI):在.vscode/launch.json尾部添加红框内代码,如果已有env属性,则在里面添加"DISPLAY":“localhost:10.0"就可
      在这里插入图片描述
      注意:这里不能用"DISPLAY”:“172.18.1xx.xx:0.0”,一定要用localhost

    5. 在远程服务器terminal中输入两条命令:

    export DISPLAY="localhost:10.0"
    echo $DISPLAY
    
    • 1
    • 2

    显示localhost:10.0则成功。

    1. 一切都设置好了,用一段代码来测试是否成功:
    import matplotlib.pyplot as plt
    import numpy as np
    from mpl_toolkits.mplot3d import Axes3D
    ax = plt.axes(projection='3d')
    ax.scatter(np.random.rand(10),np.random.rand(10),np.random.rand(10))
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    显示:
    在这里插入图片描述

    也可以在terminal中输入xclock,运行成功后的界面:
    在这里插入图片描述

    大功告成!

    2. 踩过的坑

    1. .vscode/launch.json在里面添加"DISPLAY":“localhost:10.0”,而不是"DISPLAY":“172.18.1xx.xx:0.0”,172.18.1xx.xx是本地主机ip地址。这个坑让我调试了好久~

    基本上一些报错都是由于这个原因导致的,附上几个报错截图:

    在这里插入图片描述

    在这里插入图片描述

    1. 本地主机ip地址搞错,刚开始用的是10.25.xx.xx,但是服务器ip地址是172.18.xx.xx,两者网段不一样,无法成功连接。

    最后,按照上面的步骤严格执行,注意几个踩坑点,大概率会成功。如果不成功,就重启vscode和xming,再次运行即可!

  • 相关阅读:
    备战秋招--spring篇
    大数据领域的常用开发语言详解
    系统架构师第一部分——架构设计基础
    024. 解压报文[200 分]
    Java项目防止SQL注入的四种方案
    防御安全第五次作业
    英国访问学者出境前推荐书籍有哪些?
    重磅!谷歌宣布 DeepMind 与 Google Brain 合并,奋力追赶 OpenAI
    netcore基于asp.net的校园二手闲置商品交易系统
    linux C++实现线程绑定CPU
  • 原文地址:https://blog.csdn.net/summertime1234/article/details/133984970