很多人第一次接触Kali Linux,下意识以为装上就能直奔黑客大片,结果卡在第一步的安装上:ISO下载不对、虚拟机配置踩雷、装完apt源连不上,折腾一整天才看到桌面。这篇保姆级教程不讲玄学,就老老实实走一遍Kali在VMware里的完整安装流程,从选镜像、建虚拟机、分区装系统,到换国内源、汉化、开SSH、搭DVWA靶场,每一步的选项我都告诉你为什么这么选,以及哪些地方我踩过坑。适合刚开始学Kali的人照着一步步做,也适合装过但被源和输入法劝退的人查漏补缺。
1. 装前定夺:VMware、镜像与硬件要求这三件事先拍板
1.1 为什么我把VMware当作首选,而不是VirtualBox或双系统
第一次装Kali,最常听说的方案有三个:实体机双系统、虚拟机、WSL。实体机需要在硬盘上重新划分空间,一旦引导坏了,修复起来对新手很不友好;WSL里的Kali更像一个命令行环境,桌面和工具链的表现和原生差别不小。所以我始终建议虚拟机起步,而虚拟机工具里我首选VMware Workstation Pro。
选择VMware不是因为VirtualBox不能用,而是实际对比下来,VMware对硬件虚拟化的调度更顺滑,磁盘性能和USB直通更稳定,桌面环境和Kali的Xfce配合也少一些怪问题。最关键的是,新版本VMware开始提供个人免费授权,不需要到处找密钥,下载安装门槛低了很多。VirtualBox的优点是开源免费、体积小、老电脑跑起来更轻,如果你机器配置不高,也可以拿它起步,但遇到鼠标卡顿、剪贴板不同步的概率会高一些,排错成本反而上去了。
1.2 镜像选ISO还是Ova,live版是不是陷阱
Kali官网提供两种主流包:一种是Ova格式的预建虚拟机,可以在VMware里直接导入;另一种是Iso安装镜像,需要自己走完整安装向导。如果你是刚入门,又不想折腾特殊分区,直接用Iso走安装向导更合适,因为你能一步步看到系统装了什么、分区怎么分,装完心里有底。Ova适合想“三分钟开机”的老手,但它的默认配置是按官方模板给的,磁盘大小、用户名、内存都要自己再调,导入后还是得花时间改配置,省不了多少事。
下载渠道优先选官网的镜像列表,或者国内大学的镜像站。下载时注意找带kali-2026.1-installer-amd64字样的Iso,不要错下成live版。live版镜像主要用于先体验系统,很多人进桌面后也会通过安装器装到硬盘,但对新手来说多了一道步骤,没必要一上来就走这条路。还有一个小细节:Kali的Iso文件名里会有kali-linux-2026.1-installer-amd64.iso这类格式,看到“installer”才是完整离线安装包。
1.3 别忽略的硬件门槛:内存、CPU和VT-x,还有Windows的VBS
Kali默认的Xfce桌面比GNOME轻不少,但这不意味着低配电脑随便跑。4GB内存装完系统只够日常使用,一旦开浏览器、终端和容器,马上会卡起。我的经验是宿主机器有8GB以上,虚拟机里给到4GB比较舒服;16GB内存的机器可以分6GB,跑工具链就不会因为内存不足被莫名中断。
CPU方面,三代i5以上基本无压力,虚拟机里分配两核就够了。真正需要提前确认的是主板的VT-x或AMD-V虚拟化功能是否打开。VMware启动虚拟机会直接提示“此主机不支持虚拟化”,排查到最后往往是BIOS里没开,或者Windows的“内核隔离”VBS功能在抢占虚拟化资源。如果你用的是Windows 11,建议先检查“安全中心—设备安全性—内核隔离”,把“内存完整性”关掉再跑VMware,否则即使BIOS开了VT-x,性能也会被拖慢。
提示:在虚拟机工具里导入Ova虽然快,但官方模板通常只留20GB动态磁盘,跑一次apt full-upgrade和缓存更新就可能爆盘,所以用Ova之前先规划扩容。
2. 新建虚拟机时最该盯紧的参数:内存、磁盘、网络与虚拟化开关
2.1 内存和CPU,给少了卡给多了更卡
新建虚拟机时,向导会让你设置内存大小。这个问题没有标准答案,要倒着算。宿主机器16GB,分给虚拟机4GB;宿主机器8GB,分3GB就差不多了。Kali平时开着浏览器、终端和Burp Suite,4GB刚好够,但如果后面要在里面跑Docker容器或者多个扫描工具,内存占用会接近8GB。配内存的时候也别把宿主榨干,宿主系统一旦开始用页面文件,整个虚拟机会变得非常难受。
CPU设置同样有讲究。VMware向导里“处理器数量”和“每个处理器的内核数量”很容易让人迷惑。我一般选“处理器数量1,每个处理器内核数量2”,或者4,不要选多个处理器插槽。原因很简单:VMware模拟多路主板的开销大于收益,单路多核在虚拟化环境里效率更高。磁盘选择“将虚拟磁盘存储为单个文件”,以后复制虚拟机或者迁移会方便;磁盘大小可以先给60GB,动态分配一般不会立刻吃掉宿主磁盘。
2.2 网络适配器先选NAT,别急着切桥接
这是新手最不容易注意的一步。VMware新建向导里的网络类型默认是NAT,很多人会改成“桥接模式”,觉得这样Kali才能拿到真实IP,更像实战环境。但桥接意味着Kali会以独立设备的身份出现在局域网里,路由器上能看到它,其他设备也能直接访问它跑出来的服务。刚学阶段放在NAT里面,Kali能正常访问外网,又不暴露自己,后期需要做联网设备的实验再切成桥接也不迟。
NAT模式下,Kali的IP由VMware的虚拟DHCP分配,可以联网可以装软件,对学习完全够用。快照也建议打,每走完一个里程碑,比如系统装好、换源完成、靶场搭好,就在VMware里打一个快照。快照的好处是后面把系统折腾坏,几分钟就能回到可用状态,不用重装一遍。
2.3 固件类型与虚拟化引擎,这两个高级选项有讲究
在创建向导的后半段会出现“固件类型”选项,默认BIOS也不是不行,但我推荐选UEFI。新版Kali的安装器、引导和磁盘分区工具对UEFI支持已经很成熟,后续扩展分区或调整引导更顺手。如果选BIOS,老规矩也能装,只是在UEFI引导和Windows共存等问题上会有额外限制,没必要给自己埋雷。
还要注意“虚拟化Intel VT-x/AMD-V”和“虚拟化CPU性能计数器”这两个选项。它们直接影响虚拟机内部的嵌套虚拟化能力,勾上之后在Kali里用Docker、模拟器或者再套一层虚拟机都更顺。但这里有个坑:如果宿主的Windows开了Hyper-V或VBS,即使这里勾了也不一定生效,反而出现性能下降。所以前面提到的关闭内核隔离,是这一步能不能生效的前提。
2.4 光驱和ISO的善后:装完系统请断开镜像
安装向导里默认把光盘设备设为“已连接”,这没问题,但很多人装完系统后忘了把连接状态改掉。结果每次启动虚拟机,它都会再从安装镜像引导一次,明明装了系统却不断进入安装画面,或者卡在CD-ROM检测上。
装完系统后,在VMware的虚拟机设置里,把光驱的“启动时连接”取消勾选,或者把ISO镜像从光驱里移除。这个小操作只要三秒钟,却能省掉后面很多莫名其妙的困惑。如果你后面还要用物理U盘往虚拟机里传东西,再单独挂载USB控制器就行,两件事不冲突。
3. 安装向导逐项拆解:引导界面、分区方案与镜像源配置
3.1 引导菜单上几项分别代表什么
ISO引导起来后会看到带Kali图标的GRUB菜单,常见的几项有Graphical install、Install、Live System、Advanced options。第一次建议直接选Graphical install,也就是图形化安装。
这里解释一下为什么不要选Live System:Live System会进入一个不写盘的系统,主要用于应急或者体验,它不是把Kali安装到硬盘上。如果通过Live桌面上再跑安装器,逻辑是绕一圈回来,多花时间也没好处。Advanced options里有Expert install,可以全手工控制每个细节,但选项太多,很容易点晕,不建议新手碰。
3.2 账户密码设置与网络抓取
安装向导会依次问语言、地区、键盘布局,然后是主机名、域名、用户名和密码。主机名保持默认的kali就好,不用取复杂名字。密码建议大小写字母加数字组合,因为默认账户在sudo组里,权限非常大,密码太弱等于把系统大门敞开。
网络配置阶段,如果你的虚拟机用的是NAT,安装器通常会自动通过DHCP获得地址。如果它提示“无法自动配置网络”,也不用慌,直接跳过,等系统装完后再用NetworkManager手动连接就行,这不会影响安装进度。这里真正要注意的是,安装过程会问“是否使用网络镜像源”,后面单独说,第一次建议不选。
3.3 分区方案,简单是最大的美德
到了“分区方法”这一步,很多人想手动分一个看起来很专业的布局,结果把自己绕进去。我的建议是选“使用整个磁盘”,然后按官方推荐“将所有文件放在一个分区”。这是最省心的方案,因为Kali的工具和依赖都集中在根分区,独立的/home分区反而可能因为空间划分不均,在装大工具时爆掉。
如果你是非要手动分区不可,也记住一个原则:只把/boot单独分出去,其余全部给根分区。这样引导分区独立,后续更换内核也有余量。分区前一定先确认目标盘是虚拟机的虚拟磁盘,而不是U盘或宿主机硬盘,选错盘会带来灾难性后果。
3.4 安装器里的网络镜像源,第一次选No
安装过程中,向导会问“是否使用网络镜像源”,很多人直接选了Yes,结果就是官方源下载慢,安装器卡在获取软件包那一步,过一会儿报错。第一次安装时我建议选No。
原因很直接:安装器如果选了官方镜像源,它会先把软件源列表更新一遍,这一步在国内网络环境下非常慢,还容易超时;而且它写入系统的源配置是官方海外源,装完还是要改成国内源。不如安装阶段保持精简,等系统进桌面后,再一次性把源改成清华或中科大的,速度差别会很直观。
4. 进系统第一件事:sources.list换国内源的完整流程
4.1 为什么官方源慢,又为什么不能把Debian的源照搬过来
Kali的apt默认使用官方软件源,这些服务器在海外,下载速度不稳定,执行apt update的时候经常卡住、连接失败或者哈希校验错误。换国内源的本质很简单:把“从哪里下载软件包”的地址改成国内同步镜像,解析和下载速度都会快很多。
但有一个坑必须提醒:Kali虽然是Debian下游,但它是一个滚动发行版,官方源组件名统一叫kali-rolling,千万不要写成buster、bookworm这类Debian的版本代号,否则会拉错软件包基线,轻则更新不了,重则把依赖关系搞坏,系统直接无法开机。这条规则适用于所有Kali换源场景,网上有些过时的教程会让人写Debian源,照着做的人基本都翻过车。
4.2 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 contrib non-free non-free-firmware deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free non-free-firmware保存退出后执行更新:
sudo apt update && sudo apt full-upgrade这里要特别解释一下为什么要用full-upgrade而不是普通的upgrade。Kali作为滚动发行版,软件包依赖变化频繁,apt upgrade有时候会提示某些包需要“被保留”,因为它们涉及现有依赖关系的调整;full-upgrade会主动处理这些依赖变化,把内核和基础组件一起更新到位。代价是耗时长,可能在十分钟以上,而且中途如果强制关闭虚拟机,dpkg状态有可能损坏。真遇到损坏,先执行sudo dpkg --configure -a修复,再重新更新。
换源时还有一个常见误区:只改主目录文件,忘了检查/etc/apt/sources.list.d/目录。有些Kali变体或用户之前折腾过第三方源,会在里面留下额外条目,导致同样的软件包来源重复,更新时出现奇怪的冲突。顺手把那个目录下的无用文件也检查一遍。
4.3 apt full-upgrade之后如何验证源是否生效
换源成功与否,可以从两个地方判断。第一,apt update结束时能看到大量“Hit”或“Get”,指向的地址是tuna或你选择的镜像,而不是卡在Connecting上。第二,安装一个本地没有的小工具验证一下:
sudo apt install htophtop装得上,说明源工作正常。如果始终出现403或忽略状态,多半是路径写错或者组件名不匹配,回头对照我的配置逐字检查,尤其注意kali-rolling后面那几个component的单词拼写。
提示:
full-upgrade改动的文件很多,建议升级前打一个快照。万一升级中断或出现依赖问题,可以直接回滚,省掉一晚上的排查时间。
5. 汉化与中文输入法:字体、locale与fcitx5的搭配
5.1 中文字体与locale:先把“口”字关解决
刚装好的Kali默认全英文界面,中文网页和文档会显示成方框。先安装中文字体:
sudo apt install fonts-wqy-microhei fonts-wqy-zenhei然后把locale加上中文编码:
sudo dpkg-reconfigure locales在列表中勾选zh_CN.UTF-8 UTF-8,确认后重启或注销。此时系统菜单可能还是英文,因为桌面语言取决于桌面环境的Language设置。在Xfce里打开应用程序菜单,进入Settings里的Region & Language,把Language改成简体中文,重启后就能看到中文菜单了。
这里要说明一个很多人误会的点:改了locale不代表中文输入法就能用,字体解决的是显示问题,输入法框架解决的是输入问题,两码事。先确认中文能正常显示,再去装输入法,顺序不要反过来。
5.2 fcitx5拼音,比搜狗少掉的麻烦
中文输入法这个问题,我太有发言权了。很多人第一次装中文输入法就想上搜狗,结果装上之后没法用,来回折腾几个小时。原因在于搜狗拼音的Linux版本依赖的是fcitx4框架,而新版Kali桌面环境更适配fcitx5;强行装上去,经常出现候选词框不跟随、无法切换、状态栏消失等问题。
我的建议是先用fcitx5自带的拼音:
sudo apt install fcitx5 fcitx5-chinese-addons装完后设置环境变量,保证每次登录时输入法框架能被正确加载。在用户目录下新建或编辑~/.xprofile:
export QT_IM_MODULE=fcitx export GTK_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx注销重新登录后,打开fcitx5的配置工具,把“拼音”加入输入法列表,按Ctrl+Space就能切换。这个方案最大的好处是框架和输入法同源,不会出现兼容性问题,日常打中文、英文混输都很顺手。
5.3 备用方案:Google拼音和搜狗的兼容性真相
如果fcitx5自带的拼音用不习惯,可以考虑Google拼音,它也是fcitx5体系内的模块:
sudo apt install fcitx5-googlepinyin这个方案不会破坏现有框架,词汇量也够用,对学习场景来说完全够。至于搜狗输入法,倒不是一定装不上,而是需要处理fcitx4和fcitx5的共存问题,这已经属于折腾范畴了。我的态度很明确:如果是第一次用Kali,先别碰搜狗,把时间花在该花的地方;等系统玩熟了,还想再试,那时候再折腾也不迟。
6. SSH与open-vm-tools:让Kali在日常使用中顺手起来
6.1 open-vm-tools,别再去装老版VMware Tools
说到VMware和宿主机之间的剪贴板共享、拖拽文件、自动分辨率,很多人还在找老的VMware Tools安装包。这套流程早就过时了,Kali官方仓库里有open-vm-tools,装好之后这些集成功能就全有了:
sudo apt install open-vm-tools open-vm-tools-desktop装完重启虚拟机,宿主和Kali之间就能直接复制文本、拖文件,窗口分辨率也会随窗口拖动自动调整。这里提示一下:剪贴板同步偶尔会失效,重新执行systemctl restart open-vm-tools往往能恢复。不要再去网上找所谓VMware Tools老版本安装包,装了反而和内核不匹配,带来一堆额外问题。
6.2 SSH服务从这里开始:systemctl、sshd_config和防火墙
Kali默认安装了openssh-server,但服务并没有启动。一台好的防御型系统默认不应该开放远程登录,所以这个默认行为没问题;但你在VMware里学习时,用SSH连进来确实比在虚拟机窗口里敲命令舒服得多,尤其要复制大段命令的时候。
开启命令:
sudo systemctl enable --now ssh sudo systemctl status ssh默认配置下,SSH只允许普通用户密码登录,root直接登录会被拒绝。这是安全基线,不建议一上来就放开root远程登录,日常用普通用户登录,再通过sudo -i切到root,操作体验是一样的。如果你确实需要root直接登录,可以改/etc/ssh/sshd_config里的PermitRootLogin为yes,然后重启SSH服务。注意改配置前先备份,出了事能还原。
改完后从宿主机终端执行ssh 用户名@虚拟机IP测试。连不上时先查虚拟机IP和宿主网络,再检查防火墙。Kali默认没开启防火墙,如果你开了ufw,记得先放行SSH端口。
6.3 固定IP的简单思路:nmcli改一处检查一处
NAT模式下,Kali默认通过DHCP获取IP,重启虚拟机后IP可能变化,SSH连接信息每次都要重新查,挺烦人。固定IP有两种思路:一是设置VMware的DHCP保留,二是在Kali里手动配置固定地址。
相对省事的是用nmcli直接改当前连接:
nmcli con show sudo nmcli con mod "Wired connection 1" ipv4.method manual ipv4.addresses 192.168.xx.xx/24 ipv4.gateway 192.168.xx.1 ipv4.dns 223.5.5.5 sudo nmcli con up "Wired connection 1"这里的IP段必须和VMware的NAT网段一致,通常VMware里默认是192.168.198.0/24或192.168.18.0/24,具体去“编辑—虚拟网络编辑器”里看一眼再写。写错网关会导致内外网都不通,排查起来很迷惑。改完用ip addr确认地址,再用ping dns.baidu.com验证外网。
7. 靶场与工具链落地:DVWA、SQLMap与jarsigner的实测笔记
7.1 Docker起DVWA:四行命令加一个持久化技巧
学Web渗透离不开靶场,DVWA是最常见的一个。在Kali里用Docker方式搭建最省事,四行命令搞定:
sudo apt install docker.io sudo systemctl enable --now docker sudo docker pull vulnerables/web-dvwa sudo docker run -d -p 8080:80 --name dvwa vulnerables/web-dvwa容器启动后,浏览器打开http://localhost:8080,用默认账号admin / password登录。先把页面底部的“Setup/Reset Database”点一遍,数据库初始化完成后就能进入漏洞模块。
这里有一个我踩过的坑:容器第一次启动后MySQL初始化需要十几秒,如果打开页面报数据库连接失败,等一会儿再刷新即可,不要急着重启容器。之后想再次启动靶场,直接执行docker start dvwa就能拉起环境,比每次在Apache和MySQL之间切来切去干净很多。如果你想让Docker和Kali一起开机自启,执行docker update --restart=unless-stopped dvwa即可。
7.2 SQLMap扫描靶场的正确姿势:cookie和--batch
很多人问“SQLMap扫描网址的格式”,其实问题不在格式,而在于如何让扫描请求通过身份校验。DVWA的SQL注入模块需要登录Cookie,直接给-u一个URL,大概率会得到“您必须登录”的提示。
正确做法是先用浏览器登录DVWA,打开F12拿到PHPSESSID和security参数:
sqlmap -u "http://127.0.0.1:8080/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=XXXX; security=low" --batch --current-db加上--batch后,SQLMap会自动选择默认的测试选项,不加的话每一步都要交互确认,很容易因为超时中断。跑通后可以继续用--tables、--dump查看表结构和数据。这里必须强调一句:这套命令只允许用在你自己搭建的靶场或者有明确授权的环境中,把SQLMap指向未授权的网站是绝对红线。
7.3 jarsigner这类工具,装对JDK就完了
热搜里“Kali安装jarsigner工具”,听起来是个独立的软件包,其实它只是JDK的一部分。Android APK签名等操作会用到它:
sudo apt install openjdk-17-jdk which jarsigner装完后用jarsigner -help能看到帮助信息。Kali里很多工具都走这个模式——它们不是一个个单独安装的命令,而是某个依赖包自带的。遇到一个小命令找不到,先想清楚它属于哪个软件包,直接用apt安装对应的依赖包才是正路,不用全网搜“最新版安装包”。
8. 装完绕不开的几个坑:时间漂移、GPG报错、剪贴板异常
8.1 Kali时间漂移,多数是虚拟时钟的锅
新装好的Kali在VMware里经常出现系统时间不准,有时提示无法校准时间。原因是虚拟机的硬件时钟依赖宿主机,而Kali默认的timesyncd在虚拟机挂起、恢复的过程中偶尔会失去同步。
解决办法是两步走。第一步确保open-vm-tools已安装,第二步在VMware的虚拟机设置里把“时间同步”选项打开,然后在Kali里执行:
sudo timedatectl set-ntp true如果还是差几分钟,可以手动对准一次:
sudo apt install ntpdate sudo ntpdate ntp.aliyun.com之后观察,时间漂移问题基本不再出现。这个坑看着小,但在做日志分析、证书验证或者和宿主机传输文件时,时间不对会突然冒出来造成误导。
8.2 换源后GPG签名报错的修复
换源是Kali新手操作里报错最频繁的一步,常见错误是“由于没有公钥,无法验证签名”或“GPG error”。这通常不是源地址的问题,而是系统缺少Kali官方签名密钥。新版Kali的推荐做法是把密钥下载到受信任目录:
wget -q -O - https://archive.kali.org/archive-key.asc | sudo tee /etc/apt/trusted.gpg.d/kali-archive-keyring.gpg sudo apt update执行完再更新,签名错误就会消失。千万不要因为一个GPG错误就绕过签名验证,跳过校验的源可能在将来引入未验证的软件包,后患远大于麻烦。
8.3 剪贴板、分辨率与拖拽失效的统一排查
剪贴板失效、屏幕分辨率不对、拖拽文件无反应,这些都指向同一个原因:open-vm-tools-desktop没装,或者服务没起来。给一个简洁的诊断顺序:
- 执行
dpkg -l | grep open-vm-tools确认两个包都已安装; - 执行
systemctl status open-vm-tools看服务是否在运行; - 都不行,就在VMware菜单里执行“重新安装VMware Tools”并选择挂载,确认没有老版本残留;
- 最后一步是重启虚拟机。
如果重启后还没有剪贴板共享,还要检查宿主机是不是开了安全软件拦截了虚拟机进程。这个概率很低,但一旦出现,按顺序排查就行,别一上来就重装系统。
8.4 手机版Kali的真相:Termux能玩,但不要当主路
顺便说一下热搜里常见的手机版Kali。本质上是Termux里跑一个proot容器,放了一个Kali的迷你根文件系统。它确实能显示Kali的界面,也能装少量工具,但性能和工具兼容性都差很远,跑不了Burp Suite这类重量级工具,也不适合作为日常学习环境。
如果你是刚接触Kali,想按这篇教程走完整流程,我建议还是老老实实用VMware,先把桌面、源、工具链这一套跑顺,再考虑其他花活。手机版可以当作新鲜体验,但不要指望它替代虚拟机。
我在实际安装中反复踩过最多的坑,集中在换源和VMware工具这两块。换源时只要少写一个组件仓库名,后面装工具就会时不时提示缺包;VMware工具的服务没起来,所有看起来是“系统问题”的剪贴板、分辨率和时间问题都会接踵而来。所以如果你只记两件事,记住这两点就够了:装完系统先改源,再装好open-vm-tools,剩下的疑难杂症多半是这两件事没做踏实引起的连锁反应。