当前位置:首页 » 《关注互联网》 » 正文

Kali linux在WSL2中的配置并使用kex实现图形界面(教程总结)

28 人参与  2024年11月05日 19:20  分类 : 《关注互联网》  评论

点击全文阅读


配置WSL

首先查看默认的Linux发行版,如果默认为docker之类的则设置Kali linux或其他linux系统为默认,下面是wsl的常用命令:

查看帮助信息:wsl --help 或 wsl -h更新WSL:wsl --update查看可用的Linux发行版:wsl --list --online 或 wsl -l -o安装Linux发行版:wsl --install -d <Distro>,例如安装Debian:wsl --install -d Debian设置默认Linux发行版:wsl --set-default <Distro> 或 wsl -s <Distro>将WSL2设置为默认版本:wsl --set-default-version 2设置特定发行版为WSL2:wsl --set-version <Distro> 2,例如将Ubuntu设置为WSL2:wsl --set-version ubuntu 2查看当前状态:wsl --status查看详细信息:wsl --list --verbose 或 wsl -l -v直接运行子系统命令:wsl -d <Distro> <command>,例如在默认子系统中运行ls:wsl ls关闭特定子系统:wsl --terminate <Distro> 或 wsl -t <Distro>关闭所有子系统:wsl --shutdown卸载特定子系统:wsl --unregister <Distro>

配置kali linux

首先更换软件源,执行sudo vim /etc/apt/sources.list在其中添加如下字段:

deb https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib non-free-firmwaredeb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib non-free-firmware# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmwaredeb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmwaredeb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware# deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

如果有需要可以通过以下命令安装kali工具集:

//安装kali标准工具集sudo apt install kali-linux-default//安装kali大工具集sudo apt install kali-linux-large//安装kali完整工具集(体积较大,大多数情况下安装标准工具集即可)sudo apt install kali-linux-everything//安装完成后可以使用此命令自动清理不需要的软件包sudo apt autoremove

安装kex

通过下面的命令更新索引并安装kex

sudo apt update && sudo apt install kali-win-kex

kex的三种模式

kex有三种模式:
1.窗口模式:在专用窗口中启动 Kali Linux 桌面
2.无缝模式:在 Windows 和 Kali 应用程序和菜单之间共享 Windows 桌面
3.增强会话模式:与 Hyper-V 类似,使用 RDP 获得功能更丰富的体验
如果只使用窗口模式的话则在安装kex后,进入~目录直接执行kex即可,如果需要声音支持则在kex后面加上-s,这种模式会直接覆盖当前的屏幕,建议在有更多屏幕的情况下使用。
如果要使用无缝模式,则需要安装VcXsrv,网址如下。

https://sourceforge.net/projects/vcxsrv/

还需要安装微软运行库vcredist140 ,根据官方文档的要求应该安装以下该链接的Visual C++ Redistributable for Visual Studio 2015 ( vcredist140 )

https://www.microsoft.com/en-US/download/details.aspx?id=48145

如果你的机器上存在其它版本的vcredist14x,需要在控制面版中卸载卸载其它版本,然后安装vcredist140,如果你安装过微软运行库合集,如果后面测试可以使用则没有必要一定安装这个版本。

无缝模式下配置kex

在安装完VcXsrv后运行并按照如下进行设置 :
在这里插入图片描述
这四个模式里作者推荐使用默认的(据说在多屏幕情况下会有问题),默认模式运行起来很流畅,One large window这个模式在别的教程中被推荐,但是作者实测运行卡顿,并且经常无法显示图像,当然,如果在你的电脑上可以流畅运行也可以使用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果弹出窗口后,注意不要关闭窗口,这时处于等待链接的状态,否则会报如下错误:
在这里插入图片描述

这里我引用一下另一篇博文的解释来阐述这个设置过程发生了什么,原文链接:link:

