☰
Kali Linux安装教程:虚拟机分区换源与常用开发环境配置
2026/10/1 13:17:44 网站建设 项目流程

1. 从装一台 Kali 说起:为什么大多数人卡在第一步

Kali Linux 安装教程这个东西,网上一搜一大把,但真到自己动手的时候,十个人里有六个会在引导界面就卡住,三个会死在换源那一步,剩下一个装完了发现全屏黑屏进不去桌面。我这些年帮身边同事、学生重装过的 Kali 少说也有几十台,从老旧的 ThinkPad 到新款的迷你主机,从 VMware 虚拟机到物理机直装,踩过的坑基本能凑成一本小册子。这篇文章就把整套流程从头到尾捋一遍,包含虚拟机方案和物理机方案的差异、磁盘分区怎么划才不后悔、装完之后第一件事该干什么、以及后面把 Python、MySQL、Docker、Git、VSCode 这些常用环境一次性配齐的完整思路。

如果你是完全没接触过 Linux 的新手,这篇可以当操作手册,照着做基本不会出大问题;如果你之前装过 Ubuntu 或者其他发行版,那重点看看分区策略、源配置和几个 Kali 特有的坑就行。我不打算把每个按钮的位置都截图写出来——那种东西看一遍就忘,我更想讲清楚每一步背后的道理,这样下次遇到界面变了你也知道该点哪里。

先说一个前提:Kali 是给安全学习和测试用的发行版,装它的目的是有一个预置了大量工具的 Linux 环境。你可以把它理解成一个"已经帮你把常用开发和安全工具都装好了的 Debian"。理解了这一点,后面很多选择就顺理成章了。

2. 安装方式怎么选:虚拟机、物理机还是双系统

2.1 三种方案的真实差别

很多人上来就问"装虚拟机还是装物理机",其实这个问题没有标准答案,取决于你要拿它干什么。虚拟机的好处是干净、可快照、可克隆、搞坏了删掉重来,五分钟的事。物理机的好处是性能完整、能直接用无线网卡、能访问真实硬件。双系统则是折中方案,但代价是每次切换要重启,而且分区搞不好容易把原来的 Windows 引导弄丢。

我一般这样建议:刚开始学、主要是跑命令行工具和本地靶场的,一律用虚拟机。需要长时间跑任务、或者要用到真实无线网卡做无线相关实验的,才考虑物理机。至于双系统,除非你硬盘空间实在紧张,否则不太推荐——现在 512G 以上的固态很普遍,划 80G 给虚拟机完全够用,还能随时回滚。

虚拟机软件的选择上,VMware Workstation 是主流,功能成熟、快照好用;VirtualBox 免费开源,但在 Kali 上的图形性能一般,3D 加速容易出问题。如果你倾向于开源方案,还有个思路是在 Windows 上直接用 WSL2 装一个 Kali,优点是启动快、和 Windows 文件互通方便,缺点是图形界面和硬件访问受限,很多工具跑不起来。我的建议是主力环境用 VMware,WSL 当作随手敲几个命令的补充。

2.2 硬件资源怎么分配才不卡

虚拟机卡不卡,八成取决于资源分配是否合理。下面这张表是我实测下来比较稳的配置区间,你可以按自己机器的实际配置调整:

宿主机配置建议 vCPU建议内存建议磁盘说明
4 核 8G2 核2G40G只跑命令行,够用
8 核 16G4 核4G60G最舒服的区间
12 核以上 32G6 到 8 核8G100G可以跑多个容器和靶场

几个细节值得说。内存不要超过宿主机的一半,否则宿主系统自己会开始换页,整体反而更慢。磁盘类型选单个文件还是拆成多个,影响的是拷贝和迁移的便利性——单个文件在小文件读写上略快,但拷贝到移动硬盘时很痛苦;拆分成多个 2G 文件则相反。我个人习惯用单个文件,因为平时都是本地用。

还有一个容易被忽略的点:虚拟磁盘不要一开始就分配太大。VMware 默认是"按需增长"的,你标 100G 并不会立刻占满,但如果勾了"立即分配所有磁盘空间",那 100G 就真的被锁死了。这个选项在创建向导的磁盘设置里能找到,默认是关闭的,别手贱去勾。

