VMware 三种网络模式(桥接 / NAT / Host-Only)原理与实验解析

1、概述

  网上关于 VMware 桥接(Bridged)、NAT、仅主机(Host-Only) 三种网络模式的文章很多,但大多停留在概念层面,文字描述较多,拓扑与数据流向不直观,初学者往往"看懂了字,却没真正理解网络是怎么走的"。

  本文将结合 实验用例 + 简化拓扑图,从网络组成和数据转发角度,系统剖析这三种模式的工作原理与核心区别。

  实验环境说明

  • VMware 运行在 Windows Host OS 上
  • VMware 中运行 Ubuntu Linux 虚拟机
  • VMware 属于 Type-2 Hypervisor,即运行在宿主操作系统(Host OS)之上

  以下所有实验,均以该环境为背景。

2、桥接模式

2.1 网络拓扑

  下面是简化后的 桥接 拓扑图:

2.2 工作原理说明

  选择桥接模式后,VMware 会创建一个虚拟交换机 VMnet0,该交换机具有以下特点:

  • Host OS 不可见
  • VMware 将:
    • Host OS 的物理网卡、 虚拟机的虚拟网卡, 同时接入该虚拟交换机

  可以理解为:

虚拟机被"直接插"进了真实的物理局域网

  打开 VMware,点击 "编辑",点击 "虚拟网络编辑器",就可以看到 VMent0 虚拟交换机。

2.3 网络特性总结

在桥接模式下:

  • 虚拟机与 Host OS 处于同一个局域网
  • 虚拟机在网络中的地位 ≈ 一台真实的物理主机
  • 虚拟机可以:
    • 被局域网内其他主机直接访问
    • 直接访问外网

如果 Host OS 的物理网卡 IP 是由局域网中的 DHCP Server 分配的,那么虚拟机的 IP 通常也由同一个 DHCP Server 分配,两者位于同一网段。

3、NAT 模式

3.1 网络拓扑

  下面是简化后的 NAT 模式拓扑图:

3.2 NAT 模式的核心组件

  在 NAT 模式下,除虚拟机网卡运行在虚拟机中外,其余组件均运行在 Host OS 中,包括:

  • 虚拟交换机(VMnet8)
  • 虚拟路由器
    • DHCP Server
    • NAT 转发功能
    • 默认网关(Default Gateway)
  • 物理网卡
    • Host OS 的真实物理网卡
  • VMware Virtual Ethernet Adapter for VMnet8
    • Host OS 可见的虚拟网卡
    • 仅用于 Host OS ↔ 虚拟机通信
  • 虚拟机网卡

下面分别说明这些组件的作用。

3.3 虚拟交换机(VMnet8)

  打开 VMware,点击 "编辑",点击 "虚拟网络编辑器",就可以看到 VMent8 虚拟交换机。

  虚拟交换机的作用很纯粹:为虚拟机、Host OS、虚拟路由器之间提供二层通信环境。

3.4 虚拟路由器

  虚拟路由器是 NAT 模式的核心。

3.4.1 DHCP servier 与网关

  虚拟路由器内置 DHCP Server,用于:

  • 给虚拟机自动分配:
  • IP 地址
  • 子网掩码
  • 默认网关
  • DNS

  为了便于理解,这里将 虚拟交换机 与 虚拟路由器 在拓扑中刻意分开表示:

  打开 VMware,点击 "编辑",点击 "虚拟网络编辑器",就可以看到 VMent8 虚拟交换机。可以设置其 DHCP 配置。


  同样的,我们可以在虚拟机中,查看验证虚拟机被分配的 IP 和默认网关:

3.4.2 NAT 转发机制

  关于 NAT 转发的详细原理,这里不再展开,之前文章已有完整说明:

  网络中的数据包到底是如何转发的

  需要重点记住几个结论:

  • 在纯 NAT 模型下:
    • 外网 无法主动 访问内网主机
    • 只能响应内网已经建立的连接
  • NAT 中的两个关键概念:
    • Inside Local:内网真实 IP
    • Inside Global:NAT 映射后的对外 IP

  因此可以得出一个重要结论: NAT 实际上将虚拟机网络与 Host OS 所在的网络隔离开来。虚拟机自己形成了一个"私有局域网"。

3.5 抓包实验验证 NAT 行为

  我们可以做这样一个实验。在虚拟机中访问外部地址:

bash 复制代码
liangjie@liangjie-virtual-machine:~/Desktop$ curl http://1.1.1.1:80

  在 Host OS 上使用 Wireshark 抓包,观察源 IP 地址。结果如下:

  可以看到:

  • 抓到的数据包源 IP 不是虚拟机 IP
  • 而是 Host OS 物理网卡的 IP

  原因是:虚拟机的数据包经过虚拟路由器时,NAT 将源 IP 从"虚拟机 IP(Inside Local) "转换成了"Host OS 物理网卡 IP(Inside Global)"。

  如果不这样做:

  • Host OS 所在的局域网并不认识虚拟机的私有地址
  • 数据包会被直接丢弃
  • 虚拟机将无法访问外网

3.6 VMware Virtual Ethernet Adapter for VMnet8

   该虚拟网卡具有以下特性:

  • 由 VMware 创建
  • Host OS 可见
  • 仅用于 Host OS ↔ 虚拟机通信

   即使将该网卡禁用:

  • 虚拟机仍然可以访问外网
  • 但无法再通过网络访问 Host OS

  其 IP 地址通常由 VMware 自动分配,并且:与虚拟路由器 DHCP Server 分配给虚拟机的 IP 位于同一网段

4、仅主机模式(Host Only)

4.1 网络拓扑

  下面是 Host-Only 模式的简化拓扑图:

  可以非常直观地看到:虚拟机没有连接任何物理网卡

4.2 网络特性说明

在仅主机模式下:

  • 虚拟机 无法访问外网
  • 虚拟机 只能与 Host OS 通信

VMware 会创建:

  • VMware Virtual Ethernet Adapter for VMnet1

    • Host OS 可见
    • 用于 Host OS ↔ 虚拟机通信
  • VMnet1 虚拟交换机

  • 虚拟 DHCP Server

    其中:

  • VMnet1 虚拟交换机、DHCP Server 对于 Host OS 不可见

  • 虚拟机 IP 由虚拟 DHCP Server 分配

    • 与 VMware Virtual Ethernet Adapter for VMnet1 虚拟网卡处于同一网段

  可以在 Host OS 中和虚拟机中验证,虚拟机网卡 IP 如下:

  VMware Virtual Ethernet Adapter for VMnet1 网卡 IP:

5、三种模式一句话总结

桥接:虚拟机 = 局域网中的一台真实主机

NAT:虚拟机通过 Host OS "借网"上网,外界看不到它

Host-Only:虚拟机被完全关在 Host OS 内部的小局域网中

相关推荐
晓蛋3 天前
c语言指的是什么意思
c语言·编译器·编程开发·集成开发环境·程序实例
一隅论数智3 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
不悔哥3 天前
开源OV-Watch:怎么做一个智能手表
单片机·开源·嵌入式
傲世仙尊3 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
牵猫散步的鱼儿3 天前
重载、重写(覆盖)、重定义区别
c语言
phltxy3 天前
C 语言指针:从内存地址到灵活的数据访问
c语言
优信电子3 天前
AIT1001 非接触式红外测温模块 STM32 驱动开发实战:从引脚到代码全解析
stm32·嵌入式·温度传感器·红外测温·非接触式测温·ait1001
phltxy3 天前
C 语言中的数据存储:从类型到二进制位
c语言
深圳老胡3 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范