小能豆

kali显示no x11 display variable was set;

javascript

kali原本不显示no x11 display variable was set;在物理机配置了一下WSL后,不知道修改了哪里的配置;现在一运行kali中的应用程序就显示no x11 display variable was set;试过了很多export dispaly=:0之类的办法,都没有用;卸载重装kali,也没有用


阅读 42

收藏
2024-06-20

共1个答案

小能豆

在物理机上配置 WSL 后,Kali Linux 中出现 “no x11 display variable was set” 错误,可能是由于 X11 配置或环境变量设置的问题。以下是一些排查和解决方案:

1. 安装和配置 X11 服务器

首先确保你在物理机上安装了 X11 服务器,比如 VcXsrvXming

2. 启动 X11 服务器

启动 X11 服务器并确保它在监听连接。通常你需要在 X11 服务器的配置中允许来自 WSL 的连接。

3. 设置 DISPLAY 环境变量

在 WSL 中设置 DISPLAY 环境变量。首先,检查 WSL 的 IP 地址:

echo $(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')

假设输出的 IP 是 172.22.112.1。然后,设置 DISPLAY 变量:

export DISPLAY=172.22.112.1:0

你也可以将这个命令添加到 ~/.bashrc~/.zshrc 文件中,以便每次打开新的终端时自动设置:

echo 'export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0' >> ~/.bashrc
source ~/.bashrc

4. 启用 X11 转发

确保 SSH 配置中允许 X11 转发。如果你使用 SSH 连接到 WSL,可以在 /etc/ssh/sshd_config 文件中检查以下配置:

X11Forwarding yes

然后重启 SSH 服务:

sudo service ssh --full-restart

5. 验证 X11 连接

验证 X11 服务器是否工作正常,可以尝试运行一个简单的 X 应用程序,比如 xeyesxclock

sudo apt update
sudo apt install x11-apps
xeyes

如果 xeyes 能正确启动并显示,那么 X11 配置已经正确。

6. 检查防火墙配置

确保没有防火墙阻止 X11 连接。可以临时禁用防火墙以进行测试:

sudo ufw disable

如果确定是防火墙问题,可以配置防火墙允许 X11 连接。

7. 检查 WSL 版本

确保你使用的是 WSL 2,因为 WSL 2 提供了更好的兼容性和性能。如果你仍在使用 WSL 1,可以考虑升级到 WSL 2:

wsl --set-version <Distro> 2

8. 检查 X11 服务器配置

确保 X11 服务器配置正确,例如在 VcXsrv 中,启动时选择 Disable access control,以便从任何地方都可以访问 X11 服务器。

如果以上步骤都无法解决问题,可以尝试以下命令来检查 DISPLAY 环境变量是否正确设置:

echo $DISPLAY

如果仍然有问题,可以重新启动 WSL 和 X11 服务器,确保所有配置生效。

通过以上步骤,应该可以解决 “no x11 display variable was set” 错误。如果问题依旧存在,可以详细描述你的配置和具体的错误信息,以便进一步排查。

2024-06-20