2.3 网络模式选哪个

VMware 的三种网络模式经常让人犯迷糊。NAT 模式下虚拟机和宿主机共用宿主机的 IP,虚拟机可以访问外网,但外部设备看不到虚拟机;桥接模式让虚拟机和宿主机在同一网段,相当于局域网里多了台独立设备;仅主机模式则完全隔离外网。

装系统阶段我建议先用 NAT,因为安装过程中要联网下载软件包,NAT 基本不会出问题。等装完之后如果你要做局域网内的实验,再改成桥接。注意桥接模式如果宿主机用的是无线网卡,某些情况下虚拟机会拿不到 IP,这时候在虚拟网络编辑器里把桥接绑定的网卡手动指定一下就好了。

3. 镜像获取与虚拟机创建的关键操作

3.1 镜像选 Live 还是 Installer

到官网下载页面,会看到几种版本:Installer Image、Live Boot、NetInstaller、以及针对 VMware 和 VirtualBox 的预构建镜像。这几者的差别很大,选错了会多走弯路。

Installer Image 是标准的安装镜像,适合物理机和虚拟机手动安装,我这个流程讲的就是它。Live Boot 是可以直接从 U 盘启动的体验版,也能安装,但安装过程本质上还是调用安装器,没有优势。NetInstaller 体积小,但安装全程依赖网络,网络不稳就很痛苦。预构建镜像(比如 VMware 版)是官方已经装好的虚拟机文件,双击导入就能用,默认账号密码是 kali/kali,适合只想快速体验的人,缺点是磁盘布局和配置都是固定的,不太适合当作长期环境来养。

我个人的选择是:想认真用一段时间的,一律下载 Installer Image,自己走一遍安装流程,心里踏实。

3.2 下载后一定先做完整性校验

镜像有 4G 左右,下载中断导致文件损坏是很常见的事,装到一半报"无法读取介质"就白折腾了。所以下载完先校验哈希值。官网同页面提供 SHA256 校验文件,Windows 上用 PowerShell 运行:

Get-FileHash .\kali-linux-2024.x-installer-amd64.iso -Algorithm SHA256

Linux 或 macOS 上更简单:

sha256sum kali-linux-2024.x-installer-amd64.iso

把结果和官网给的字符逐个比对,一致就放心用。这一步很多人跳过,但它是所有安装问题里最容易排查的一环——如果后面安装总是莫名失败,回来重新校验一遍往往能发现问题。

3.3 创建虚拟机时的几个开关

新建虚拟机时选"自定义(高级)"而不是"典型",这样才能完整控制各项参数。客户机操作系统选 Linux,版本选 Debian 12.x 64 位——Kali 基于 Debian,这个选项能拿到更好的兼容性。

创建过程中有几个开关值得单独说:

  • 固件类型:选 UEFI 还是 BIOS。Kali 两个都支持,但 UEFI 更现代,分区时会自动带一个 EFI 分区。我一般选 UEFI。
  • 虚拟化引擎:勾上"虚拟化 Intel VT-x/EPT",这个能让虚拟机内的嵌套虚拟化生效,后面如果你想在 Kali 里再跑虚拟机或者用某些依赖硬件加速的工具会用到。
  • 显卡:显示设置里把"加速 3D 图形"关掉。这个选项是黑屏问题的头号嫌疑犯,Kali 的默认桌面环境对它的兼容性并不总是好。
  • 声卡:可以直接移除,省资源。

磁盘类型选 SCSI 或 NVMe 都行,NVMe 性能略好,SCSI 兼容性更广。容量给 60G 起步,选"将虚拟磁盘存储为单个文件"。

4. 安装过程逐步走一遍

4.1 引导菜单与语言选择

虚拟机开机后自动从 ISO 引导,出现菜单选"Graphical Install",图形化安装器比文本模式直观得多,分区那一步尤其明显。

语言这一步有个经典的争议:选中文还是英文。图形界面选中文当然舒服,但安装完之后终端里会出现一堆方块或者乱码,某些工具的输出也会因为本地化而变形。我自己的做法是安装时选 English(US),区域选 Hong Kong 或者 Other → Asia → China 都行,键盘布局选 American English。装完之后再单独装中文字体、输入法和语言包,这样终端永远是干净的 UTF-8 环境,中文显示也不受影响。

