之前有遇到过这种问题,简单来说,平时用的 Linux 都是在服务器上面跑的,所以基本上都是通过 Shell 来进行交互的(至少我都是这么干的),既然是命令行,你想跑带 GUI 的程序肯定是没戏了QAQ

我之所以会有这个想法,就是用 Linux 服务器的时候有时候需要看一些网页。十分朴素的办法就是用 wget 把网页存下来,然后看网页文件。当然,效果也就那样。

当然我也有在网络上查过这个问题的解决方法,不过说回来这个问题实在是不好描述。。。一番查找下来,一般就两个办法:

一个是用 VNC ,用 VNC 的话你的 Linux 就得装个桌面环境,这对于一个服务器来说显然是不太划算的(主要是我服务器带不动)

一个是用 X Server,不过一堆配置看着还挺复杂的,我也就没啥想法了。。。

最近用 MobaXterm 的时候,注意到右上角有一个 X server 的图标,就抱着试一试(搞事)的心态给手上的 Ubuntu 装了一个 Firefox ,运行,然后就跑起来了!!

这事还挺让我惊喜的,没想到这个问题就这么解决了。后来了解了一下,这是 X 协议第 11 个版本,也就是 X11

而 X 协议由 X server 和 X client 组成。能实现这个功能主要是靠 X11-forwarding 来实现的。

X11-forwarding 说白了就是用支持 X Server 的 SSH 客户端连接到 Linux ,然后你就可以在 SSH 客户端上操作远程 Linux上个有图形界面的程序啦~~

如果你用的是 MobaXterm 的话,在登录之后就会显示当前连接是不是支持 X11-forwarding 的。

对于 Ubuntu 用户来说,一般都是直接配置好的,我用的 Ubuntu 18.04.4 LTSUbuntu 14.04.1 LTS 都是直接就能用的。

如果你显示了一把 × ,像这样:

比如我的 CentOS 7.6 ,说明你还得装点东西:

1
yum install xorg-x11-xauth xorg-x11-fonts-* xorg-x11-font-utils xorg-x11-fonts-Type1 xclock

然后确保你的 /etc/ssh/sshd_config 中的 X11Forwarding 后面是 yes 。不是的话改了之后记得重启一下 sshd 服务。

重新连接,上面应该就绿了(x),用时钟测试一下:

1
xclock

最后我要安利一下 MobaXterm ,不仅支持 X11-forwarding,有一说一,确实好用,官网的 Home Edition 基本能满足一切日常连接的需求,还有 Portable 版本可选,唯一的缺点就是下载速度太慢,得用一些魔法才行。

PS:我之所以会一直用这个软件,是因为里面自带的游戏实在是太香了hhh