我安装了 WSL2,我想从 Windows 10 访问 WSL2 GUI 应用程序。为此,我安装了 Xming 并以“无客户端”模式启动它。Xming开始,好的。在我打开 WSL2 终端并执行这些命令后
export DISPLAY=:0
之后
xeyes
并得到错误
Error: Can't open display: :0
X11转发检查,是的。
我安装了 WSL2,我想从 Windows 10 访问 WSL2 GUI 应用程序。为此,我安装了 Xming 并以“无客户端”模式启动它。Xming开始,好的。在我打开 WSL2 终端并执行这些命令后
export DISPLAY=:0
之后
xeyes
并得到错误
Error: Can't open display: :0
X11转发检查,是的。
解决了执行此命令的问题
该命令也可以添加到 shell 初始化文件中,例如,
.bashrc
等.zshrc
。还要确保允许在 Windows 10 中运行的 X 服务器的公共访问。对于VcXsrv,
-ac
选项是最重要的,因为它允许公共访问。对于Xming,运行 XLaunch 并在“指定参数设置”部分中选择“无访问控制”。有关更多信息,请参阅此讨论Microsoft/WSL: Can't use X-Server in WSL2。
在将我的 WSL Ubuntu 发行版的版本从 1 更改为 2 后,我遇到了这个问题。使用
还不够。根据https://github.com/microsoft/WSL/issues/6181我需要重新配置防火墙。这可以通过
经过这2次更改,问题就解决了。
按着这些次序:
以管理员身份打开 PowerShell 并运行:
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
现在打开 WSL2 并运行:
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0
现在
xeyes
对于使用默认配置的 coLinux
eth0=slirp
,可以使用export DISPLAY=10.0.2.2:0
(或 0.0)访问 Windows 主机上的 Xming。在这种情况下使用biswapriyo的解决方案不起作用,因为 slirp 将解析器 IP 设置为 10.0.2.3,但他的回答让我意识到我做错了什么。