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 内部的小局域网中

相关推荐
Aliex_git4 小时前
跨域请求笔记
前端·网络·笔记·学习
wangjialelele4 小时前
Linux中的进程管理
java·linux·服务器·c语言·c++·个人开发
2501_901147835 小时前
面试必看:优势洗牌
笔记·学习·算法·面试·职场和发展
森焱森5 小时前
嵌入式硬件工程师应知 白银快速分析报告
linux·c语言·arm开发·嵌入式硬件·去中心化
小白电脑技术5 小时前
飞牛漏洞焦虑?别瞎折腾WAF了!用Lucky五步搞定“防爬墙”
服务器·网络·安全
tzy2335 小时前
极简版本的 TCP / IP 协议栈介绍
网络·网络协议·tcp/ip
tod1135 小时前
TCP全连接队列与tcpdump抓包
网络·网络协议·tcp/ip·github·tcpdump
czhaii5 小时前
单片机最佳入门多线程示例讲解
c语言·单片机
cheems95275 小时前
【javaEE】全方位拆解 UDP 协议
网络·网络协议·udp