wsl2是一款现代的 Linux 虚拟机解决方案,相较于以往的 wsl1 模拟了完整的 linux 内核,且可以非常方便的直接访问 windows 本机的文件,你可以通过 wsl2 配置不同的 linux 发行版进行使用。
windows 预先设置
首先确保你的电脑使用的系统是 windows 11 ,理论上来说 win10 也可以但需要一些神秘代码的帮助这里不作多余讨论
在正式开始之前请确认你打开了虚拟化,你可以按下 ctrl + shift +esc 在任务管理器的性能选项中查看
其他厂家搜索关键词差不多
当你打开虚拟化后,接下来需要设置Windows 功能
在windows任务栏的搜索框中输入 启用或关闭 Windows 功能
功能,开启这个选项卡,找到其中以下几项并开启
- Virtual Machine Platform
- Windows Subsystem for Linux
- Hyper-V
- Windows Hypervisor Platform
因为系统版本的原因,你这里可能会有几项使用的是中文翻译,也有可能会有几项缺少,但是主要的Windows Subsystem for Linux和Virtual Machine Platform一定要开启

如果除了 wsl 你还要使用其他的虚拟机如VMware之类的,请务必使用 VMware 25H2 以上的版本解决虚拟化独占问题,不然可能你两个都用不了
wsl2 安装
首先按下 win + R 键输入cmd或pwsh打开命令行
在其中输入
wsl --list --online
查看当前可用 linux 发行版
如果你研究 web 相关的内容,请选择 kali
当然你也可以选择我全都要,但是你的硬盘可能不这么认为
接下来输入
wsl --install -d Ubuntu-24.04
安装Ubuntu-24.04的版本,这里以 Ubuntu 为例,你可以根据自己的需求替换 这一步受限于网络环境可能会非常缓慢,可能需要一些魔法进行提速,你懂我意思的
完成后依旧可能提示重启,如果提示则尝试重启
启动 wsl2
完成安装后,部分版本会直接进入 wsl2 ,有些需要手动重新打开
如果没有自动打开,请在windows的菜单中找到你刚刚安装的发行版
Enter new username:
之类的提示,输入你希望设置的用户名 接下来会提示
New password:
输入你想设置的密码,但是这里不出意外你会发现输入的密码没有变化,这里其实只是为了安全隐藏了输入,也没有用*之类的占位,你是可以正常输入的
当完成之后你就可以爽爽的进入系统了
注意!!!
千万不要在 wsl2 里作死学别的视频里的虚拟机输入什么rm -rf /之类的命令,千万不要!!!
你整个电脑都被挂载在了 /mnt 里面,你要是执行会给你实体机也删了
wsl2 配置二进制环境
换源
在开始之前,你需要配置系统软件源,其实使用默认的也行只不过很慢 如果你使用的是Ubuntu 24.04及以上请使用如下命令,但如果是老版本 apt源的格式不同,因为是老版本请自行搜索
sudo tee /etc/apt/sources.list.d/ubuntu.sources > /dev/null <<'EOF'
Types: deb deb-src
URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb deb-src
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
EOF
刷新软件包索引:
sudo apt update
然后更新已经安装的软件包:
sudo apt upgrade -y
清理无用依赖:
sudo apt autoremove --purge -y
sudo apt clean
基础工具
先安装日常使用和后续安装过程依赖的工具:
sudo apt install -y \
ca-certificates \
curl \
wget \
git \
gnupg \
software-properties-common \
file \
tree \
less \
man-db \
manpages \
manpages-dev \
unzip \
zip \
xz-utils \
tar \
jq \
rsync \
openssh-client \
socat \
netcat-openbsd \
vim \
neovim \
nano \
tmux
其中比较重要的工具包括:
| 软件 | 用途 |
|---|---|
file | 判断文件类型、架构和链接方式 |
git | 下载源码、管理项目 |
curl、wget | 下载文件和测试网络 |
xz-utils | 解压 glibc、内核等源码压缩包 |
socat | 模拟远程 PWN 服务、转发输入输出 |
netcat-openbsd | 测试 TCP 服务 |
tmux | 分屏 |
jq | 处理 JSON 数据和 GitHub API 返回值 |
安装 C/C++ 和汇编开发环境
安装完整的基础编译工具链:
sudo apt install -y \
build-essential \
gcc \
g++ \
make \
cmake \
ninja-build \
meson \
pkg-config \
autoconf \
automake \
libtool \
bison \
flex \
clang \
lld \
libc6-dev \
libssl-dev \
libffi-dev \
zlib1g-dev \
liblzma-dev \
libreadline-dev \
libncurses-dev \
libseccomp-dev
安装汇编器:
sudo apt install -y \
nasm \
yasm
这些工具可以覆盖:
- GCC/Clang 编译;
- Makefile、CMake、Meson 项目;
- Intel 风格汇编编写;
- OpenSSL、FFI、ncurses、seccomp 相关程序编译;
- glibc、binutils 和大量安全工具的源码编译。
检查安装结果:
gcc --version
g++ --version
clang --version
make --version
cmake --version
nasm -v
32位支持
一些古老的题目或者特殊情况下会出现一些32位的题目,所以我们应当也配置好相关内容 执行:
sudo dpkg --add-architecture i386
sudo apt update
查看已经启用的外部架构:
dpkg --print-foreign-architectures
正常应包含:
i386
安装 32 位运行库和开发库
sudo apt install -y \
gcc-multilib \
g++-multilib \
libc6-dev-i386 \
libc6:i386 \
libstdc++6:i386
python环境
Ubuntu 24.04 提供 Python 3、pip 和 venv 软件包。
安装:
sudo apt install -y \
python3 \
python3-dev \
python3-pip \
python3-venv \
python3-setuptools \
python3-wheel \
pipx
检查:
python3 --version
python3 -m pip --version
pip 换源
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pwn的python环境
这里没有使用虚拟环境,可能会提示无法执行,你可以选择创建venv虚拟环境或使用–break-system-packages参数或者直接删除externally-managed(有风险)
pip3 install --upgrade pip
pip3 install pwntools
sudo pip3 install keystone-engine ropper
pwn因为实际需要使用的工具非常多,你完全可以等用到了再配,这里整个基础的pwntools即可
调试工具
sudo apt install -y \
gdb \
gdb-multiarch \
binutils \
binutils-multiarch \
elfutils \
strace \
ltrace \
patchelf \
valgrind \
hexedit \
xxd
gdb的插件中,pwndbg,GEF,PEDA你只能三选一,我比较喜欢pwndbg所以以这个为例
git clone https://github.com/pwndbg/pwndbg.git
cd pwndbg
./setup.sh
需要注意这个依然有一定的网络要求,建议魔法一下
可能有一些包名发生过变动,但一般都能很方便的解决这里不细讲了 这些东西搞完一般来说你的 wsl 已经可以进行最基础的开发调试了,其余高级工具在遇到时再进行安装配置