在Windows中使用Xserver

随着公司全面转向微软云服务,尤其是outlook、calendar、onedrive和office这几个套件的加入,使用Windows电脑确实能带来更高效便捷的办公体验,作为Linux程序员最后的执着,我的Linux系统最终也活在了虚拟机里,变成了Windows的一个“服务”。然而有时候当我们必须使用Linux下的图形程序时该怎么办呢?

实际上X Window System最初设计上就充分考虑了通过网络传输GUI这个特性,Xclient在一台Linux机器上运行,而其GUI可以通过网络在任何运行Xserver的机器上显示。基于这个原理,我们只需要在Windows中安装Xserver,即可“运行”Linux中的GUI程序。

选择一款Xserver

目前主流的有以下几款:

这里基于简单、易用、开源、免费的原则,选择了VcXsrv。只需要下载最新版本的exe安装即可。

配置Windows端

打开VcXsrv后,程序会要求进行配置,除了在Extra settings中选择Disable access control之外,其它保持默认即可,如图。

配置Linux端

通常情况下,Xserver都是配合X11 Forward来使用的,但是因为在我们的场景当中,Linux与Windows在同一个网络中,他们是能够直接互相访问的,所以可以使用一种更加简单的方式:

1
export DISPLAY=192.168.50.1:0.0

192.168.50.1是Windows的IP地址,0.0是X server的Display编号,一般保持默认即可。

这样设置完成之后,在Windows中使用任意终端连接到Linux,启动GUI程序后,都能在Windows上显示,而无需关注SSH的X11 Forward是否开启。

使用X11 Forward

如果你的Linux机器不能直接访问Windows,那么此时你必须使用SSH的X11 Forward,使用这个功能需要SSH server开启X11 Forward,并且SSH client在连接时也启用该功能,一般是添加-X参数。

最重要的一点是,你需要在SSH client的环境中设置DISPLAY变量,这时候不同SSH client的设置方法并不相同,可以查阅相关文档。