确保服务器下载了xterm、xorg-x11-xauth两个包,不确定可以用 dpkg -l 加正则表达式查看,应该基本上都有。之后检查 /etc/ssh/sshd_config 是否有 X11Forwarding yes ,如果没有或者为注释状态,则需要使用 sudo 权限修改至所需状态。接着,修改 .bashrc (用户主目录下的隐藏文件),具体为新增环境变量 $DISPLAY="localhost:10.0" ,最后使用 source ~/.bashrc 重启bash,使用 echo $DISPLAY 命令确认环境变量是否配置成功(输出对应的 localhost:10.0 )即可。

有些博客也用0.0,但其实都一样,配置的是X11转发走的端口,可以都试一下,也可以试试其他比如2.0, 3.0……,重要的这个加入后面是0.0,则第二步本机中配置 **DISPLAY offset** 必须是0,如果是10.0,则必须是10,其他依此类推。

在本机安装MobaXterm,点击Settings-->Configurations-->X11,设置如下:

ModelXterm支持X11转发,与Xming一样,我看网上很多博客都用的是Xming,我还是参考链接2,用了ModelXterm。其实都差不多,使用他们都是为了使得VScode运行可视化代码时,可视结果能从配置的X11端口(即localhost后面的10.0)转发。

VScode

VScode除了下载 Remote-SSH 或者 Remote development 插件外,还需下载 Remote-X11 插件,之后修改SSH远程连接的 .config 配置,在服务器的配置中加入如下三行:

首先需要保证使用ModelXterm或是 xming 连接上服务器( 前提 ),然后使用VScode连接服务器才能支持可视化结果转发,整个过程都要保证ModelXterm一直与服务器连接着。
然后在VScode左侧栏的 运行调试 一栏中点击创建 Launch.json 文件,之后回到目录可以看到出现了 .vscode/launch.json 文件,并向该文件中加入如下内容:

localhost后面的端口与之前第一步服务器配置中的保持一致,之后每个相关目录都需要创建launch.json,并如上配置才能支持VScode可视化从X11端口转发。

  • 终端terminal使用 xclock 可以出现可视化时钟,使用 xeyes 可以出现如下:
  • matplotlib可视化测试:
  • 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()
    

    OK,配置成功😎,就是运行可视化代码出来界面有些延迟,但是可以接受🤗

  • 如果出现`can not display或者输入了命令(运行了可视化代码)一直没有界面显示的情况,按上述顺序调整localhost后面的端口号(1,2,3……枚举,一般取10以后开始)重新弄一遍,直到能显示为止
  • 参考链接:

  • Remote X11 GUI for Linux/Unix - deodara - 博客园
  • SSH通过VSCode远程访问服务器Opencv和matplotlib等无法直接显示图像问题_vscode中图片无法显示_博博有个大大大的Dream的博客-CSDN博客
  •