注意:如果这一步选了中文,后面至少要手动执行sudo dpkg-reconfigure locales并把 en_US.UTF-8 设为默认,否则不少脚本会报编码错误。与其事后补,不如一开始就用英文。

4.2 磁盘分区:新手最容易翻车的地方

分区环节是安装器里唯一一个"选错了会丢数据"的步骤。对于虚拟机来说其实没什么风险,但养成好习惯总是对的。安装器会提供四种方案:使用整个磁盘、使用整个磁盘并加密、使用最大的连续空闲空间、手动。

虚拟机里直接选"使用整个磁盘",然后选"将所有文件放在同一个分区中"就够了,简单粗暴。但如果你想顺便学点东西,手动分区也不难,下面是我常用的方案(按 60G 磁盘算):

挂载点建议大小文件系统用途说明
EFI 分区512MFAT32UEFI 引导必需
/boot1Gext4内核和引导文件,独立出来便于恢复
swap2 到 4Gswap内存不够时的缓冲,也支持休眠
/30Gext4系统和软件包
/home剩余空间ext4个人数据和配置文件

把 /home 单独挂载的最大好处是:将来重装系统时,只要不格式化 /home,你的配置文件、脚本、文档全都还在。这个习惯我从第一次重装系统丢了半个月的笔记之后就一直保持了。

如果选了加密磁盘(LUKS),每次开机都要输一遍解密密码,安全性高但麻烦。虚拟机里我个人不加密,因为整个虚拟机文件本身就在宿主的加密盘里。

4.3 软件包选择与用户设置

分区之后安装器会问"要安装哪些软件"。列表里是一堆桌面环境和工具集合的勾选项。如果你没有特别偏好,直接用默认勾选(一般是 Xfce 桌面加上标准系统工具)就好。想要更轻量的可以把 GNOME 换成 Xfce,想要更炫的可以选 KDE Plasma,但要注意 KDE 在虚拟机里对显存要求高一些,3D 加速没关的话容易花屏。

列表里有个"top10"选项,是一批常用的安全工具子集。默认包集合里已经包含了大部分工具,装完之后还可以随时用apt install kali-linux-large之类的元包补齐,所以这一步不用纠结,选默认即可。

接下来设置主机名、域名(可以留空)、用户名和密码。密码别设太简单,Kali 默认允许 root 登录,弱密码在桥接网络下是个隐患。用户名建议用小写字母,避免某些工具对特殊字符处理不当。

4.4 GRUB 安装到哪

最后一步会问"是否将 GRUB 引导程序安装到主引导记录"。虚拟机里选"是",目标设备选 /dev/sda(或者对应的磁盘名)。如果你是多系统环境,这里要选对磁盘,选错了会把原来的 Windows 引导覆盖掉。真出了这种事也不是没救,用 Windows 安装盘修复引导就行,但过程很折腾,所以务必看清楚设备名再点确认。

安装过程大概 5 到 15 分钟,取决于机器性能和源的速度。结束后会自动重启,记得把 ISO 从虚拟光驱里断开,否则又会从安装介质启动。

5. 装完第一件事:换源、更新与中文环境

5.1 源配置与更新策略

Kali 默认用的是官方源,位于海外,国内访问速度经常感人。换源是装完之后第一个该做的操作。源的配置文件在/etc/apt/sources.list,编辑前先备份:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo nano /etc/apt/sources.list

内容替换成国内的镜像地址,格式大致是这样(以清华源为例):

deb https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free non-free-firmware contrib

注意 Kali 从 2022 年开始就只有 kali-rolling 这一个滚动分支了,网上很多老教程还写着 kali-dev、kali-last-snapshot 之类的名字,照着抄会报错。另外 Kali 2024 之后的版本对 non-free-firmware 的依赖变多了,这一项别漏掉,否则某些无线网卡驱动装不上。

换完之后执行:

sudo apt update sudo apt full-upgrade -y

