news 2026/9/17 10:41:28

Kali在VMware无法联网?从NAT到DHCP的完整排查与配置指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kali在VMware无法联网?从NAT到DHCP的完整排查与配置指南

Kali在VMware无法连接到网络,配置网络及解决办法

如果你在VMware里装了Kali Linux,大概率遇到过这个场景:系统能开机,终端也能开,但浏览器死活打不开网页,ping外网一直超时,ping网关也是“Network is unreachable”。我折腾这个问题的次数太多了,今天把排查流程、配置方法和踩过的坑一次讲清楚。这篇文章适合刚在VMware里装好Kali、对网络配置还不熟的新手,也适合遇到奇怪网络问题但不想重装系统的老手。

先说结论:VMware里Kali连不上网,问题通常不在Kali本身,而是出在三个层面——VMware的虚拟网络服务、虚拟机的网络适配器模式、Kali系统内的网卡配置。你需要按顺序排查,而不是一上来就乱敲命令。我见过很多人卡在“Kali上不了网”这个问题上,最后发现只是VMware的NAT服务没启动,或者网卡没拿到IP地址,十分钟就能搞定。

这篇博文会从一个完整的实际场景出发,带你走一遍从诊断到解决的全程,包括VMware虚拟网络编辑器怎么设置、NAT和桥接模式怎么选、Kali里用NetworkManager和命令行怎么配置IP、DNS解析失败怎么处理,以及一些不常见的坑。文章里的命令我都实测过,复制就能用。

1. 问题现象与排查思路

1.1 先搞清楚“连不上”是哪种状态

很多人一上来就说“Kali连不上网”,但“连不上”其实分好几种。我建议你先打开终端,跑几条命令,确定自己属于哪种情况,再对症下药。

第一种是Kali里连IP地址都没有。用ip addr查看网卡信息,如果你只看到lo回环接口,或者看到eth0但下面没有inet开头的IPv4地址,那说明DHCP客户端压根没从VMware虚拟网络里拿到IP。这种情况最常见,十次里有六次是它。

第二种是有IP地址,但网关不通。执行ip route看路由表,如果显示default via 192.168.x.1 dev eth0这类默认路由,再ping 192.168.x.1,如果网关不通,说明VMware的NAT服务或虚拟网卡出了问题。

第三种是网关能通,但外网不通。ping 192.168.x.1没问题,但ping 8.8.8.8超时,这通常是VMware虚拟机网络里的“仅主机模式”造成的,或者物理机本身的网络环境有限制。

第四种是最气人的:IP能ping通,但浏览器打不开网页,ping baidu.com显示“Temporary failure in name resolution”,这是DNS配置问题,不是网络不通。

先花两分钟确认你属于哪一类,后面就不用瞎折腾了。我最开始踩坑就是没搞明白就一通乱改,最后把系统配置文件都改坏了,只能重装。

1.2 整体排查顺序:从物理机到虚拟机

排查这类问题,顺序特别重要。我的习惯是从外层往内层查:先确认物理机能上网,再确认VMware的虚拟网络服务正常,然后确认虚拟机的网络适配器连接方式正确,最后才进Kali系统内调整配置。反过来操作会很难受,比如你在Kali里改了半天的静态IP,结果VMware的虚拟网络编辑器里网段都不对,等于白干。

具体来说,物理机要检查的是自己的Wi-Fi或有线网是否正常,这个通常没问题,但也要确认一下。然后打开Windows的服务管理器,看VMware相关的三个服务有没有启动,分别是“VMware NAT Service”“VMware DHCP Service”和“VMware Authorization Service”。第三个服务如果你不是以管理员身份运行VMware,经常是停着的,它负责虚拟机的权限管理,不是网络必需,但前两个直接关系到NAT网络的通断。

接着打开VMware的“编辑”菜单里的“虚拟网络编辑器”,确认VMnet8(NAT模式用的虚拟网卡)的网段、网关、DHCP设置是否正常。最后才打开Kali,用ip addrip route检查系统内网卡状态。按这个顺序查,你会发现大部分问题在第二和第三步就能定位,根本不用进系统折腾。

2. VMware虚拟网络配置核心要点

2.1 VMware三种网络模式怎么选

