虚拟机网络无法连接

1. 检查虚拟机网络配置

  • 查看网络适配器设置

    • 确保虚拟机已启用网络连接(如NAT模式、桥接模式)。
    • 检查虚拟网络编辑器(如VMware的虚拟网络设置)是否正常配置。
  • 验证IP地址分配

    bash 复制代码
    ifconfig  # Linux/Mac
    ipconfig  # Windows
    • 若未获取到IP(如192.168.x.x),尝试重启网络服务:

      bash 复制代码
      sudo systemctl restart network-manager  # Ubuntu
      sudo service network restart           # CentOS

2. 检查宿主机网络

  • 宿主机网络状态

    • 确保宿主机可正常访问互联网(如ping 8.8.8.8)。
    • 若宿主机无网络,检查物理网卡、路由器或防火墙设置。
  • 虚拟网络服务状态

    • 对于VMware:确认VMware NAT ServiceVMware DHCP Service正在运行(Windows服务管理器)。
    • 对于VirtualBox:检查主机网络管理器中的虚拟网卡是否启用。

3. 排查防火墙与路由

  • 禁用防火墙临时测试

    bash 复制代码
    sudo ufw disable          # Ubuntu
    sudo systemctl stop firewalld  # CentOS
    • 若恢复连接,需配置防火墙规则放行流量。
  • 检查路由表

    bash 复制代码
    route -n
    • 确认默认网关(如0.0.0.0指向宿主机的网关地址)。

4. 重置虚拟网络

  • 重新生成网络配置

    • 在虚拟机软件中:
      1. 禁用再启用虚拟网卡。
      2. 重启虚拟机。
      3. 重置虚拟网络设置(如VMware的"还原默认设置")。
  • 手动分配IP(若DHCP失效):

    bash 复制代码
    sudo ifconfig eth0 192.168.1.10 netmask 255.255.255.0
    sudo route add default gw 192.168.1.1

5. 高级故障排除

  • 检查DNS解析

    bash 复制代码
    nslookup google.com
    • 若失败,编辑/etc/resolv.conf添加DNS服务器(如8.8.8.8)。
  • 抓包分析

    bash 复制代码
    sudo tcpdump -i eth0  # 检查是否有进出流量
    • 若无流量,可能为驱动问题(重装VMware ToolsVirtualBox增强功能)。

第一步(必做):重置 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)或检查虚拟机软件版本兼容性。

相关推荐
_OP_CHEN2 小时前
【MySQL数据库基础】(六)MySQL 表的约束详解:从基础到实战,拿捏数据合法性!
linux·数据库·mysql·c/c++·表约束·mysql表
ycjunhua2 小时前
Notebooklm for windows本地安装使用
python·webstorm
曲辕RPA2 小时前
GEO技术解析:RPA在生成引擎优化中的角色与应用
python·ai·rpa
2501_945425152 小时前
C++编译期字符串处理
开发语言·c++·算法
m0_733612212 小时前
模板编译期哈希计算
开发语言·c++·算法
2401_894241922 小时前
实战:用OpenCV和Python进行人脸识别
jvm·数据库·python
Jordannnnnnnn2 小时前
复试day27
数据结构·c++·算法
仰泳的熊猫2 小时前
题目2311:蓝桥杯2019年第十届省赛真题-Fibonacci 数列与黄金分割
数据结构·c++·算法·蓝桥杯
似水明俊德2 小时前
06-C#
开发语言·c++·算法·c#