为什么用full-upgrade而不是upgrade?因为 Kali 是滚动发行版,包之间的依赖关系变化比较频繁,upgrade遇到需要卸载或替换包的情况会直接放弃,而full-upgrade会把整个依赖链处理掉。代价是有时候会一次更新几百个包,多花点时间,但这是滚动版的常态。

提示:大规模更新前先打个快照。滚动发行版偶尔会出现某个包更新后依赖被破坏的情况,有快照就能一键回退,比手动修依赖省事得多。

5.2 中文显示与输入法

前面装系统选了英文,现在补中文支持。字体和语言包:

sudo apt install -y fonts-wqy-microhei fonts-wqy-zenhei sudo dpkg-reconfigure locales

在列表里勾上zh_CN.UTF-8 UTF-8,然后把默认 locale 保持为en_US.UTF-8。这样系统提示和日志还是英文,但中文文件名的显示不会出问题。

输入法推荐 fcitx5 加拼音,比 fcitx4 稳定不少:

sudo apt install -y fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk3 fcitx5-frontend-qt5

装完在~/.pam_environment或者系统环境变量里加上:

GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx

重启会话后在 fcitx5 配置里添加 Pinyin 输入法,用 Ctrl+Space 切换。如果某些程序里打不出中文,八成是 QT_IM_MODULE 没生效,检查一下变量是不是写在了正确的文件里——Xfce 里我一般直接写到/etc/environment,简单直接。

5.3 快照与克隆:给自己的后悔药

装完基础系统、配好源和输入法之后,立刻在 VMware 里打个快照,名字叫"clean-base"。这一步花不到十秒,但后面能救你无数次。之后每次做大动作之前再打一个快照,养成习惯之后你会发现自己对系统的折腾心态会完全不一样——敢试,因为知道能退回来。

克隆功能也值得用起来。虚拟机菜单里选管理 → 克隆,选"创建完整克隆",就能复制出一份完全独立的副本。做多机实验、搭隔离环境的时候特别好用,比重新装一遍快得多。

6. 常用环境的搭建路径

6.1 Python 环境与包管理

Kali 自带 Python 3,但千万别直接往系统 Python 里pip install。Kali 从 2023 年起就启用了 PEP 668 的外部管理保护,直接 pip 安装会报externally-managed-environment错误。正确做法是用虚拟环境:

python3 -m venv ~/venvs/work source ~/venvs/work/bin/activate pip install requests

需要多个项目隔离的话,每个项目一个 venv 目录。如果某个工具本身就是个命令行程序,更推荐用 pipx:

sudo apt install -y pipx pipx ensurepath pipx install httpie

pipx 会为每个工具单独建一个虚拟环境并把可执行文件链接到 PATH 里,互不干扰,卸载的时候一条命令搞定,是我目前最推荐的命令行工具安装方式。

6.2 数据库:MySQL 与 PostgreSQL

Kali 仓库里的mysql-server实际上是 MariaDB 的替代包。装的时候用:

sudo apt install -y default-mysql-server default-mysql-client sudo systemctl enable --now mysql sudo mysql_secure_installation

初始化之后用sudo mysql可以直接免密登录(走的是 unix_socket 认证),要改成密码认证的话执行:

ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('你的密码'); FLUSH PRIVILEGES;

PostgreSQL 也是常用的,装完之后它不会自动启动,这是很多人遇到的"postgresql 启动失败"的真相——不是失败,是默认被禁用了:

sudo apt install -y postgresql sudo systemctl enable --now postgresql sudo -u postgres psql

如果systemctl status postgresql显示 active 但端口连不上,检查一下是不是多个版本的主集群冲突了。Kali 升级时偶尔会装上不同大版本的 postgresql,用pg_lsclusters看一下有几个集群,把不用的那个pg_dropcluster删掉再重启服务即可。

6.3 Docker 与本地练习环境

Docker 是搭本地环境最省事的方式。用官方脚本装最新版:

curl -fsSL https://get.docker.com | sudo sh sudo systemctl enable --now docker sudo usermod -aG docker $USER

最后一行把当前用户加入 docker 组,重新登录之后就不用每次 sudo 了。如果拉镜像慢,在/etc/docker/daemon.json里配置一个加速地址:

