Windows在更新到2004版本之后正式开启了WSL2的支持,这次是完整的运行在HyperV虚拟机中的Linux系统了,可以称之为真正的Linux了,难不成Windows即将成为最好的Linux发行版?
实际体验下来还是可以的,不过小问题不少,爱折腾的同学安排一手,对提高Windows平台下的开发体验还是有很大帮助的~
Kali on WSL2安装指南
升级系统
首先检查当前系统版本,按Win+R,输入winver,可以看到当前的系统版本:
如果不是2004版本的话,要把系统升级到2004版本,微软说是有推送,但时好时坏,检查不到更新的同学请自行下载官方的“易升”工具检查更新。
启用Linux子系统
在升级到2004版之后,可以开始安装系统了,如果没有启用Linux子系统的话,得先启用。
❝ PS:由于WSL2是使用HyperV虚拟机的,所以开启之后会和VMware和VirtualBox冲突,可以通过升级VMware和vbox到支持HyperV的版本解决。❞使用管理员权限打开PowerShell,输入以下命令,启用Linux子系统:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
之后需要重启。
启用虚拟化
使用管理员权限打开PowerShell,输入以下命令:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestartdism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
重启系统
下载WSL2的Linux内核
下载地址:https://aka.ms/wsl2kernel
下载后安装。
设置子系统的默认版本为WSL2
使用管理员权限打开PowerShell,输入以下命令:
wsl --set-default-version 2
安装Kali Linux
打开应用商店,搜索安装Kali Linux。
安装完成后选择“启动”,就会开始解压安装,然后输入用户名和密码就ok了。
升级原有系统到WSL2
如果原本就安装有WSL,可以直接升级到WSL2。
使用管理员权限打开PowerShell,输入以下命令:
wsl --set-version kali-linux 2
安装Win-Kex工具包
Win-Kex工具包是Kali提供的在Windows上运行的图形化工具包,可以一键式傻瓜化在WSL中跑图形界面。
在Kali命令行中输入命令安装:
sudo apt update && sudo apt install kali-win-kex
安装完成后就可以启动图像界面了,命令如下:
cd ~kex
第一次启动会让你输入一个新密码,这个密码是作为kex的密码保存起来。
注意要先切换当前目录到home目录再启动kex,不然会获取不到key。
简单配置
安装Kali Linux工具包
安装标准工具包sudo apt install kali-linux-default
安装大工具包(大概7 8G) sudo apt install kali-linux-large
配置Windows Terminal快捷方式
每次都用命令行打开太麻烦了,可以在Windows Terminal中配置快捷方式,下次就可以通过这个下拉菜单打开Kex的图形界面了。
打开Windows Terminal的配置文件,加入以下配置项:
{ "guid": "{55ca431a-3a87-5fb3-83cd-11ececc031d2}", "hidden": false, "name": "Win-KeX", "commandline": "wsl kex wtstart",},{ "guid": "{55ca431a-3a87-5fb3-83cd-11ececc031d2}", "hidden": false, "icon": "file:///c:/users/<windows user>/pictures/icons/kali-menu.png", "name": "Win-KeX", "commandline": "wsl kex wtstart", "startingDirectory" : "//wsl$/kali-linux/home/<kali user>"},
之后点击“Win-Kex”菜单项就可以直接启动图形界面了。
❝ PS:进入全屏的图形界面之后,按F8可以打开context菜单。❞
解决无法联网问题
Create a file: /etc/wsl.conf.Put the following lines in the file[network]generateResolvConf = false
In a cmd window, run wsl --shutdownRestart WSL2Create a file: /etc/resolv.conf. If it exists, replace existing one with this new file.Put the following lines in the file nameserver 8.8.8.8Repeat step 3 and 4. You will see git working fine now.
Repeat step 3 and 4. You will see git working fine now. 参考自:https://github.com/microsoft/WSL/issues/4285
解决kex无法启动问题
错误信息如下:
❝ unable to connect to socket: No connection could be made because the target machine actively refused it. (10061)中文的提示就是什么远程主机积极拒绝❞
解决方法是在bash中运行kex stop
,然后重新启动kex。
参考:https://unix.stackexchange.com/questions/605309/not-able-to-initialize-gui-for-kali-linux-in-wsl-2