VMware的网络模式看起来简单,但很多人选错。虚拟网络编辑器里能看到VMnet0、VMnet1、VMnet8三个主要虚拟网络,分别对应桥接模式、仅主机模式、NAT模式。理解它们的区别是解决网络问题的前提。

桥接模式(VMnet0)相当于把你的虚拟机直接接到物理路由器上,虚拟机和物理机在同一个局域网里,有自己的独立IP,可以从路由器DHCP获取地址。这种模式的好处是虚拟机对外是“真实存在”的机器,适合要对外提供服务、要和局域网内其他机器直接通信的场景。但坏处是它依赖物理网络环境,如果物理机用的是公司网或者需要认证的Wi-Fi,虚拟机经常会拿不到IP,或者网络波动很大。

NAT模式(VMnet8)是VMware默认模式,也是我最推荐新手使用的。虚拟机通过VMware虚拟出来的一个网关(通常192.168.x.2)来访问外部网络,对外只占用物理机一个IP,物理机能上网,虚拟机就能上网。这种模式的好处是配置最简单、最稳定,不用关心物理网络环境。缺点是从局域网外部无法直接访问虚拟机,但对于做渗透测试、学习Kali的同学来说,这个缺点压根不算事。

仅主机模式(VMnet1)从名字就看得出来,它只允许虚拟机和物理机之间通信,虚拟机不能访问外网。如果你只想在Kali和Windows之间传文件、共享网络,可以用这个模式,但想联网就别选它。实际操作中,80%的“Kali连不上网”问题,就是有人把网络适配器模式改成了“仅主机模式”没有改回来。

2.2 虚拟网络编辑器与VMware服务修复

如果你的虚拟机选的是NAT模式但依然连不上网,问题多半出在VMware的虚拟网络服务上。我之前遇到过一次很诡异的情况:Kali一直提示“Network is unreachable”,查了一圈,最后发现是Windows里“VMware NAT Service”挂掉了,重新启动服务就恢复正常。检查服务的命令是在Windows命令行里输入services.msc,找到VMware开头的服务,确保“VMware NAT Service”和“VMware DHCP Service”状态都是“正在运行”,启动类型是“自动”。如果服务没在运行,右键点击选“启动”即可。

虚拟网络编辑器也经常出问题。打开VMware的“编辑”菜单,选“虚拟网络编辑器”,你会看到VMnet8的配置。这里需要注意几个点:第一,NAT模式必须勾选NAT设置,并且网段不能和你的物理局域网冲突。比如物理机在192.168.1.x网段,虚拟机的NAT网段最好用192.168.88.x或172.16.x.x这种不和物理网络冲突的网段,否则会出现奇怪的“通一半”问题。第二,DHCP设置要确保勾选“启用”,地址池要合理。第三,如果你把VMnet8删掉过,或者虚拟网络编辑器里显示异常,可以点“还原默认设置”按钮,它会自动重建VMnet1和VMnet8。这个操作不会影响你已有的虚拟机,只是重置虚拟网络配置。

有一种情况比较隐蔽:VMware的“VMware DHCP Service”启动失败,你去服务管理器里启动它,它又会自动停止。这通常是虚拟网络编辑器里的DHCP配置损坏了。解决方法是先打开“虚拟网络编辑器”,把VMnet8的“使用本地DHCP服务将IP地址分配给虚拟机”这个选项取消勾选,点击“应用”,然后再勾选回来,再点击“应用”。这个操作等于重新初始化DHCP配置,我试过很多次,管用。

2.3 网络适配器检查与MAC地址问题

在虚拟机设置里,“网络适配器”选项也值得单独看一下。右键虚拟机,点“设置”,在“硬件”选项卡里选中“网络适配器”,右侧会显示连接方式。确认这里选的是“NAT模式”,并且勾选了“启动时连接”。如果“启动时连接”没勾选,开机的虚拟机就默认没有网卡,那不管系统内怎么配置都是白搭。

