Mac使用VSCode远程调试Linux服务器的可视化输出

好久不见~
废话不多说,上教程。


在做 数据分析(数据挖掘 或 机器学习)的时候,我们经常需要绘制一些统计相关的图表,这些统计、绘图的程序常常是跑在服务器上的,可是服务器出于性能和效率的考虑,通常都是没有安装图形化界面的,于是这些统计、绘图的程序在服务器上压根儿就跑不起来,或者无法直接显示出来,这就很尴尬了!
Linux 本身是没有图形化界面的,所谓的图形化界面系统只不过中 Linux 下的应用程序。这一点和 Windows 不一样。Windows 从 Windows 95 开始,图形界面就直接在系统内核中实现了,是操作系统不可或缺的一部分。Linux 的图形化界面,底层都是基于 X 协议。

假设我在使用VSCode的remote-ssh,并成功连接上了远程服务器,现在需要在调试代码的时候显示图形化界面。例如Python的opencv或者matplotlib的图形输出。

Mac 现在不提供X11 需要安装Xquartz,在https://www.xquartz.org/下载适合Mac的最新版安装包(其实不是很新了)。

首先,我们编辑服务器端的设置,使其能够X11转发:
编辑/etc/ssh/sshd_config文件中找到如下两个参数,设置为yes10

X11Forwarding yes
X11DisplayOffset 10

更改后需要重启服务, Linux运行如下命令重新启动ssh服务。

service ssh restart 

然后,我们编辑Mac上的配置,编辑/private/etc/ssh/ssh_config文件(可使用vi),设置如下参数为yes

ForwardX11 yes

最后,使用安装了remote-ssh插件的VSCode,登录远程服务器,记得要在命令后加-X选项。


跑一个带有图形输入的代码试试看~

不过,matplotlib输出的模块,上面的保存按钮,还是只能保存在了服务器中,可以使用ssh配合scp传输到本地。

当然,配好了X11的转发,其实我们可以做很多事情,例如在远程登录后终端里输入任意一个linux的GUI软件的命令:


参考:

  1. MAC运行远程Linux服务器图形界面应用 -
  2. 远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm) -

你可能感兴趣的:(Mac使用VSCode远程调试Linux服务器的可视化输出)