编辑

编辑

我在使用图形应用程序和 WSL 时遇到了问题。我安装了 Ubuntu 20.04.3 和 X11;但是当我尝试测试时遇到了以下问题xeyes(我使用的任何其他图形应用程序也会出现同样的问题)。

xeyes
Error: Can't open display: localhost:0.0

我已经在网上查阅了类似问题的相关资料,但还没有找到解决办法。我正在使用 VcXsrv X Server(之前也尝试过 Xming)。

我曾尝试使用以下所有方法独立更改显示内容:

export DISPLAY=0.0
export DISPLAY=localhost:0
export DISPLAY=127.0.0.1:0
export DISPLAY=127.0.0.1:0.0
export DISPLAY=$(grep nameserver /etc/resolv.conf | awk '{print $2}'):0.0
export DISPLAY=$(grep nameserver /etc/resolv.conf | awk '{print $2}'):0

这些都不起作用。

我已经检查过,确保 X 服务器被允许通过防火墙,并且确实如此。

我还进入/etc/ssh/sshd_config并更改了以下内容:

X11Forwarding yes

我确实尝试过了 ~/.profile,结果返回-bash: /.profile: No such file or directory

我还设置了启用了 X11 转发的 PuTTY 配置。

最后,我尝试了以下方法:

export DISPLAY=$(route.exe print | grep 0.0.0.0 | head -1 | awk '{print $4}'):0.0

再次,这没有起作用。但是,它确实将 IP 更改为与之前所有尝试不同的 IP,然后引发以下错误:

Authorization required, but no authorization protocol specified
Error: Can't open display: 

我不确定这是否是进步,也许现在阻碍我的就是这项授权。

我在网上看到有人说要运行: vcxsrv -ac 更改 X 服务器的访问控制,但其他人说不要这样做,因为这会危及安全。我只在本地运行这个,但不知道我在做什么,所以没有这样做。

从我参加过的论坛数量来看,我知道这个问题很常见,所以我不指望有人能立即帮我解决这个问题。但如果有人能根据我提供的任何信息为我指明正确的方向,我将不胜感激,因为看起来我已经涵盖了在其他论坛上可以找到的大多数(如果不是全部)解决方案。

提前致谢 :)

编辑

自发布以来,我得出结论,以下是正确的显示设置:
export DISPLAY=$(route.exe print | grep 0.0.0.0 | head -1 | awk '{print $4}'):0.0

我刚刚选择禁用 vcxsrv 上的访问控制设置,现在运行时xeyes出现以下错误:

XIO:  fatal IO error 104 (Connection reset by peer) on X server "IP:0.0"
      after 171 requests (171 known processed) with 0 events remaining.

我认为这意味着 X11 转发无法正常工作?但我不确定该怎么做才能解决这个问题。

编辑#2

我决定升级到 Windows 11,因为在阅读之后,我发现 Windows 11 上的 WSL2 已经处理了这个 X 服务器,所以不需要再处理 xming 等。

升级到 Windows 11 并更新 WSL2 后,我已经能够gedit成功使用图形界面。但是,我仍然得到相同的结果:

Error: Can't open display:

当我尝试运行xeyes一些其他图形界面时。我确信在升级到 Windows 11 之前 gedit 无法正常工作,因此此更新部分解决了我的问题,但并未完全解决

答案1

升级到 Windows 11 解决了我的问题。我在“编辑 #2”中遇到的问题是由我在尝试修复之前的问题时留在 bashrc 中的一行引起的。

答案2

为了完整起见,我想借此机会提一下,可以在 x410 的帮助下使用 vsock 在 Win10 上稳定地完成这项工作。

如果您想知道我是如何做到的,请阅读此处(仍然是超级用户):使用 x410 和 wsl 运行 GUI

相关内容