还有一个不太容易想到的问题:VMware在复制或移动虚拟机之后,会生成一个新的MAC地址。如果你之前用的是静态IP配置,旧MAC地址对应的网络配置就会失效。这不是大问题,因为Kali默认用DHCP,但如果你在/etc/NetworkManager/system-connections/里手动配置过网络连接,记得检查一下绑定的MAC地址是否和当前网卡一致。可以在虚拟机设置里点“高级”,把MAC地址改成“生成”模式,让VMware每次自动管理,省得跟配置里的MAC对不上。如果是做实验需要固定IP,这反而要注意:DHCP绑定MAC时,虚拟机的MAC每次变,IP就会一直变,容易让人误以为网络配置错了。

提示:如果你刚在VMware里克隆了一个Kali虚拟机,MAC地址冲突会导致网络时好时坏。建议新克隆的机器先到“网络适配器”的高级设置里点一下“生成”新的MAC地址,再开机配置。

3. Kali系统内网络配置实操

3.1 快速恢复网络:重启网卡与dhclient

如果VMware侧都正常,但Kali里还是没有IP,那就得进系统操作了。先别急着改配置文件,最快速的恢复方式是让网卡重新获取一次IP。

# 查看网卡名称和状态 ip addr # 如果网卡处于DOWN状态,使用下面的命令启用 sudo ip link set eth0 up # 给网卡重新获取DHCP地址 sudo dhclient eth0 # 查看是否拿到IP ip addr show eth0

如果执行sudo dhclient eth0之后,ip addr里出现了inet 192.168.88.x/24这样的地址,说明问题已经解决了。网卡名不一定是eth0,在Kali里也可能是ens33ens32等名字,以ip addr显示为准。有时候执行dhclient会卡住,等十几秒钟没有反应,那是它在等DHCP服务器的应答,如果一直卡住,说明VMware的DHCP服务有问题,回到上一节检查。

重启网卡的方式还有一种,就是用nmcli,我比较推荐这个,因为Kali默认的图形桌面网络管理工具就是NetworkManager,用nmcli重启网卡比ifconfig eth0 down/up更彻底,同时它会把NetworkManager的配置也一起刷新。

# 查看网络管理器的设备状态 nmcli device status # 断开然后重新连接网卡 sudo nmcli device disconnect eth0 sudo nmcli device connect eth0

这一套组合拳打完之后,大概率你的网络就恢复了。但如果你用的是新版本Kali,系统默认启用了Netplan,命令会稍微不一样,后面我会单独说。

3.2 设置静态IP:使用NetworkManager

DHCP能拿到IP当然省事,但有时候你希望Kali用固定IP,方便做端口转发、SSH连接、或者搭建实验环境。在Kali里设置静态IP,我优先推荐用NetworkManager,因为它和桌面环境集成得好,重启也不会丢失配置。

打开终端,输入nmcli进入交互式操作,或者直接用命令行的方式:

# 查看NetworkManager管理的连接名称 nmcli connection show

假设你的网卡连接名叫Wired connection 1,要让这个连接使用静态IP,网关设为192.168.88.2,DNS设为223.5.5.5:

# 修改连接为手动IP配置 sudo nmcli connection modify "Wired connection 1" ipv4.method manual \ ipv4.addresses 192.168.88.100/24 \ ipv4.gateway 192.168.88.2 \ ipv4.dns "223.5.5.5 8.8.8.8" # 重新激活连接 sudo nmcli connection up "Wired connection 1"

执行完用ip addr确认IP是否生效。这里有一个细节:网段里的网关必须是VMware NAT模式下虚拟网络编辑器里设置的网关,通常不是192.168.88.1。你可以在物理机的Windows命令行里执行ipconfig,看“VMware Network Adapter VMnet8”那个网卡的默认网关,或者在Kali里先ip route看一下之前的默认网关是多少,照着填就不会错。如果用ip route什么输出都没有,就去虚拟网络编辑器看NAT设置里的网关IP。

命令行记不住的话,也可以用图形界面操作。在桌面右上角找到网络图标,点击设置,选中有线连接,点击齿轮图标,在“IPv4”选项卡里把“自动(DHCP)”改成“手动”,填入地址、掩码、网关和DNS,保存后关闭再重连网卡即可。图形界面的好处是能看到各个字段的提示,不容易填错,适合新手。

3.3 新版Kali的Netplan配置文件位置

