VMware + Kali 网络不通?一文搞懂NAT 模式原理与排错
前言
刚装好 Kali,准备 apt update 装工具,结果报错?ping 8.8.8.8 显示 Destination Host Unreachable?浏览器打不开网页?
别急着重装系统,90% 是 VMware NAT 网络配置问题。本文用大白话讲清楚原理,并给出完整排错流程。
一、先搞懂 VMware NAT 的网络结构
想象你住在一栋宿舍楼(VMware 创建的虚拟网络):
表格
| 角色 | 类比 | IP 地址 |
|---|---|---|
| Kali 虚拟机 | 你的宿舍房间 | 192.168.184.10 |
| VMnet8 虚拟网卡 | 宿舍楼本身 | 192.168.184.0 这个网段 |
| 网关(.2) | 宿舍门卫 | 192.168.184.2 |
| VMware 适配器(.1) | 宿主机在宿舍楼的办公室 | 192.168.184.1 |
| 百度/谷歌 | 校外世界 | 14.215.x.x 等 |
关键点:所有设备必须在 同一栋楼(同一网段)才能直接敲门,要出校门必须找门卫(网关)。
二、为什么必须"同网段"?
一句话解释
VMnet8 本质上是个虚拟交换机,交换机不认识路,只会喊广播。如果你和网关不在同一层,交换机找不到人。
错误场景演示
假设 VMware 自动分配了 192.168.184.0 网段,但你给 Kali 配了老地址:
bash
复制
# Kali 配置(错误的)
address 192.168.3.10 # 还在用之前的网段!
gateway 192.168.3.2
数据包走向:
plain
复制
Kali: "我要找 192.168.3.2 这个网关"
VMnet8 交换机: "192.168.3.x?我这栋楼是 192.168.184.x,不认识!"
结果: Destination Host Unreachable(找不到路)
正确配置
bash
复制
# /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.184.10 # 和 VMnet8 同网段!
netmask 255.255.255.0
gateway 192.168.184.2 # 网关必须是 .2
dns-nameservers 223.5.5.5 # 公共 DNS,别用自动的
三、完整排错流程(收藏备用)
Step 1:确认 VMware 子网
Windows 宿主机操作:
plain
复制
编辑 → 虚拟网络编辑器 → 更改设置 → 选中 VMnet8 (NAT 模式)
看 子网 IP 是多少,比如 192.168.184.0
💡 点"还原默认设置"后,这个地址会变!每次还原都要重新配 Kali!
Step 2:配置 Kali 静态 IP
bash
复制
sudo vim /etc/network/interfaces
必须和 Step 1 看到的网段一致:
plain
复制
address 192.168.184.10 # 倒数第二位必须一致!
gateway 192.168.184.2 # 固定是 .2
Step 3:重启网络并验证
bash
复制
sudo systemctl restart networking
# 验证三部曲
ip addr show eth0 # 看 IP 对不对
ip route show # 看有没有 default via 192.168.x.2
ping 192.168.184.2 # ping 网关,必须通!
Step 4:解决 DNS 问题
能 ping 通网关,但 ping www.baidu.com 报错?
原因:/etc/resolv.conf 自动生成的 DNS 和当前网段不匹配。
修复:
bash
复制
sudo tee /etc/resolv.conf << 'EOF'
nameserver 223.5.5.5
nameserver 223.6.6.6
nameserver 8.8.8.8
EOF
防止被覆盖(NetworkManager 会捣乱):
bash
复制
sudo tee /etc/NetworkManager/NetworkManager.conf << 'EOF'
[main]
dns=none
EOF
sudo systemctl restart NetworkManager
Step 5:最终测试
bash
复制
ping www.baidu.com # 通了就完事!
sudo apt update # 可以装 Docker 了
四、常见坑汇总
表格
| 坑 | 现象 | 解决 |
|---|---|---|
| 还原 VMware 默认设置 | 子网变了,Kali 连不上 | 重新配 /etc/network/interfaces 网段 |
iface 拼成 ifcae |
networking 服务启动失败 | 检查拼写,严格缩进 |
| DNS 用自动生成的 | 能 ping IP,不能 ping 域名 | 手动写公共 DNS 到 resolv.conf |
| 网关写成 .1 | ping 网关不通 | 必须是 .2,.1 是 VMware 适配器 |
| NetworkManager 覆盖 DNS | 重启后 DNS 又失效 | 配置 dns=none |
五、核心口诀(背下来)
交换机内同网段,要出网找网关,网关固定是 .2,DNS 别用自动的
六、我的环境参考
-
宿主机:Windows 11 + VMware Workstation 17
-
Kali:2026.1 滚动更新版
-
网络模式:NAT(VMnet8)
-
最终配置:
-
IP:
192.168.184.10/24 -
网关:
192.168.184.2 -
DNS:
223.5.5.5
-
成功部署 Docker + Nessus + AWVS 扫描环境。
结语
VMware NAT 网络问题本质是 IP 规划问题,不是 Kali 系统问题。理解"虚拟交换机 + NAT 网关"的模型,5 分钟就能排错。
如果还有问题,按本文 Step 1-5 检查,99% 能解决。
参考命令速查表:
bash
复制
# 查看 IP
ip addr show eth0
# 查看路由
ip route show
# 查看 DNS
cat /etc/resolv.conf
# 重启网络
sudo systemctl restart networking
# 测试网络层次
ping 192.168.x.2 # 测网关(二层)
ping 223.5.5.5 # 测外网 IP(三层,绕过 DNS)
ping www.baidu.com # 测完整网络(含 DNS)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)