1. 检查虚拟机网络配置
-
查看网络适配器设置:
- 确保虚拟机已启用网络连接(如NAT模式、桥接模式)。
- 检查虚拟网络编辑器(如VMware的
虚拟网络设置)是否正常配置。
-
验证IP地址分配:
bashifconfig # Linux/Mac ipconfig # Windows-
若未获取到IP(如
192.168.x.x),尝试重启网络服务:bashsudo systemctl restart network-manager # Ubuntu sudo service network restart # CentOS
-
2. 检查宿主机网络
-
宿主机网络状态:
- 确保宿主机可正常访问互联网(如
ping 8.8.8.8)。 - 若宿主机无网络,检查物理网卡、路由器或防火墙设置。
- 确保宿主机可正常访问互联网(如
-
虚拟网络服务状态:
- 对于VMware:确认
VMware NAT Service和VMware DHCP Service正在运行(Windows服务管理器)。 - 对于VirtualBox:检查
主机网络管理器中的虚拟网卡是否启用。
- 对于VMware:确认
3. 排查防火墙与路由
-
禁用防火墙临时测试:
bashsudo ufw disable # Ubuntu sudo systemctl stop firewalld # CentOS- 若恢复连接,需配置防火墙规则放行流量。
-
检查路由表:
bashroute -n- 确认默认网关(如
0.0.0.0指向宿主机的网关地址)。
- 确认默认网关(如
4. 重置虚拟网络
-
重新生成网络配置:
- 在虚拟机软件中:
- 禁用再启用虚拟网卡。
- 重启虚拟机。
- 重置虚拟网络设置(如VMware的"还原默认设置")。
- 在虚拟机软件中:
-
手动分配IP(若DHCP失效):
bashsudo ifconfig eth0 192.168.1.10 netmask 255.255.255.0 sudo route add default gw 192.168.1.1
5. 高级故障排除
-
检查DNS解析:
bashnslookup google.com- 若失败,编辑
/etc/resolv.conf添加DNS服务器(如8.8.8.8)。
- 若失败,编辑
-
抓包分析:
bashsudo tcpdump -i eth0 # 检查是否有进出流量- 若无流量,可能为驱动问题(重装
VMware Tools或VirtualBox增强功能)。
- 若无流量,可能为驱动问题(重装
第一步(必做):重置 VMware 虚拟网络
关闭虚拟机
VMware 上方 → 编辑 → 虚拟网络编辑器
右下角 还原默认设置
等待完成,再开机虚拟机
第二步:虚拟机里重新获取 IP
开机后执行:
sudo dhclient -r
sudo dhclient
然后查看 IP:
ip addr
必须有 192.168.x.x 的地址
第三步:查看路由(关键)
ip route
必须看到:
default via 192.168.xxx.2 dev ...
没有这一行,就一定会报 Network is unreachable
如果还是没有路由,手动加
(把下面的网关改成你 NAT 网段的网关,一般是 192.168.182.2)
sudo ip route add default via 192.168.182.2
然后再 ping:8.8.8.8
┌───────────────────── 宿主机 (Windows/macOS) ──────────────────────┐
│ │
│ 能上网 ← 物理网卡 (有线/WiFi) │
│ ↑ │
│ VMware NAT 服务 (虚拟路由器) │
│ ↑ │
│ 虚拟网卡 VMnet8 (192.168.182.1) │
└───────────────────┬───────────────────────────────────────────────┘
↑
┌───────────────────┼──────────────────┐
│ 虚拟机 (Linux) │ │
│ ↓ │
│ 虚拟网卡 eth0/ens33 │
│ IP: 192.168.182.xxx │
│ 网关: 192.168.182.2 ←【你现在缺失这个】│
│ DNS: 223.5.5.5 │
└───────────────────────────────────────┘
总结流程图
plaintext
虚拟机IP配置 → 宿主机网络 → 防火墙/路由 → 重置虚拟网络 → DNS/驱动
若仍无法解决,尝试更换网络模式(如桥接改为NAT)或检查虚拟机软件版本兼容性。