wsl安装,配置usb及远程连接

 

安装

参考官方文档就行,默认安装的是最新的 ubuntu

报错:

Error: 0x800701bc

Ref

环境:win11,在 windows 商店安装 kali,没有升级 wsl

解决:搜索打开 windows features,并打开虚拟机平台和 windows sub linux

参考的对象类型不支持尝试的操作/[已退出进程,代码为 4294967295 (0xffffffff)]

refer

安装完成后无法启动,据说是 wsl2 对 vpn 的支持有问题

  1. 临时解决方案

使用管理员权限打开 powershell 然后执行下面的语句重置网络就可以了

netsh winsock reset

  1. 长期解决的方案:

(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

refer

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

卸载

  1. Get-AppxPackage -allusers | Select Name, PackageFullName
  2. 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:

Steps

  1. 升级 wsl2 的内核

    • 查看 linux 内核版本 uname -srm

    • 如果版本低于 Linux 内核 5.10.60.1,则在管理员 powershell 中 wsl --update

    • 重启电脑

  2. windows 安装 usbip,下载并安装
  3. kali 安装 usbip:sudo apt-get install usbip
  4. 如果安装多个 wsl

    • 需要在 powershell 中指定哪个 wsl:usbipd wsl attach --distribution kali-linux

    • 或者设置默认 wsl:wsl --setdefault kali-linux

  5. powershell 列出可以连接的 usb 设备:usbipd wsl list
  6. 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这个设备
  7. 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

在win终端两种连接方法:

  • 在 wsl 本地输入:ssh root@<ip of wsl> -p 2222

  • 在 wsl 本地输入:ssh root@localhost -p 2222

远程连接

利用公网服务器隧道连接