{ "registry-mirrors": ["https://你的加速地址"] }

改完sudo systemctl restart docker生效。

搭本地练习环境的时候,DVWA 是个很好的起点,跑起来只要一行:

docker run -d -p 8080:80 vulnerables/web-dvwa

浏览器打开http://localhost:8080,默认账号 admin、密码 password,进去之后先点 Setup 初始化数据库。这就是个纯本地的练习靶场,配合前面装的数据库环境,能覆盖不少 SQL 注入防护相关的学习场景。想更省事的话,docker compose写个 yaml 把数据库和 web 一起拉起来,环境更完整。

6.4 Git、编辑器与开发工具链

Git 装完先配置身份:

sudo apt install -y git git config --global user.name "你的名字" git config --global user.email "你的邮箱" git config --global init.defaultBranch main

SSH 密钥也顺手生成:

ssh-keygen -t ed25519 -C "你的邮箱"

Ed25519 比老的 RSA 更短更安全,现在主流平台都支持。

编辑器方面,VSCode 用官方 deb 包安装体验最好:

sudo apt install -y wget gpg wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg

后面再添加仓库、更新、安装,流程和 Ubuntu 上一样。如果你更在意轻量,直接sudo apt install -y code-oss也行,功能略少但够用。

Java 工具链在某些场景下需要,比如给 APK 签名会用到 jarsigner,它就在 JDK 里:

sudo apt install -y openjdk-17-jdk jarsigner -help

JDK 装好之后 jarsigner、keytool 这些工具就都能用了。

6.5 虚拟机体验优化:剪贴板、共享目录、分辨率

装完系统之后很多人发现:分辨率只有一种、剪贴板和宿主机不通、拖拽文件不行。这是缺了 VMware 工具包。Kali 上不需要装官方的 VMware Tools,用开源实现就行:

sudo apt install -y open-vm-tools-desktop

装完重启,分辨率会自动适配窗口大小,复制粘贴和拖拽也能用了。如果还是不生效,检查一下虚拟机的显示设置里"加速 3D 图形"是不是还开着——这个选项经常和 open-vm-tools 打架。

共享目录用 VMware 的共享文件夹功能配置,然后在 Kali 里挂载。命令行挂载的话:

sudo mkdir -p /mnt/hgfs/share sudo vmhgfs-fuse .host:/ /mnt/hgfs/share -o allow_other

想开机自动挂载就写进/etc/fstab,加一行:

.host:/ /mnt/hgfs/share fuse.vmhgfs-fuse allow_other,defaults 0 0

SSH 服务建议也打开,方便用宿主机终端连进去操作,比在虚拟机窗口里敲命令舒服:

sudo systemctl enable --now ssh

7. 故障排查实录与避坑清单

7.1 安装阶段的问题

装系统时最常见的三个故障,基本都能对应到具体原因。黑屏或者卡在引导界面不动,优先检查 3D 加速有没有关掉,其次是内存给得太少(2G 以下某些桌面环境会撑不住)。报"检测不到安装介质",多半是 ISO 没校验或者虚拟光驱挂载有问题。安装过程中反复失败在同一进度,用另一台机器重新下载镜像再校验一次,比在本地瞎折腾快得多。

还有个隐蔽的坑:宿主机开了 Hyper-V 的情况下,VMware 性能会大幅下降甚至启动失败。Windows 上如果之前装过 Docker Desktop 或者 WSL2,Hyper-V 很可能是开着的。解决方法是关掉 Hyper-V 相关功能,或者改用 VMware 的兼容模式。这个问题不常见但一旦碰上很难找原因,症状是虚拟机启动慢得像幻灯片。

7.2 换源之后的典型报错

换源之后最常见的报错是 GPG 签名错误和 Release 文件过期。前者通常是因为镜像站同步还没完成,等几个小时再试,或者换一个镜像站。后者是宿主机时间不准导致的,Kali 在虚拟机里时间容易漂,执行一下:

sudo apt install -y ntpsec sudo systemctl enable --now ntpsec

时间同步上之后,各种证书和签名相关的怪问题会少很多。

