我正在将MobaXterm与WSL2用作终端和X客户端,并且MobaXterm似乎随机地更改了其DISPLAY变量时遇到了问题。在给定的计算机启动中,IP似乎保持不变,但每天(或可能每两天一次)都会发生变化。
我一直通过~/.bashrc
在WSL2安装上设置DISPLAY(因此它是持久的),就像MobaXterm开始屏幕上告诉我的一样(通常类似192.168.1.Y:0.0
,其中Y是不同的似乎有所变化的数字)。
当我更改DISPLAY时,一切都会正常进行,直到出现连接显示错误的一天,然后检查Y值/ DISPLAY位置是否已更改。同样,我可以检查MobaXterm在上方显示为“您的显示设置为...”的内容,并通过〜/ .bashrc手动对其进行更改,但是我希望将其设置一次并使其正常工作。
使用MobaXterm的同事似乎将他们的DISPLAY设置为“ localhost”之类的东西,但是我的每次似乎都显示某种完整的IP地址(会发生变化)。
有人知道这个问题,和/或对如何解决这个问题有任何想法吗?
从我的WSL2发行版上的MobaXterm bash终端添加示例:
$ xeyes
Error: Can't open display: 127.0.0.1:0.0
$ export DISPLAY=localhost:0.0
$ xeyes
Error: Can't open display: localhost:0.0
$ export DISPLAY=:0.0
$ xeyes
Error: Can't open display: :0.0
一旦我设置了export DISPLAY=192.168.1.13:0.0
(MobaXterm所说的DISPLAY设置为现在),xeyes
就会显示正常。
有人还带我去了MobaXterm documentation:
默认情况下,MobaXterm Xserver侦听您所有的网络适配器。 标语消息将表明您的DISPLAY环境设置为“:0.0”,但这仅是参考消息:在此处打印该消息是为了帮助用户在连接到远程服务器时设置其“ DISPLAY”环境变量。但是,嵌入式X11服务器侦听所有网络接口,不仅侦听写入的网络接口。在“ DISPLAY”变量中看到哪个IP地址都没有关系:由于MobaXterm X服务器侦听您所有的网络接口,因此侦听第二,第三,(...)网络接口。例如,如果您的计算机有2个网络适配器(192.168.0.10和10.10.10.36):MobaXterm说您的DISPLAY设置为“ 192.168.0.10:0.0”。但是 X服务器确实侦听“ 127.0.0.1”(本地主机),“ 192.168.0.10:0.0”(第一个适配器)和“ 10.10.10.36:0.0”(第二个适配器)。
好吧,如果确实是“ X服务器确实在“ 127.0.0.1”(本地主机)上侦听”的情况,那么当DISPLAY(在WSL2发行版上)设置为{时,我的X应用程序不应正常启动{1}}还是127.0.0.1:0.0
?