整个过程中比较重要的概念是 Display number 和环境变量 $DISPLAY 。在 VcXsrv 中设置的 Display number 就是 $DISPLAY 中的分号后面的那个数字。当然,如果 VcXsrv 使用默认的 Display number (-1)就是让 VcXsrv 自动设置这个数字,在当前情况下用默认设置也是可以的。当启动好 VcXsrv 后就相当于在 Windows 上启动了一个虚拟显示器,然后 WSL 的桌面程序需要连接上这个虚拟显示器才能正常显示。Linux 就是通过 $DISPLAY 这个环境变量来寻找目标显示器。网络上有很多 wsl 连接 VcXsrv 的教程的方法是将 $DISPLAY 设置成 :0.0 ,这貌似在 WSL1 上是可行的,但是在 WSL2 上就行不通了。(但是如果用 xrdp 来使用图形界面使用这个设置就是可以的,因为 xrdp 是运行在 wsl 的 Linux 上的,而且 :0.0 的意思其实就是 localhost:0.0 。至于为什么是 0.0 ,是因为这两个数字分别代表 Display 和 Screen,即 D.S 。 0.0 的意思是 0 号 Display 的 0 号 Screen 。至于更详细的解释可以在 Linux 中执行 man X 来查看。)网络上另外还有一个方法是将 $DISPLAY 设置成 $(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0 ,这个值是 /etc/resolv.conf 中的 nameserver 的 IP 。不知道为什么这个方法在我的机子上也行不通(可能是因为别人的 wsl2 的 nameserver 的 IP 和 Windows 的 IP 是一样的?)。而 $DISPLAY 的本质是为了告诉 Linux 的图形程序 X server 的地址和 Display number。所以将地址设置成 VcXsrv 所在主机的 IP 地址那应该是没问题的。如果执行 startxfce4 还是连接不上,并显示 xrdb: Connection timed out 那么检查下 IP 能否 ping 通,以及可能要设置下 WIndows 的防火墙规则。为什么设置的最后一步要全点上钩?最后一个勾是 Disable access control ,这是允许所有客户程序都能连接这个 VcXsrv。有的教程说要在最后一步的 Additional parameters fo VcXsrv 中加上 -ac 这个参数,但其实这个参数应该和勾上 Disable access control 的作用是一样的。因为 -ac 的解释就是 disable access control restrictions 。如果不把 export 写在 .bashrc 中会怎么样?如果只在终端里设置 $DISPLAY 的值其实也能运行,但是这样在图形界面中运行一些图形程序的时候可能就会出问题了。因为只在终端执行 export ... 那么环境变量只会在这个终端有用,如果退出终端或者打开新的终端 $DISPLAY 的值就没了,所以要放在 .bashrc 中。当然用其他永久设置环境的方法也是可以的。                        

然后我们打开cmd,输入ipconfig,记住这个虚拟网卡的ipv4地址:
在这里插入图片描述
然后在kali中输入如下命令:

sudo vim /etc/resolv.conf

将其中的nameserver后面的ip改成上面的ipv4地址,这里的ipv4地址是wsl本身的地址,注意,每次重启wsl都需要重新更改一下,如果你有永久修改的方式也可,例如通过脚本。
然后我们就可以执行kex --sl,此时根据不同的窗口模式就有不同的显示方式了。

增强会话模式

键入kex -esm命令即可启动,这个模式是通过windows远程桌面的方式进行访问。

报错记录

如果报远程主机积极拒绝的错误,执行kex stop,然后重启kex服务即可。

其余

创建 Windows 终端快捷方式,以便下次快速进入图形界面:
在以下选项中进行选择:

窗口模式下的基本 Win-KeX 有声:{      "guid": "{55ca431a-3a87-5fb3-83cd-11ececc031d2}",      "hidden": false,      "name": "Win-KeX",      "commandline": "wsl -d kali-linux kex --wtstart -s",},窗口模式下带声音的高级 Win-KeX - Kali 图标并在 kali 主目录中启动:将图标复制到您的 Windows 图片目录,并将图标和启动目录添加到您的 WT 配置中:kali-menu.png{        "guid": "{55ca431a-3a87-5fb3-83cd-11ececc031d2}",        "hidden": false,        "icon": "file:///c:/users/<windows user>/pictures/icons/kali-menu.png",        "name": "Win-KeX",        "commandline": "wsl -d kali-linux kex --wtstart -s",        "startingDirectory" : "//wsl$/kali-linux/home/<kali user>"},
带声音的无缝模式下的基本 Win-KeX:{      "guid": "{55ca431a-3a87-5fb3-83cd-11ececc031d2}",      "hidden": false,      "name": "Win-KeX",      "commandline": "wsl -d kali-linux kex --sl --wtstart -s",},无缝模式下带声音的高级 Win-KeX - Kali 图标并在 kali 主目录中启动:将图标复制到您的 Windows 图片目录,并将图标和启动目录添加到您的 WT 配置中:kali-menu.png{        "guid": "{55ca431a-3a87-5fb3-83cd-11ececc031d2}",        "hidden": false,        "icon": "file:///c:/users/<windows user>/pictures/icons/kali-menu.png",        "name": "Win-KeX",        "commandline": "wsl -d kali-linux kex --sl --wtstart -s",        "startingDirectory" : "//wsl$/kali-linux/home/<kali user>"},
ESM 模式下的基本 Win-KeX,带声音:{      "guid": "{55ca431a-3a87-5fb3-83cd-11ecedc031d2}",      "hidden": false,      "name": "Win-KeX",      "commandline": "wsl -d kali-linux kex --esm --wtstart -s",},ESM 模式下的高级 Win-KeX 有声 - Kali 图标并在 kali 主目录中启动:将图标复制到您的 Windows 图片目录,并将图标和启动目录添加到您的 WT 配置中:kali-menu.png{        "guid": "{55ca431a-3a87-5fb3-83cd-11ecedd031d2}",        "hidden": false,        "icon": "file:///c:/users/<windows user>/pictures/icons/kali-menu.png",        "name": "Win-KeX",        "commandline": "wsl -d kali-linux kex --esm --wtstart -s",        "startingDirectory" : "//wsl$/kali-linux/home/<kali user>"},

点击全文阅读


本文链接:http://zhangshiyu.com/post/182951.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1