转载于:两者结合
0x00 前言
kali 子系统安装完成后加上杂七杂八的东西还是挺大的,安装过程中会遇到点问题,比如:参考的对象类型不支持尝试的操作,但是 重启+百度可以解决所有问题。
还有就是 wsl 与 vmware 不兼容,一次只能使用一个,非常不利于打靶场。
当然我觉得新手还是先用虚拟机安装 kali,因为虚拟机有克隆功能,搞坏了还可以还原,可以使劲造,还有一个就是有些靶场需要你的kali跟它同一个网段,而在校园网中,虚拟机无法使用桥接模式,所以很难办到,总之困难还是有一点的。
docker 也有点问题,但是都可以解决。
总而言之,你会遇到许多问题,请自行决定是否安装。
0x01 安装子系统
设置基本内容
打开控制面板

系统和安全——程序——程序和功能——启用或关闭Windows功能

适用于linux的Windows子系统(若未勾选虚拟机平台不会出现该选项)

在微软商店搜索Kali

下载安装并打开
可直接通过启动cmd,并输入bash,即可直接进入Linux界面

并且Windows的目录都挂载到了mnt目录下
- 安装坑点
【报错】WslRegisterDistribution failed with error: 0x800701bc
【原因】wsl1升级到wsl2之后,内核却没有升级,所以会出现这种错误提示
【解决】下载最新的wsl安装包
【地址】
【报错】参考的对象类型不支持尝试的操作
【地址】https://blog.csdn.net/marin1993/article/details/119841299
其他的都可以在这里找到,很容易解决的错误
https://docs.microsoft.com/zh-cn/windows/wsl/install-manual
0x02 配置子系统
1、配置源并更新
刚安装完成的Kali Linux是非常干净的,什么软件都没有安装,所以需要手动修改一下源,并更新。以下为常用kali源
1 | #中科大 |
我这里挑选阿里云的源,执行命令修改/etc/apt/sources.list文件,并保存关闭。
vi 好像有点错误,我使用的是 nano /etc/apt/sources.list
执行以下命令进行更新:
1 | sudo apt-get update |
等待命令执行完成后,安装python3、pip、git
1 | sudo apt-get install python3 |
2、安装Kali Linux常用工具
(存储空间有限的话安装几个工具就好)
- msfconsole:
https://blog.csdn.net/m_de_g/article/details/121545937
- nmap
apt-get install nmap
- docker (报错解决方法看 0x06)
http://t.zoukankan.com/jiangbo44-p-12637389.html
- proxychains
apt-get install proxychains
这里推荐使用GitHub上一位老哥的项目,可以一键进行安装
项目地址:https://github.com/rikonaka/katoolin4china
下面安装第三方工具:
1 | git clone https://github.com/rikonaka/katoolin4china |
(注意第三条命令最后有个点)
使用命令打开第三方工具
1 | sudo k4c |

第一步输入2,进行工具安装选项
第二步输入0,安装所有工具。

耐心等待安装完成。
最后msfconsole、sqlmap等工具就可以直接使用了,从此不用再等待虚拟机开机。


0x03 GUI
当然为了更好的体验 Kali,我们可以安装官方推荐的 GUI —— Win-KeX。输入如下命令,进行安装。
1 | sudo apt install -y kali-win-kex |
安装完毕后,可使用如下命令启动
1 | # 启动 |

Win-KeX 还提供了无缝模式
1 | # 无缝模式 |

0x04 WSL2 优化
压缩
随着使用时间的延长,WSL2占用的硬盘空间会越来越多,这个时候就需要对其文件进行压缩。方法如下
1 | wsl --shutdown |
内存
WSL2默认可以使用的内存大小为主机的80%,对于Linux而言即使装了桌面,一般的开发也没必要给这么多内存,分多了,反而有可能卡主机的Windows
操作:
1.打开Windows资源管理器,地址栏输入 %UserProfile% 回车,在该目录下创建一个文件, 名字为 .wslconfig ,写入内容示例如下 (我电脑8GB内存,分给WSL内存2GB,另外设置交换分区4GB)
1 | [wsl2] |
cmd执行 wsl –shutdown 关闭WSL,再重新打开即可
0x05 wsl 和 VMware 兼容性问题
目前的问题是鱼与熊掌不可兼得,所以每次只能用一个,假如要用wsl2,则执行
1 | dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart |
如果要用虚拟机,则执行
1 | Disable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform |
0x06 wsl 无法启动 docker 问题
解决方法:https://www.jianshu.com/p/f98b04b5bcd5
报错情况:Cannot connect to the Docker daemon at unix:///var/run/docker.sock
昨天在一台新的 Windows 11 中安装了 WLS2,目的就是使用 docker。
Microsoft Store 中默认的 Debian 版本是 11,我在很久之前安装的是 10,照着之前的经验添加了北外镜像的 docker-ce 源,安装很顺利。
使用过 WSL2 的人肯定知道,WSL2 中不能使用systemctl
,需要使用service
来启动 docker 或其他服务。
于是我便启动 docker:
1 | sudo service docker start |
此时竟无法启动,查看日志:
1 | $ cat /var/log/docker.log |
可以看到是 iptables 的问题,此问题在其 github 仓库中有人提出过#1105,幸运的是,这个问题正好能被简单地解决。
首先,将iptables
用iptables-legacy
替换:
1 | sudo update-alternatives --set iptables /usr/sbin/iptables-legacy |
然后,开启 ipv4 的包转发功能:
1 | sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf |
最后,重启 WSL2,下面的代码在 cmd 中运行:
1 | wsl --shutdown |
此时再启动 kali,就能顺利启动 docker了。