kali 2017.2虚拟机安装后无法联网,根本原因不是系统坏了,而是虚拟机的网络适配器模式与物理机网络环境不匹配,或者kali自身没有自动获取到ip地址。解决思路很简单:先确认虚拟机网络设置,再进系统手动配置网卡,下面按步骤拆解,照着操作即可。
kali虚拟机无法联网的常见原因与自查清单
虚拟机里跑kali,联网问题十有八九出在三个地方:虚拟机网络模式选错、kali网卡没启用、物理机防火墙拦截,行业共识认为,约七成以上的虚拟机网络故障都源于网络模式与当前上网环境冲突。
网络适配器模式选错是首要原因
虚拟机软件(比如VMware或VirtualBox)提供几种网络模式,不同模式对应不同上网逻辑:
- NAT模式:虚拟机通过物理机转发上网,只要物理机有网,虚拟机就能通外网,但外部设备无法直接访问虚拟机。
- 桥接模式:虚拟机直接占用局域网一个ip,相当于独立设备,能和其他主机互访,但需要局域网内有可用ip且物理机网卡支持。
- 仅主机模式:只能和物理机通信,无法访问外网,常用于隔离测试。
kali 2017.2默认安装后,多数情况下虚拟机软件会选NAT,但部分定制镜像或手快点错会选成仅主机,结果就是完全上不了网,你可以先看看虚拟机设置界面,把网络模式改成NAT,然后重启虚拟机试试,如何检查kali虚拟机网络配置是否正常?下面这个命令最直接。
kali网卡没启用或没自动获取ip
kali 2017.2基于Debian,界面默认是gnome桌面,终端里输入:
ip addr
如果看到eth0或ens33等网卡没有ipv4地址,只有127.0.0.1的lo回环,说明网卡没获取到ip,继续执行:
sudo dhclient eth0
强制用dhcp获取地址,如果之前没有安装dhclient,先执行sudo apt install dhclient(但没网时apt也用不了,所以更推荐直接在接口配置文件里写死参数),获取成功后ip addr再看,一般就有了。
一步步解决kali 2017.2虚拟机网络连接失败的实操流程
第一步:关闭物理机防火墙和代理软件
很多教程容易忽略这一步,Windows物理机的防火墙,或者安全管家自带的网络防护,会拦截虚拟机NAT的虚拟网卡转发,建议先临时关闭防火墙,再试试虚拟机上不了网时能否ping通网关,具体操作:在物理机命令提示符里输入ipconfig查看VMnet8的ip地址,然后在kali终端里ping 你的VMnet8网关ip,能通但上不了外网,说明NAT转发被拦截;连网关都不通,问题出在虚拟机网络配置上。
第二步:手动配置kali的静态ip地址
DHCP获取不到时,手动配置一劳永逸,编辑网络配置文件:
sudo vim /etc/network/interfaces
以VMware NAT模式为例,网关通常是168.x.1,具体看物理机VMnet8网段):
auto eth0
iface eth0 inet static
address 192.168.44.128
netmask 255.255.255.0
gateway 192.168.44.2
dns-nameservers 8.8.8.8
保存后重启网络服务:
sudo systemctl restart networking
如果提示eth0不存在,可能是网卡名变成了ens33,用ip link确认后修改,kali 2017.2的网卡命名规则比较特殊,不同虚拟机软件显示的名字不一样,务必先看清楚。
第三步:修改DNS解析
有时候能ping通ip但浏览器打不开网页,这是DNS被污染或没配置,编辑/etc/resolv.conf:
sudo vim /etc/resolv.conf
添加一行:
nameserver 8.8.8.8
再执行ping www.baidu.com验证,如果还不行,检查/etc/NetworkManager/NetworkManager.conf里是否开启了dns管理,建议临时禁用NetworkManager,改用传统的interfaces方式。
kali linux虚拟机网络配置中容易踩坑的细节
kali 2017.2这个版本比较老,去年在一些新发布的虚拟机软件上会出现一个特殊问题:虚拟网卡虽在系统内被识别,但驱动毛刺导致网络服务假死,具体表现就是界面显示有线网络已连接,但ping 8.8.8.8超时。
禁用IPv6以减少干扰
kali默认开启ipv6,但多数家庭路由器对ipv6支持不完整,会导致回路由异常,编辑
/etc/sysctl.conf,在末尾加入:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
保存后执行sudo sysctl -p生效,这个操作对kali虚拟机无法联网的解决教程来说,是个很实用的辅助手段。
重置虚拟机网络配置缓存
VMware里偶尔会遇到网络适配器虽然显示已连接,但底层虚拟交换机掉线,做两件事:先把虚拟机完全关机,在虚拟机设置里把网络适配器改为“桥接模式”,开机后再改回“NAT模式”,相当于强制重新初始化虚拟网卡,然后在kali里清除网络缓存:
sudo ip addr flush dev eth0
sudo ifdown eth0 && sudo ifup eth0
这一套组合拳基本能解决大多数临时性毛病。
针对kali 2017.2版本的特殊处理方案
这个版本默认没有安装open-vm-tools,导致虚拟机和物理机之间剪贴板共享、网络热插拔功能缺失,如果你用的VMware,建议先安装:
sudo apt update
sudo apt install open-vm-tools open-vm-tools-desktop
但注意,没有网时apt用不了,所以这个建议是给那些已经勉强能ping通网关但上不了外网的用户,安装完重启,网络识别会更稳定,如果你是在VirtualBox里用kali 2017.2,需要安装virtualbox-guest-utils,也是同样的道理。
拿真实场景举例:同事的物理机是公司网络,需要认证才能上网,他装了kali虚拟机后怎么都连不上,后来发现是公司内网对NAT模式转发的mac地址有绑定限制,解决办法是改用桥接模式,然后把虚拟机的mac地址改成物理机的网卡mac值,具体操作:在VMware的设备设置里,网络适配器的高级属性中,将MAC地址设置为“使用物理网络适配器的MAC地址”,kali 2017.2虽然老,但通过这个方法成功蹭到了外网。
排查流程总结与日常避坑建议
按下面的优先级顺序操作,可以快速定位问题:
- 重启虚拟机软件和服务。
- 确认物理机能正常上网。
- 在虚拟机设置中切换网络模式为NAT。
- 在kali里
ip addr检查网卡状态。 -
尝试
dhclient获取地址。 - 手动配置静态ip和DNS。
- 关闭物理机防火墙和代理软件。
- 修改内核参数禁用ipv6。
- 重装虚拟机工具包。
说到kali 2017.2虚拟机无法联网怎么办,大家最容易忽略的是物理机的vmware服务没启动,在Windows服务管理器里找到VMware NAT Service和VMware DHCP Service,设为自动启动并启动它们,很多时候,这两个服务被安全软件禁用,导致NAT完全失效。
不要只依赖一种解决方案,比如静态ip配置后虽然能上网,但一旦物理机网络切换(比如家里换到公司),网关和网段变了,静态配置反而会成为更严重的上不了网源头,行业共识是日常用NAT+DHCP,特殊需求再用桥接模式。
Q&A
kali虚拟机无法联网时,为什么ping网关通了但ping外网不通?
说明虚拟网卡和虚拟机软件之间的链路正常,但NAT转发或物理机的网络环境有问题,优先检查物理机是否能正常上网,然后在kali里查看ip route默认网关是否正确,再修改DNS测试做域名解析是否能成,最后确认物理机防火墙是否拦截了vmware虚拟网卡的转发流量。
kali 2017.2安装open-vm-tools后反而断网了,怎么处理?
open-vm-tools不会主动修改网络配置,断网多半是安装过程触发系统自动重启了NetworkManager服务,导致interfaces配置生效方式改变,执行sudo systemctl restart networking并检查/etc/network/interfaces里的配置未被注释,如果仍然不通,卸掉open-vm-tools并重启虚拟机,问题通常会消失,重新选择轻量级工具替代即可。
桥接模式下kali虚拟机无法获取ip,可以手动填静态ip吗?
可以,但前提是手动填写的ip必须和物理机同一网段,且不与其他设备冲突,先看物理机ipconfig获取ip和子网掩码,然后在kali里将address设为同网段空闲ip,gateway设为物理机网关,dns填物理机正在用的DNS服务器,例如ipconfig /all中显示的DNS地址,设置后执行sudo systemctl restart networking验证。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/614235.html





