Windows WSL2
安装 Kali Linux 完整指南
包含:安装部署 · 清华换源 · D盘迁移 · 内存优化 · 权限修复 · 代理联动
适用环境:Windows 11 | 32GB 内存 | 用户名 LeoEzekiel | 清华源 | D盘
文档版本:v1.0 | 2025年
文档概述
本文档是一份针对 Windows 11 用户的 WSL2 + Kali Linux 完整部署指南,涵盖从零安装到生产环境优化的全部步骤。所有命令均已针对用户 LeoEzekiel 的环境进行预设定,可直接复制执行。
适用环境
项目 | 配置 |
操作系统 | Windows 11 |
内存大小 | 32GB |
Kali 用户名 | LeoEzekiel |
软件源 | 清华大学 TUNA 镜像站 |
WSL 存储盘 | D 盘 |
WSL 内存上限 | 16GB |
代理软件 | 暂未配置(备用) |
整体流程
安装 WSL → 安装 Kali Linux → 初始化系统 → 换清华源 → 迁移到 D 盘 → 限制内存 → 修复权限 → 完成!
✅ 提示:每一步完成后都执行 wsl --shutdown 重启 WSL 再进行下一步,确保配置生效。 |
第一章:安装 WSL 和 Kali Linux
1.1 启用 WSL
右键开始菜单 → 终端(管理员)或搜索 PowerShell → 右键以管理员身份运行。执行以下命令:
wsl --install -d kali-linux |
此命令会自动启用 WSL 功能并安装 Kali Linux 发行版。如果系统提示需要重启,请立即重启电脑。
✅ 提示:wsl --install 默认安装 Ubuntu,加上 -d kali-linux 才能指定安装 Kali。如果命令报错,可先执行 wsl --list --online 查看可用发行版。 |
1.2 重启电脑
安装完成后必须重启计算机,重启后 Kali Linux 会自动弹出初始化窗口。如果没有自动弹出,可以在开始菜单搜索 Kali Linux 打开。
1.3 初始化 Kali Linux
首次启动会等待解压(约 1-3 分钟),然后按提示操作:
输入新用户名:LeoEzekiel 输入新密码:********(输入两次,密码不会显示) |
⚠️ 注意:用户名建议使用小写字母,密码请记住,后续 sudo 操作会用到。 |
1.4 运行初始配置脚本
创建用户后,执行 Kali 的初始化脚本:
该脚本会自动配置时区、locale、SSH 密钥等基础设置。
1.5 全量升级系统
初始化完成后,执行全量系统升级:
sudo apt update && sudo apt full-upgrade -y |
这个过程可能需要几分钟到十几分钟,取决于网络速度和需要更新的包数量。
1.6 验证安装
执行 whoami 应输出 LeoEzekiel,确认用户创建成功。
第二章:换源为清华源
2.1 为什么要换源?
Kali Linux 默认使用官方源,服务器在国外,下载速度极慢甚至经常超时失败。换成清华大学 TUNA 镜像站后,下载速度可达到满速。
2.2 备份原有源
在修改之前,先备份原有的源配置文件,以便出问题时可以恢复:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak |
2.3 替换为清华源
执行以下命令,将源列表文件替换为清华源:
sudo tee /etc/apt/sources.list > /dev/null << 'EOF' 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 EOF |
✅ 提示:发行版代号必须是 kali-rolling(滚动更新版),不是 kali。组件包含 main、non-free、contrib、non-free-firmware 四部分。 |
2.4 安装签名密钥并更新
换源后需要安装清华源的 GPG 签名密钥,然后更新软件列表:
sudo apt install kali-archive-keyring -y sudo apt clean && sudo apt update |
如果没有报错(尤其是没有 NO_PUBKEY 错误),说明换源成功。
⚠️ 注意:如果出现 NO_PUBKEY 错误,请确保已执行 sudo apt install kali-archive-keyring -y,然后再执行 sudo apt update。 |
第三章:WSL 发行版迁移到 D 盘
3.1 为什么要迁移?
WSL 默认安装在 C 盘,用久了虚拟磁盘文件(.vhdx)会越来越大,直接把 C 盘占满。迁移到 D 盘可以释放 C 盘空间。
⚠️ 注意:以下命令全部在管理员 PowerShell 中执行!迁移前确保 Kali 中没有正在运行的重要程序。 |
3.2 查看已安装的发行版
在管理员 PowerShell 中执行:
记住发行版名称(通常是 Kali-Linux),下面的命令都用这个名称。如果显示的名称不同,请相应替换。
3.3 关闭所有 WSL
3.4 创建 D 盘目标文件夹
New-Item -ItemType Directory -Path "D:\WSL" -Force |
3.5 导出发行版备份
wsl --export Kali-Linux D:\WSL\Kali-Linux.tar |
等待导出完成,文件可能有几个 GB,取决于你装了多少软件。
3.6 注销 C 盘原发行版
wsl --unregister Kali-Linux |
⚠️ 注意:此操作会删除 C 盘的 WSL 数据!请确保 3.5 导出成功后再执行!操作不可逆! |
3.7 导入到 D 盘
wsl --import Kali-Linux D:\WSL\Kali-Linux D:\WSL\Kali-Linux.tar --version 2 |
导入完成后,默认会以 root 用户登录,下一步需要修改默认用户。
3.8 设置默认用户为 LeoEzekiel
启动 Kali:
在 Kali 终端中执行:
echo -e "[user]\ndefault=LeoEzekiel" | sudo tee /etc/wsl.conf |
3.9 重启 WSL 使配置生效
回到 PowerShell:
wsl --shutdown wsl -d Kali-Linux |
验证用户:
应输出 LeoEzekiel。
3.10 清理备份文件
确认迁移成功后,删除备份文件释放空间:
Remove-Item D:\WSL\Kali-Linux.tar -Force |
第四章:限制 WSL2 内存占用
4.1 问题说明
WSL2 最常见的问题是内存占用过高。Linux 的缓存机制会把内存占满,且不会主动释放给 Windows,导致 Windows 变卡或其他程序崩溃。解决方案是通过配置文件限制 WSL 的最大内存。
4.2 创建 .wslconfig 文件
在管理员 PowerShell 中执行以下命令,自动创建配置文件:
$wslConfig = @" [wsl2] # 最大内存限制(32G内存建议给16G) memory=16GB # 最大处理器核心数 processors=8 # 交换分区大小 swap=8GB # 自动释放闲置内存给Windows pageReporting=true # 本地端口转发 localhostForwarding=true "@ $wslConfig | Out-File -FilePath "$env:USERPROFILE\.wslconfig" -Encoding UTF8 -Force Write-Host "✅ .wslconfig 已创建: $env:USERPROFILE\.wslconfig" -ForegroundColor Green |
✅ 提示:配置文件位置:C:\Users\<你的Windows用户名>\.wslconfig,注意前面有个点,没有后缀名。 |
4.3 配置参数说明
参数 | 设置值 | 说明 |
memory | 16GB | WSL 最大可用内存,超出后会使用 swap |
processors | 8 | 分配给 WSL 的 CPU 核心数 |
swap | 8GB | 交换分区大小,内存不足时使用 |
pageReporting | true | 自动将闲置内存释放给 Windows |
localhostForwarding | true | 允许通过 localhost 访问 WSL 服务 |
4.4 重启 WSL 生效
4.5 验证内存限制
在 Kali 中执行:
总内存应显示约 16GB。
4.6 手动释放内存缓存(备用)
如果觉得内存还是很高,可以手动清除缓存:
sudo echo 3 > /proc/sys/vm/drop_caches |
第五章:修复文件权限混乱
5.1 问题说明
WSL 访问 Windows 文件(/mnt/c、/mnt/d)时,默认权限是 777,所有人都可读写执行。这会导致某些程序(如 Git、SSH)权限检测异常,报错或拒绝运行。
5.2 解决方案
通过配置 /etc/wsl.conf 中的挂载参数,让 Windows 文件的权限变为正常的 644(文件)和 755(文件夹)。
5.3 备份并写入配置
在 Kali Linux 中执行:
sudo cp /etc/wsl.conf /etc/wsl.conf.bak |
写入新配置:
sudo tee /etc/wsl.conf > /dev/null << 'EOF' [automount] enabled = true options = "metadata,umask=022,fmask=133" mountFsTab = true [user] default = LeoEzekiel EOF |
✅ 提示:umask=022 让文件夹权限为 755,fmask=133 让文件权限为 644。metadata 参数支持 Linux 权限位。 |
5.4 重启 WSL 生效
回到 PowerShell:
wsl --shutdown wsl -d Kali-Linux |
5.5 验证权限
在 Kali 中执行:
文件权限应为 -rw-r--r--(644),文件夹应为 drwxr-xr-x(755),不再是全 777。
第六章:代理联动(备用)
6.1 使用场景
如果你以后需要在 Kali 中访问外网(如使用 git clone、pip install 等),而 Windows 上已经开了代理软件,可以配置 WSL 直接走 Windows 的代理。
6.2 配置方法
在 Kali 的 ~/.bashrc 末尾添加以下内容(端口号请根据你的代理软件修改):
# WSL 代理联动 export WINDOWS_HOST=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}') export PROXY_PORT=7890 export http_proxy=http://$WINDOWS_HOST:$PROXY_PORT export https_proxy=http://$WINDOWS_HOST:$PROXY_PORT export all_proxy=socks5://$WINDOWS_HOST:$PROXY_PORT |
保存后执行:
6.3 常见代理端口
代理软件 | 默认端口 | PROXY_PORT 值 |
Clash / Clash Verge | 7890 | 7890 |
V2rayN | 10809 | 10809 |
Shadowsocks | 1080 | 1080 |
✅ 提示:代理软件需要开启“允许局域网连接”才能让 WSL 正常使用。 |
附录:常用命令速查
PowerShell 命令
命令 | 说明 |
wsl -l -v | 查看已安装发行版及 WSL 版本 |
wsl --shutdown | 关闭所有 WSL 实例 |
wsl -d Kali-Linux | 启动 Kali Linux |
wsl --set-default Kali-Linux | 设 Kali 为默认发行版 |
wsl --set-version Kali-Linux 2 | 确保使用 WSL 2 |
wsl --export Kali-Linux D:\backup.tar | 导出发行版备份 |
wsl --import Kali D:\WSL D:\backup.tar | 导入发行版 |
Kali Linux 常用命令
命令 | 说明 |
sudo apt update | 更新软件源列表 |
sudo apt upgrade -y | 升级已安装软件 |
sudo apt install 软件名 -y | 安装软件 |
sudo apt autoremove -y | 清理无用依赖 |
sudo apt clean | 清理下载缓存 |
free -h | 查看内存使用 |
df -h | 查看磁盘使用 |
cat /etc/os-release | 查看系统信息 |
whoami | 查看当前用户 |
uname -a | 查看内核版本 |
文件位置快速参考
文件 | 路径 | 说明 |
.wslconfig | C:\Users\<用户>\.wslconfig | WSL 全局配置(内存、CPU) |
wsl.conf | /etc/wsl.conf | Kali 内配置(挂载、用户) |
sources.list | /etc/apt/sources.list | APT 软件源配置 |
.bashrc | ~/.bashrc | 用户环境变量和别名 |
WSL 虚拟磁盘 | D:\WSL\Kali-Linux\ext4.vhdx | WSL 存储文件 |