树莓派 Zero 2W 装 Kali 是个很舒服的组合:巴掌大、自带无线、跑得动 nmap 和一堆轻量工具。但如果你在国内照着官方文档刷完镜像,插电、等五分钟、路由器后台翻一遍——很可能根本看不到这台设备。
现象
- 绿灯闪,系统在启动,但路由器 DHCP 列表里没有新设备。
- 接 HDMI 能看到登录提示,
ip a里wlan0存在,却没有 IPv4 地址。 - 手动
iwlist wlan0 scan能扫到热点,wpa_supplicant也连上了,但就是拿不到地址。 - SSH 默认没开,开了也进不去——root 密码登录被禁用。
原因
官方给 Pi 的 Kali 镜像,Boot 分区里的网络配置是按国外常见热点环境写的:监管域、接口名、DHCP 行为都做了假设。国内路由器的 2.4G 信道、认证方式、DHCP 下发逻辑和这套假设对不上,表现就是「连上了但没地址」。
另一件事是 SSH。Kali 默认 PermitRootLogin 是禁止密码登录的,而 Pi 上你又只有一个 root 账户。不提前改配置,开机后只能接键盘显示器。
所以修复分两部分:换一个按国内环境改好的 Boot 分区,再在系统分区里放开 root 登录。
准备
- 树莓派 Zero 2W + 已刷好 Kali 的 SD 卡
- 一台 Linux 电脑和读卡器(Windows 也能改 Boot 分区,但挂载 ext4 系统分区麻烦)
- 备份意识:替换分区前先把原卡整个镜像存一份
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
sudo dd if=/dev/sdX of=~/kali-sd-backup.img bs=4M status=progress
第一步:替换 Boot 分区
仓库里提供了一个改好的 Boot 分区包(核心替换文件.zip)。把 SD 卡插到电脑上,找到 FAT32 的那个分区(通常是第一个),把原内容备份后,用包里的文件覆盖。
Boot 分区是 FAT32,Windows / macOS / Linux 都能直接读写,这一步不需要额外工具。
第二步:放开 root 登录
挂载系统分区(ext4,第二个分区),编辑 /etc/ssh/sshd_config,只改一行:
PermitRootLogin yes
不需要重启 sshd,也不需要切环境。保存退出,卸载分区即可。
第三步:配置无线网络
Boot 分区里有两个文件要改。一个是 interfaces,给无线接口补上 DHCP:
auto wlan0
iface wlan0 inet dhcp
另一个是 wpa_supplicant.conf,填上你自己的热点。注意 country=CN 要写对,否则 5G 信道和发射功率会被限制:
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="你的WiFi名称"
psk="你的WiFi密码"
key_mgmt=WPA-PSK
}
验证
卸载 SD 卡,插回树莓派,通电。等一分钟左右,在路由器后台找新设备,或者从另一台机器扫一遍局域网:
nmap -sn 192.168.0.0/24
ssh root@树莓派的IP
能拿到地址、能 SSH 进去,就算成了。后面想改主机名、换静态 IP、装工具,都是常规操作。
几个坑
- 只适配 Zero 2W + Kali ARM。别的型号、别的发行版刷这个 Boot 分区会起不来,别混用。
- 接口名别照抄。README 里写的是占位名,实际用
ip a看你的无线接口叫什么,再填进interfaces。 - wpa_supplicant 的引号。SSID 或密码里有空格、特殊字符时,引号必须保留,否则解析失败但不报错。
- 先备份再动手。dd 写错盘是不可逆的,看清设备名再回车。
整个改动很小,但省下的是每次重刷镜像都要接一次显示器的麻烦。仓库地址:kali-pitail-boot-fix-kali-。