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

配置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-firmware
deb-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-firmware

deb 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-firmware

deb 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完整工具集(体积较大,大多数情况下安装标准工具集即可)

安装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>"
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值