VirtualBox NAT 网络实现三台虚拟机互联踩坑实录

VirtualBox NAT 网络实现三台虚拟机互联踩坑实录

摘要: 本文记录了在 VirtualBox 中使用 NAT 网络模式实现 Ubuntu 24、Windows 11、Windows Server 三台虚拟机互联的完整过程,重点分析了"网络地址转换(NAT)"与"NAT 网络"的区别,以及 Windows 虚拟机之间互 ping 不通的排查思路。


一、实验环境

组件 版本/型号
宿主机 Windows 10/11
虚拟机软件 VirtualBox 7.x
虚拟机1 Ubuntu 24.04 LTS
虚拟机2 Windows 11
虚拟机3 Windows Server 2025

二、需求分析

实验要求三台虚拟机能够互相通信,同时可以访问外网。VirtualBox 提供了多种网络模式,但不同模式的适用场景差异很大:

网络模式 虚拟机互访 访问外网 宿主机访问虚拟机
NAT(网络地址转换) ❌ 不能 ✅ 能 ❌ 默认不能
NAT 网络 ❌ 默认不能
桥接网卡 ✅ 能 ✅ 能 ✅ 能
内部网络 ✅ 能 ❌ 不能 ❌ 不能
仅主机(Host-Only) ❌ 不能 ❌ 不能 ✅ 能

关键区别: "网络地址转换(NAT)"是每台虚拟机独立的 NAT,虚拟机之间完全隔离;而"NAT 网络"是多台虚拟机共享同一个虚拟 NAT 路由器,处于同一局域网内,天然支持互访。


三、配置步骤

3.1 创建 NAT 网络

打开 VirtualBox 管理器 → 管理 → 网络 → NAT 网络 → 点击右侧 创建 按钮:

  • 网络名称NatNetwork(可自定义)
  • 网络 CIDR192.168.56.0/24
  • 启用 DHCP:✅ 必须勾选,让虚拟机自动获取 IP

NAT网络创建示意图

3.2 配置虚拟机网卡

对三台虚拟机分别执行:设置 → 网络 → 网卡 1

配置项
启用网络连接 ✅ 勾选
连接方式 NAT 网络(注意不是"网络地址转换(NAT)")
名称 NatNetwork
控制芯片 Intel PRO/1000 MT 桌面 (82540EM)
混杂模式 拒绝
接入网线 ✅ 勾选

⚠️ 重要 :修改完设置后必须完全关闭虚拟机(不是保存状态),再重新启动才能生效。

3.3 验证 IP 分配

启动三台虚拟机,检查是否获得 192.168.56.x 网段的 IP:

Ubuntu 24:

bash 复制代码
$ ip addr show | grep "inet 192.168.56"

Windows 11 / Server:

powershell 复制代码
> ipconfig | findstr "192.168.56"


三台虚拟机 IP 分别为:

  • Ubuntu:192.168.56.5
  • Windows 11:192.168.56.6
  • Windows Server:192.168.56.4

四、连通性测试与踩坑

4.1 第一轮测试:跨系统通信

Windows Server ping Ubuntu:

powershell 复制代码
> ping 192.168.56.5
正在 Ping 192.168.56.5 具有 32 字节的数据:
来自 192.168.56.5 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.56.5 的回复: 字节=32 时间=1ms TTL=64
# ... 4 次回复,0% 丢失

Windows 11 ping Ubuntu:

powershell 复制代码
> ping 192.168.56.5
Reply from 192.168.56.5: bytes=32 time=5ms TTL=64
Reply from 192.168.56.5: bytes=32 time=1ms TTL=64
# ... 正常

结论:Windows 与 Linux 之间通信正常,NAT 网络本身工作良好。

4.2 第二轮测试:Windows 之间互 ping(踩坑)

Windows Server ping Windows 11:

powershell 复制代码
> ping 192.168.56.6
正在 Ping 192.168.56.6 具有 32 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。
# 100% 丢失

Windows 11 ping Windows Server:

powershell 复制代码
> ping 192.168.56.4
Request timed out.
Request timed out.
Request timed out.
Request timed out.
# 100% loss

现象:Windows 虚拟机之间互相 ping 不通,但各自都能 ping 通 Ubuntu。

4.3 问题定位

这个"Windows 与 Linux 通,Windows 之间不通"的现象非常典型,说明 NAT 网络本身没有问题,问题出在 Windows 系统自身的安全机制 上。

