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 防火墙/网络配置文件

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


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

相关推荐
爱码小白11 小时前
离散数学之学习笔记
笔记·学习
国科安芯11 小时前
国科安芯AS32A601芯片及ANSIC-EVB601开发平台获OneWo-zepLinux全面适配支持
网络·单片机·嵌入式硬件·risc-v·安全性测试
sheeta199811 小时前
LeetCode 每日一题笔记 日期:2026.05.22 题目:33. 搜索旋转排序数组
笔记·算法·leetcode
ACP广源盛1392462567311 小时前
OpenAI 推出的 GPT-5.5 大模型,倒逼接口芯片升级迭代@ACP#IX8024应用迭代
网络·人工智能·嵌入式硬件·电脑·音视频
ACP广源盛1392462567311 小时前
OpenAI 推出的 GPT-5.5 大模型,倒逼接口芯片升级迭代@ACP#IX8012应用迭代
大数据·网络·人工智能·嵌入式硬件·电脑·音视频
marsh020612 小时前
55 openclaw协议扩展:支持非HTTP协议的通信方式
网络·网络协议·http·青少年编程
魔都大虾12 小时前
异地恋别称是什么 还有哪些说法
笔记
持敬chijing12 小时前
BUUCTF-WEB详细解题攻略第二页(按解出数降序排序)正在更新
安全·web安全·网络安全·网络攻击模型·安全威胁分析
ljt272496066112 小时前
Vue笔记(五)--组件进阶
前端·vue.js·笔记