Kali从2020.1版本之后,官方逐步把网络配置工具迁移到了Netplan。虽然Kali现在默认还是用NetworkManager,但如果你装的是最新版,或者镜像经过自定义,可能启用的是Netplan。这种情况下你会发现/etc/network/interfaces文件怎么改都没反应,因为Netplan不读这个文件。

Netplan的配置文件在/etc/netplan/目录下,通常是一个.yaml文件,文件名可能是01-netcdf.yaml01-dhcp.yaml之类的。查看当前配置:

# 列出netplan配置 ls /etc/netplan/ # 查看配置文件内容 sudo cat /etc/netplan/*.yaml

如果是DHCP模式,配置大概长这样:

network: version: 2 renderer: NetworkManager ethernets: eth0: dhcp4: true

如果要改成静态IP,就手动编辑这个文件:

network: version: 2 renderer: NetworkManager ethernets: eth0: dhcp4: false addresses: - 192.168.88.100/24 routes: - to: default via: 192.168.88.2 nameservers: addresses: - 223.5.5.5 - 8.8.8.8

修改完成后执行:

# 应用配置 sudo netplan apply

注意renderer的值要根据你的系统配置来,如果Kali桌面用的是NetworkManager,就保持renderer: NetworkManager,不要乱改。如果改成静态IP后无法上网,先检查网关和DNS填对没有。有一次我写错了DNS地址,导致能ping通IP但域名解析失败,排查了很久才发现是配置文件里一个多打了空格,yaml缩进不对。

注意:无论改Netplan还是NetworkManager,eth0ens33之类的网卡名要以实际系统里的ip addr输出为准。不同版本、不同虚拟化环境下网卡命名规则不一样,别照抄别人的配置。

4. 常见问题与排查技巧实录

4.1 DNS无法解析与网关不通

Kali在VMware里常见的网络故障,我用表格整理一下,方便你对照排查:

现象可能原因快速排查命令解决方法
没有IP地址DHCP失败或网卡未启用ip addr手动执行sudo dhclient eth0,或检查VMware DHCP服务
有IP但ping不通网关VMware NAT服务异常ping 192.168.x.1启动Windows服务里的VMware NAT Service,检查虚拟网络编辑器网段
网关通但外网不通仅主机模式或物理网络限制ping 8.8.8.8切换到NAT模式,检查虚拟网络编辑器VMnet8配置
能通IP但域名不通DNS配置不对cat /etc/resolv.conf修改NetworkManager或Netplan的DNS配置
网速很慢虚拟机配置了桥接但物理环境信号差ping -c 10 baidu.com改用NAT模式,或者重启VMware服务
重启后网络失效静态IP配置没有持久化nmcli connection show使用NetworkManager或Netplan保存配置,不要用ifconfig临时设置

ping外网的时候,建议优先ping IP而不是域名,比如ping 8.8.8.8。如果IP能通但域名不通,说明是DNS问题。Kali里的/etc/resolv.conf文件可能指向了127.0.0.53之类的本地解析器,这个倒不算故障,但如果你自己配置了DNS却还是不生效,可以用resolvectl status看看系统的DNS链路状态。我遇到过一种情况:/etc/resolv.conf设置没问题,但NetworkManager覆盖了它,导致配置失效,最后用nmcli connection modify "Wired connection 1" ipv4.ignore-auto-dns yes关掉了自动DNS,才解决。

4.2 IPv6与网络桥接的干扰问题

还有一个很多人忽略的坑:IPv6。Kali默认开启了IPv6,而VMware的NAT模式默认只处理IPv4,如果你在Kali里启用了IPv6的DHCP,可能会导致NetworkManager在等待IPv6地址时卡住,拖慢了整体网络初始化速度,出现“开机后一两分钟才连上网”的现象。

解决方法是禁用IPv6,或者让NetworkManager只处理IPv4:

# 在sysctl配置中禁用IPv6 sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1 # 持久化配置 echo "net.ipv6.conf.all.disable_ipv6=1" | sudo tee -a /etc/sysctl.conf echo "net.ipv6.conf.default.disable_ipv6=1" | sudo tee -a /etc/sysctl.conf

如果你一定要用IPv6,那选择桥接模式并把物理路由器的IPv6开启,但大多数家庭路由器对IPv6的支持程度不一,折腾成本高,不推荐在虚拟化实验环境里花费太多时间。