即使关闭了 Windows 防火墙,Windows 仍可能因以下原因拦截 ICMP:

  1. 网络配置文件类型为"公用网络":公用网络有比专用网络更严格的隐性限制
  2. 防火墙规则未完全生效:图形界面的"关闭防火墙"可能未彻底关闭所有配置文件
  3. 高级安全 Windows Defender 防火墙 的入站规则仍拦截 ICMP 回显请求

4.4 解决方案

两台 Windows 虚拟机上都执行以下操作:

方法 1:彻底关闭防火墙(临时测试)

powershell 复制代码
# 管理员 PowerShell
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False

方法 2:允许 ICMP 回显请求(推荐)

powershell 复制代码
# 为所有配置文件添加 ICMPv4 入站规则
New-NetFirewallRule -DisplayName "Allow ICMPv4-In" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -Action Allow -Profile Any

方法 3:将网络改为专用网络

powershell 复制代码
Get-NetConnectionProfile | Set-NetConnectionProfile -NetworkCategory Private

方法 4:图形界面操作

  1. 设置 → 网络和 Internet → 高级网络设置
  2. 点击当前网络 → 网络配置文件类型 → 专用网络
  3. Windows 安全中心 → 防火墙和网络保护 → 高级设置
  4. 入站规则 → 找到 "文件和打印机共享(回显请求 - ICMPv4-In)" → 右键启用

执行上述任一方法后,再次测试:

powershell 复制代码
> ping 192.168.56.4
来自 192.168.56.4 的回复: 字节=32 时间<1ms TTL=128
来自 192.168.56.4 的回复: 字节=32 时间<1ms TTL=128
# ... 0% 丢失 ✅

五、完整连通性验证

最终三台虚拟机互 ping 结果:

源 \ 目标 Ubuntu (56.5) Win11 (56.6) Server (56.4)
Ubuntu --- ✅ 通 ✅ 通
Win11 ✅ 通 --- ✅ 通
Server ✅ 通 ✅ 通 ---

六、踩坑总结

坑点 现象 解决方案
选错 NAT 模式 所有虚拟机无法互访 必须选"NAT 网络",不是"网络地址转换(NAT)"
虚拟机未完全重启 IP 未更新,配置不生效 关闭虚拟机(非保存状态)后重新启动
Windows 防火墙拦截 Windows 之间 ping 不通 关闭防火墙或添加 ICMP 入站规则
网络配置文件类型 即使关防火墙仍不通 将网络从"公用"改为"专用"
未启用 DHCP 虚拟机获取不到 IP 创建 NAT 网络时勾选"启用 DHCP"

七、核心思路提炼

本次实验的成功关键在于分层排查法

  1. 确认网络模式正确:NAT 网络 vs NAT 是本质区别,选错一切白搭
  2. 验证 IP 分配:确认三台机器都在同一网段(192.168.56.x)
  3. 跨系统测试:先测 Windows→Linux,隔离网络层问题
  4. 同系统测试:再测 Windows→Windows,定位系统级安全策略问题
  5. 精准修复:根据"跨系统通、同系统不通"的特征,锁定 Windows 防火墙/网络配置文件

这种从全局到局部、从通用到特殊的排查逻辑,是网络故障诊断的核心方法论。


如果这篇文章对你有帮助,欢迎点赞收藏!有问题欢迎在评论区交流。

相关推荐
阿维的博客日记6 分钟前
Windows自由切换jdk版本
java·windows
江屿风6 分钟前
C++图论基础单源最短路-常规版dijkstra算法/堆优化版dijkstra算法/bellman-ford 算法/spfa 算法流食般投喂
开发语言·c++·笔记·算法·图论
ICT系统集成阿祥8 分钟前
校园网络准入认证建设与运维经验
运维·网络·智慧校园·经验总结
颖火虫盟主9 分钟前
Linux USB 探测→枚举→RNDIS 驱动匹配 全流程笔记
linux·运维·笔记
长葡萄的叶子14 分钟前
Transformer:让机器读懂上下文的艺术
笔记·transformer
相醉为友15 分钟前
Trae IDE WSL2/SSH 环境网络故障排查笔记
ide·笔记·ssh
liulilittle21 分钟前
甲骨文云中国大陆定向 QoS 原理及绕过解决方案
服务器·开发语言·网络·计算机网络·oracle·通信·qos
行走__Wz22 分钟前
【网工入门-eNSP模拟-02】dhcp动态主机配置ip地址
服务器·网络·tcp/ip
AI科技星23 分钟前
数术工坊·第八卷 大道归一录・番外・下篇 零界封神・万法归元终章
网络·人工智能·算法·几何学·拓扑学
问心无愧051328 分钟前
ctfshow web入门114
android·前端·笔记