如果apt update报 404,检查源地址里的分支名是不是写错了。Kali 只有 kali-rolling,写成 kali-last-snapshot 或者 stable 都会 404。这是老教程最常误导人的地方。

7.3 使用阶段的常见问题速查

下面这张表是我这些年被问得最多的几类问题,直接对照排查:

现象可能原因处理方式
分辨率只有一种、无法全屏缺 open-vm-tools安装 open-vm-tools-desktop
剪贴板不通、拖拽无效同上,或 3D 加速冲突关闭 3D 加速并重启
PostgreSQL 连不上服务默认未启用或集群冲突pg_lsclusters 检查后清理
pip 安装报 externally-managedPEP 668 保护用 venv 或 pipx
终端中文显示成方块缺中文字体安装 wqy 系列字体
输入法在某些程序里失效环境变量未生效检查 GTK/QT_IM_MODULE
虚拟机时间总是不对未启用时间同步装 ntpsec 并开机自启
共享目录挂载报权限错误fuse 参数问题加 allow_other 参数

排查这类问题的通用思路是:先看日志。系统层面用journalctl -xe,服务层面用systemctl status 服务名,应用层面看它自己的日志文件。很多人遇到问题第一反应是搜索,但其实日志里往往已经把原因写得很清楚了,只是没去看。

提示:journalctl -xe加上-u 服务名可以只看某个服务的日志,比翻一大堆无关信息效率高得多。养成遇事看日志的习惯,比记住一百个报错信息有用。

7.4 几个我踩过的坑

第一个坑是快照打得太晚。我早期装完系统先花两小时配各种工具,配到一半系统崩了,只能从头再来。后来改成装完基础系统、换完源就立刻打快照,之后每完成一个独立模块再打一个,回退粒度更细。

第二个坑是磁盘空间不知不觉被吃满。Kali 的包缓存默认放在/var/cache/apt/archives,几十次更新下来能占好几个 G。定期清理:

sudo apt clean sudo apt autoremove --purge

Docker 的镜像和容器也是空间杀手,docker system prune -a一次性清干净,但注意它会删掉所有没在运行的镜像,执行前确认一下。

第三个坑是直接改系统 Python。前面提过一次,但值得再强调:Kali 的很多系统工具依赖特定的 Python 版本和包,手动往系统环境里装东西很容易把某个工具搞崩。虚拟环境不是麻烦,是保险。

第四个坑是忽视主机名和 hosts。某些本地服务启动时会解析主机名,如果/etc/hosts里没有对应条目,启动会卡住几秒甚至直接失败。装完系统后确认一下/etc/hosts里有127.0.1.1 你的主机名这一行,能省掉一些莫名其妙的超时问题。

8. 环境养起来之后的日常维护

系统装好只是开始,后面怎么把它养得顺手才是重点。我的习惯是每周花十分钟做三件事:更新一次系统、清理一次缓存、看一眼磁盘占用。命令就三条:

sudo apt update && sudo apt full-upgrade -y sudo apt autoremove --purge -y && sudo apt clean df -h && du -sh /var/cache/apt/archives

滚动发行版更新频繁,放着不管一个月再更新,容易一次撞上几百个包的依赖变化,出问题的概率高得多。小步快跑比攒着一起搞省心。

虚拟机的磁盘也会随着使用不断膨胀,即使删了文件,宿主上的 vmdk 文件也不会自动缩小。定期用 VMware 自带的"压缩"功能回收空间:虚拟机设置里选硬盘,点压缩。或者在虚拟机里把空闲空间清零(Linux 上用zerofree),再压缩效果更好。这个操作我一般一两个月做一次,能回收出不少空间。

最后说一个心态上的体会。Kali 这类滚动发行版,本质上是给愿意折腾的人用的。它不稳定不是缺陷,是特性——新工具、新内核、新特性总是第一时间到位,代价就是偶尔要自己动手修修补补。遇到问题别急着格式化重装,先花十分钟看看日志,往往一个参数就解决了。我这些年修过的系统问题,比重新安装的次数多得多,而每次修完之后对系统的理解都深一层。这套环境真正值钱的地方,不在于装好那一刻,而在于你把它用坏又修好的那些过程。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询