4.3 网络配置持久化与克隆重启

最后一个要叮嘱的是配置持久化问题。很多人在Kali里临时用ifconfig eth0 192.168.88.100 netmask 255.255.255.0 up设置IP,当时是通了,但一重启就失效,然后继续吐槽网络配置有问题。这不是网络有问题,是方法本身就不对。

ifconfig设置IP是临时的,它只作用于当前内核网络栈,不会写入任何配置文件。正确的持久化设置方式就是我前面提到的Netplan或NetworkManager,因为它们会写入配置文件,开机时自动加载。如果你需要快速测试某个IP,临时用ip addr add 192.168.88.100/24 dev eth0没问题,但一旦确认测试成功,就要立刻通过nmcli或Netplan保存成持久配置,否则下次开机所有配置归零,实验进度全丢。

克隆虚拟机的时候也要小心:克隆意味着MAC地址、网络连接配置都复制过来了,开机会出现网卡名变了(比如从eth0变成了eth1)或者NetworkManager配置文件里MAC地址对不上的情况。解决办法是在克隆之后,进入系统删除旧的网络连接配置,让NetworkManager重新生成:

# 删除所有现有连接配置 sudo nmcli connection delete "Wired connection 1" # 重新扫描设备并创建新连接 sudo nmcli device reapply eth0 sudo nmcli device connect eth0

如果执行完还是没有网,检查一下/etc/udev/rules.d/70-persistent-net.rules文件(有些系统会自动生成它),里面可能残留了旧网卡的MAC绑定信息,把它删掉,重启即可。

5. 实操过程复盘与个人经验

最后分享一下我做网络配置实验的完整过程,你完全可以把这套操作当成模板来用。

我在VMware里新装了一台Kali虚拟机,装好之后按惯例先做了快照,然后开机测试网络。第一件事就是ip addr,发现网卡是eth0,但没有IP地址,然后执行sudo nmcli device connect eth0,结果还是没反应。这时候我判断问题不在系统内,因为NetworkManager本身工作正常,只是没有收到DHCP响应。切到Windows,打开“服务”,发现“VMware DHCP Service”没有运行,启动之后回到Kali执行sudo dhclient eth0,很快就拿到了192.168.88.128这个地址。

但接下来我发现一个问题:IP拿到之后,ping baidu.com还是不行,提示域名解析失败。ping 8.8.8.8能通。检查/etc/resolv.conf,发现里面没有写入任何可用的DNS服务器,那个文件指向的127.0.0.53是systemd-resolved的本地缓存,没起作用。我直接用nmcli把DNS改成了223.5.5.5,配置好后网络完全恢复。

整个过程大概花了十分钟,比我在Kali里一条一条试命令快多了。我的经验是:能通过图形界面或nmcli解决的事情,不要轻易去改底层的配置文件。很多时候改配置文件会引发新的连锁问题,比如yaml缩进写错、服务没重启、NetworkManager和Netplan配置冲突等。遇到网络问题先冷静,按本文的排查顺序一步步来,绝大多数问题都能在半小时内解决。

这个内容后续还可以扩展的方向是:在Kali里通过NAT模式做端口转发,把Windows主机的某个端口映射到Kali的22端口,实现物理机直接SSH连接虚拟机;或者用桥接模式让Kali和局域网内的其他机器互通,做内网渗透测试实验。网络这块通了之后,Kali的很多玩法才能展开。

我个人在实际操作中还有一个习惯:把每一步网络配置都记录下来,写在笔记里。尤其是指标——网关、DNS、网段、虚拟网络编辑器里的设置,这些记下来以后排查问题会快很多。网络配置这东西,说难也不难,无非是几个环节配合的问题,但每一步都有它自己的坑,多踩几次,自然就熟练了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 10:41:10

PCIe Crosslink深度解析:双Root Complex对等互联的原理与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/17 10:40:17

手搓RTOS内核:GD32F103上实现极简双任务调度

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/17 10:35:21

MATLAB语音识别GUI:HMM+MFCC完整教学实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/17 10:33:38

UART发送器设计:波特率精度与状态机健壮性实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华