在WSL1时我给子系统的Ubuntu 18.04安装了xfce4桌面,MobaXterm自动生成了启动桌面的bookmark。为了愉快地使用子系统中的软件(在WSL1中浏览器和Typora总是崩溃),最近更新到了WSL2。然而该bookmark不能再顺利启动桌面了,其他本可以启动GUI的命令也显示找不到X11。
经过一番调查,发现子系统Ubuntu的ip和win10的不一样,而MobaXterm的Xserver是在win10上的,所以不能通过直接设置DISPLAY=0.0
或者DISPLAY=localhost:0.0
来指定Xserver,也不能通过获取Ubuntu系统真实ip来指定(如下)。
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 # in WSL 2
export LIBGL_ALWAYS_INDIRECT=1
按照这条回答的意思是win10和WSL2是并行的,不能获取到对方的ip,所以这个问题暂时无法解决。除非给win10设置固定ip(局域网固定ip,修改自动获取为手动配置)后直接把这个ip写到.bashrc中,或者每次都手动告诉当前terminal Xserver所在的地址,如:
export DISPALY=192.168.1.28:0.0 # 192.168.1.28为win10当前ip,下次重连网络可能会变动