转自: https://zhuanlan.zhihu.com/p/151853503
在Windows 10升级到2004版本以后,自带的Windows subsystem for linux也可以升级至第二代也就是wsl2,它的轻量和不低的性能,使得它成为虚拟机的有力替代品,可以在不安装linux虚拟机的情况下,也可以在Windows下享受到较完整的linux开发体验。
但是,WSL2本身只有一个命令行界面,虽然linux大多数操作都在终端下完成,但难免会有一些程序要使用到图形界面GUI(比如我学操作系统时会用到的qemu、bochs等硬件模拟器),所以实现WSL2的图形显示,有时候还是必要的。
显示图形界面的方法就是在Windows下安装x-server来显示,我之前安装的是VcXsrv,后来了解到了MobaXterm,继承了ssh、scp、x-server等多种功能,省了很多事,所以现在转投MobaXterm来作为x-server了。
官方下载地址(免费的Home Edition就够用了):
打开后默认是会自动启动x-server的,接下来就是要配置WSL2的显示设置了。
在一代WSL的时候,只要把环境变量DISPLAY设置为localhost:0.0即可,但WSL2改变了网络设置,所以配置方式有所不同。
如果使用的是bash,就在.bashrc中;如果使用的是zsh,就在.zshrc中加入下面这条:
export DISPLAY=`cat /etc/resolv.conf | grep nameserver | awk '{print $2}'`:0.0
然后
source .bashrc
或
source .zshrc
即可。
接下来打开GUI程序就能正常显示了,比如我使用bochs打开linux-0.11就会是如下效果:
但有时会发现仍然没有丝毫动静,那有可能是因为防火墙的原因,阻断了和x-server的通信,打开防火墙设置,把涉及xwin_mobax.exe的选项全勾上即可。
Firewall 设置