目录
- VirtualBox 网络基础
- 网络适配器
- 四种核心网络模式详解
- 网络模式详细配置与使用场景
-
NAT 模式 (网络地址转换)
(图片来源网络,侵删) -
NAT 网络模式 (推荐用于虚拟机集群)
-
桥接模式
-
仅主机模式
-
无网络连接
(图片来源网络,侵删)
-
- 高级网络配置
- 端口转发
- 嵌套式虚拟化
- 常见问题排查
- 虚拟机无法上网
- 无法从主机访问虚拟机服务 (如 Web 服务器)
- 虚拟机之间无法通信
- 总结与选择建议
VirtualBox 网络基础
网络适配器
每台虚拟机都有一个或多个“网络适配器”,默认情况下是启用状态,你可以在虚拟机的“设置” -> “网络”中找到它并进行配置,每个适配器都可以独立设置为不同的网络模式。
四种核心网络模式详解
这是理解 VirtualBox 网络的关键,每种模式都像一个虚拟的“交换机”,将虚拟机连接到不同的网络环境。
网络模式详细配置与使用场景
NAT 模式 (Network Address Translation) - 默认模式
这是最简单、最常用的模式,开箱即用。
-
工作原理:
(图片来源网络,侵删)- VirtualBox 在你的主机和虚拟机之间创建一个私有网络。
- 虚拟机通过主机的 IP 地址上网,对外部网络来说,所有虚拟机的网络请求都来自于主机的 IP,就像路由器下的设备一样。
- 虚拟机可以访问外网,但外部网络无法直接访问虚拟机。
-
如何配置:
- 选择虚拟机,点击“设置”。
- 进入“网络”。
- 在“连接方式”下拉菜单中选择 NAT。
- (可选)点击“高级” -> “端口转发”,可以设置外部主机访问虚拟机的规则。
-
优点:
- 简单: 无需任何配置,虚拟机就能上网。
- 安全: 虚拟机被隔离在私有网络中,外部无法直接攻击。
-
缺点:
- 无法从外部访问: 无法从你的主机或其他电脑直接访问虚拟机运行的服务(如 SSH, Web 服务器)。
- 虚拟机之间通信不便: 默认情况下,不同虚拟机之间无法直接通过 IP 通信。
-
使用场景:
- 临时使用虚拟机上网。
- 运行一个不需要对外提供服务的隔离环境。
- 初学者的首选。
NAT 网络模式 (推荐用于虚拟机集群)
这是对 NAT 模式的增强,解决了 NAT 模式下虚拟机之间通信不便的问题。
-
工作原理:
- 创建一个完全独立的虚拟网络(如
vboxnet0)。 - 所有连接到此 NAT 网络的虚拟机都处在一个局域网内,可以互相通信。
- 它们通过主机的 NAT 功能共享主机的网络访问外网。
- 创建一个完全独立的虚拟网络(如
-
如何配置:
- 创建 NAT 网络:
- 在 VirtualBox 主界面,点击“文件” -> “工具” -> “网络管理器”。
- 点击“添加 NAT 网络”,给网络起个名字(如
My-NAT-Network),选择一个网段(如0.2.0/24),然后点击“创建”。
- 将虚拟机连接到该网络:
- 选择虚拟机,进入“设置” -> “网络”。
- 在“连接方式”下拉菜单中选择 NAT 网络。
- 在右侧的下拉菜单中选择你刚刚创建的
My-NAT-Network。
- 创建 NAT 网络:
-
优点:
- 虚拟机间通信: 所有连接到此网络的虚拟机都像在同一台交换机上,可以互相 Ping 通和访问服务。
- 简单上网: 依然能自动通过主机上网。
- 隔离性好: 这个虚拟网络与主机物理网络和其他虚拟机网络完全隔离。
-
缺点:
- 外部无法访问: 同样,外部网络无法直接访问虚拟机。
-
使用场景:
- 搭建需要互相通信的虚拟机集群(如 Kubernetes, Docker Swarm, 负载均衡测试)。
- 创建一个模拟的、与外界隔离的内部网络环境。
桥接模式
让虚拟机成为你局域网中的一台独立物理机。
-
工作原理:
- VirtualBox 会将虚拟机的网络适配器直接“桥接”到你主机的一张物理网卡上。
- 虚拟机将直接从你的路由器(DHCP 服务器)获取一个 IP 地址,就像你的手机、电脑一样,是局域网中的一员。
-
如何配置:
- 选择虚拟机,进入“设置” -> “网络”。
- 在“连接方式”下拉菜单中选择 桥接网卡。
- (可选)在“界面名称”中指定要桥接的物理网卡(通常是
en0: Wi-Fi或en1: 以太网),通常保持自动即可。
-
优点:
- 完全独立: 虚拟机拥有自己的局域网 IP,与主机地位平等。
- 外部可访问: 局域网内的任何设备都可以通过 IP 访问虚拟机。
- 灵活性高: 可以像管理真实设备一样管理虚拟机。
-
缺点:
- IP 冲突风险: DHCP 服务器 IP 不足,或手动配置了与局域网其他设备冲突的 IP,会导致问题。
- 依赖主机网络: 如果主机的网络连接断开,虚拟机也会断网。
-
使用场景:
- 需要从局域网内其他设备访问虚拟机提供的服务(如家庭服务器、开发测试机)。
- 模拟多台物理机组成的网络环境。
仅主机模式
创建一个只存在于主机和虚拟机之间的私有网络,不访问外网。
-
工作原理:
- 创建一个虚拟的内部网络(如
vboxnet1)。 - 主机和连接到此网络的虚拟机都在这个网络中,可以互相通信。
- 这个网络与外部网络完全隔离,虚拟机无法上网。
- 创建一个虚拟的内部网络(如
-
如何配置:
- 创建 Host-Only 网络:
- 在 VirtualBox 主界面,点击“文件” -> “工具” -> “网络管理器”。
- 点击“添加 Host-Only 网络”,配置 IP 地址段(如
168.56.1,子网掩码255.255.0),并启用 DHCP 服务器,点击“创建”。
- 将虚拟机连接到该网络:
- 选择虚拟机,进入“设置” -> “网络”。
- 在“连接方式”下拉菜单中选择 仅主机模式。
- 在右侧的下拉菜单中选择你刚刚创建的 Host-Only 网络。
- 创建 Host-Only 网络:
-
优点:
- 高度安全: 完全隔离,无法从外部访问,也无法访问外网。
- 主机与虚拟机通信: 主机可以访问虚拟机,虚拟机也可以访问主机。
-
缺点:
- 无法上网: 虚拟机没有网络连接。
-
使用场景:
- 进行安全测试,确保服务不会被外部访问。
- 在一个完全封闭的环境中进行开发。
- 主机需要安全地访问虚拟机内的服务。
无网络连接
禁用虚拟机的网络适配器。
- 如何配置: 在“网络设置”的“连接方式”中选择 “不连接”。
- 使用场景: 当你明确知道虚拟机不需要任何网络连接时使用,可以略微提高性能和安全性。
高级网络配置
端口转发
主要用于 NAT 和 NAT 网络 模式下,让外部主机能够访问虚拟机的服务。
- 工作原理: 将主机上的一个端口(如 8080)的流量转发到虚拟机的特定端口(如 80)。
- 示例: 想从主机浏览器访问虚拟机里运行的 Nginx 服务器。
