安装
参考官方文档就行,默认安装的是最新的 ubuntu
报错:
Error: 0x800701bc
环境:win11,在 windows 商店安装 kali,没有升级 wsl
解决:搜索打开 windows features,并打开虚拟机平台和 windows sub linux
参考的对象类型不支持尝试的操作/[已退出进程,代码为 4294967295 (0xffffffff)]
安装完成后无法启动,据说是 wsl2 对 vpn 的支持有问题
- 临时解决方案
使用管理员权限打开 powershell 然后执行下面的语句重置网络就可以了
netsh winsock reset
- 长期解决的方案:
(1)下载此软件:
www.proxifier.com/tmp/Test20200228/NoLsp.exe
(2)管理员身份运行 CMD 输入:
NoLsp.exe C:\windows\system32\wsl.exe
请自行注意 NoLsp.exe 程序的位置,以及你的 wsl.exe 位置。
产生原因和解决方法分析:
代理软件和 wsl2 的 sock 端口冲突,使用 netsh winsock reset 重置修复。
Proxifer 开发人员解释如下:
如果 Winsock LSP DLL 被加载到其进程中,则 wsl.exe 将显示此错误。最简单的解决方案是对 wsl.exe 使用 WSCSetApplicationCategory WinAPI 调用来防止这种情况。在后台,该调用在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog 中为 wsl.exe 创建一个条目。
这将告诉 Windows 不要将 LSP DLL 加载到 wsl.exe 进程中
上述解决方案来自于:
Winsock module breaks WSL2 · Issue #4177 · microsoft/WSL (github.com)
wsl2 安装 kali 不成功 - Microsoft Community
把 wsl 安装目录移动到 D 盘
首先win终端查看所有分发版本
$wsl -l -v
NAME STATE VERSION
Ubuntu-20.04 Running 2
如果要移动的是Ubuntu-20.04
,则是以下命令
# 命令依次是:
# 1. 导出分发版为 tar 文件到 d 盘
# 2. 注销当前分发版
# 3. 重新导入并安装分发版在 d:\ubuntu
# 4. 设置默认登陆用户为安装时用户名(默认是 root)
# 5. 删除 tar 文件(可选)
wsl --export Ubuntu-20.04 d:\ubuntu20.04.tar
wsl --unregister Ubuntu-20.04
wsl --import Ubuntu-20.04 d:\ubuntu d:\ubuntu20.04.tar --version 2
ubuntu2004 config --default-user root
del d:\ubuntu20.04.tar
- 可能会遇到如下情况,有很多原因,如果使用代理,可通过 参考的对象类型不支持尝试的操作 解决
Error: 0x80070057
wsl2 配置 kali 及安装 GUI
问题记录
- (refer)把 kali 移动到 D 盘后,输入
sudo apt update && sudo apt upgrade
,会出现
The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository devel@kali.org
解决:重装
尝试解决:
$sudo apt install kali-archive-keyring
$apt policy kali-archive-keyring
kali-archive-keyring:
Installed: 2018.1
Candidate: 2018.1
Version table:
*** 2018.1 500
500 http://http.kali.org/kali kali-rolling/main amd64 Packages
100 /var/lib/dpkg/status
$sudo apt update -oAcquire::AllowInsecureRepositories=true
$sudo apt install kali-archive-keyring
紧接着又有新的错误(refer)
$sudo
sudo: account validation failure, is your account locked?
尝试把下面文件/etc/pam.d/sudo 恢复为以下默认内容来解决
#%PAM-1.0
auth include system-auth
account include system-auth
session include system-auth
发现又报错
sudo: PAM account management error: Permission denied
最后放弃了,重新安装 tmd
- 以后有机会学习下 PAM 机制
安装 kali 桌面 GUI
官网安装 kex
sudo apt update && sudo apt upgrade
#安装工具集
sudo apt install -y kali-linux-default
sudo apt install -y kali-win-kex
# 启动
cd ~
#第一次需要输入两次密码设置密码
kex
# 关闭
kex stop
# 窗口模式
kex --win -s
# 无缝模式
kex --sl -s
卸载
Get-AppxPackage -allusers | Select Name, PackageFullName
get-appxpackage CanonicalGroupLimited.Ubuntu16.04onWindows | remove-Appxpackage
Tips
- wsl 访问 windows 文件,输入
cd /mnt
- windows 访问 wsl 文件,在 wsl 的终端输入
explorer.exe .
;直接在 windows 资源管理器输入\\wsl$\Ubuntu-20.04\mnt\wsl
也可以打开
在 windows terminal 中打开 ubuntu 执行上述命令打开的是所在文件夹。
wsl2 kali 连接 windows 的 usb 设备
refer:
- 连接 USB 设备 Microsoft Docs
- Unable to locate and install usbip user-space tools for Kali in WSL2 · Issue #261 · dorssel/usbipd-win (github.com)
Steps
-
升级 wsl2 的内核
-
查看 linux 内核版本
uname -srm
-
如果版本低于 Linux 内核 5.10.60.1,则在管理员 powershell 中
wsl --update
-
重启电脑
-
- windows 安装 usbip,下载并安装
- kali 安装 usbip:
sudo apt-get install usbip
-
如果安装多个 wsl
-
需要在 powershell 中指定哪个 wsl:
usbipd wsl attach --distribution kali-linux
-
或者设置默认 wsl:
wsl --setdefault kali-linux
-
- powershell 列出可以连接的 usb 设备:
usbipd wsl list
-
powershell 管理员选择
-
自动(
-a
可选)连接哪个设备:usbipd wsl attach -a -i <VID:PID>
-
断开:物理断开或
usbipd wsl detach --busid <busid>
经测试,即使关闭 powershell,也不会关闭 wsl 和 usbip 服务
usbip: error: Attach Request for 1-3 failed - Device busy (exported)
- 解决:
usbipd bind --force --busid 1-3
- 但是这么操作会导致windows无法连接usb设备,需要再管理员身份unbind这个设备
- 解决:
-
- wsl 列出 usb 设备:
lsusb
远程连接 wsl
refer:【WSL】WSL 折腾之旅(3)SSH 远程连接
重装ssh
因为wsl自带ssh不完整,所以需要重装
apt remove openssh-server
apt install openssh-server
修改配置信息,编辑 /etc/ssh/sshd_config
文件。
Port 2222
PermitRootLogin yes
# 也可以禁止密码登录
重启 ssh 服务:service ssh --full-restart
设置开机自启
设置wsl的 ssh 服务开机自启
在前篇提到的 /etc/init.wsl
文件中添加 service ssh start
。
wsl在windows开机自启
打开 Windows 注册表
在计算机 \HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
下添加一个 REG_SZ
类型的值
-
名称可自定义
-
值如下,注意替换 kali-linux 为设置的版本名
mshta vbscript:CreateObject("WScript.Shell").Run("wsl -d kali-linux -u root bash /etc/init.wsl",0,TRUE)(window.close)
ssh连接
本地连接
Wsl 的 ip 地址:wsl hostname -I
- 发现 wsl 的 ip 会变化
- 同时注意 wsl 和 windows 是共享端口的,可以在 win 的资源监视器看到
在win终端两种连接方法:
-
在 wsl 本地输入:
ssh root@<ip of wsl> -p 2222
-
在 wsl 本地输入:
ssh root@localhost -p 2222
远程连接
利用公网服务器隧道连接